【发布时间】:2021-08-24 10:28:59
【问题描述】:
我正在通过 SMA 15 分析股票趋势如下:
-
如果收盘价领先其 MA15 并且 MA15 在过去 5 天上升,则趋势为上升趋势,即趋势信号为 1。
-
如果收盘价落后于 MA15 且 MA15 连续 5 天下跌,则趋势为 Downtrend,即趋势信号为 0。
-
如果这些规则都不满足,则称股市没有趋势。
我知道如何做第一个和第二个两个条件,但我想在没有趋势的情况下添加第三个。
## Data loading..
!pip install yfinance
import pandas as pd
import yfinance as yf
df=yf.download('^GSPC',start='2015-11-26',end='2020-12-31',interval='1d')
# this is how I did it
df['SMA15']=df['Adj Close'].rolling(15).mean()
df['SMA15-5']=df['SMA15'].rolling(5).mean()
df['SMA15-5dif']=df['SMA15-5'].diff()
df['Trend']=['up' if df.loc[ei,'Close']>df.loc[ei,'SMA15'] and (df.loc[ei,'SMA15-5dif']> 0 ) else 'down' for ei in df.index] ## this gave me up and down but no "no"
# I did this but was wrong
df['Trend']=['up' if df.loc[ei,'Close']>df.loc[ei,'SMA15'] and (df.loc[ei,'SMA15-5dif']> 0 ) elif df.loc[ei,'Close']<df.loc[ei,'SMA15'] and (df.loc[ei,'SMA15-5dif']< 0 ) 'down' else 'no' for ei in df.index]
我正在寻找这样的东西 感谢您的宝贵时间
【问题讨论】:
-
您能否提供一个与您的数据相似的虚拟 df 以供使用?
-
你可以通过使用yf来使用问题中的df