选股逻辑
选取振幅大于1、MACD零轴以上、连续七个交易日收盘价均低于前一交易日收盘价的股票。
选股逻辑分析
振幅适中,MACD走势良好、连续七个交易日收盘价均低于前一交易日收盘价,可以通过技术分析得出这些股票已经在一个持续低迷的趋势中,有可能出现反弹,可以作为短期投资标的。
有何风险?
只考虑了单一因素,可能会忽略其他因素对股票涨跌的影响,导致风险大。同时,连续七个交易日收盘价均低于前一交易日收盘价的情况并不一定代表股票出现了低迷趋势。
如何优化?
可以引入更多因素作为筛选条件,如公司财务状况、行业前景等。同时,应该将不同因素加权处理,提高选股策略的综合性。对于连续七个交易日收盘价均低于前一交易日收盘价的条件,也可以进行优化,如加入移动平均线判断股票是否处于一个大趋势中。
最终的选股逻辑
选取振幅大于1、MACD零轴以上、连续七个交易日收盘价均低于前一交易日收盘价的股票。
同花顺指标公式代码参考
- 振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
- MACD零轴以上:CROSS(MACD(12,26,9),0)>0
- 连续七个交易日下跌:HHV(CLOSE,7)>REF(CLOSE,1)
选取股票代码:
- SELECTED: VAR1 AND VAR2 AND VAR3;
python代码参考
import tushare as ts
def get_filter():
# 获取股票数据
df = ts.get_today_all()
# 筛选出主板股票
df = df[df['market'] == 'sh']
# 计算振幅
amplitude = abs(df['high'] - df['low']) / df['open']
# 计算MACD
df['MACD'], df['signal'], df['hist'] = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
# 判断MACD是否零轴以上
macd_above_zero = df['MACD'] > 0
# 计算连续下跌天数
df['down'] = df['close'] < df['close'].shift(1)
df['down_days'] = df['down'].rolling(window=7).sum()
# 筛选出符合条件的股票代码
mask = (amplitude > 0.01) & macd_above_zero & (df['down_days'] == 7)
codes = mask.index.values.tolist()
return codes
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。