选股逻辑
选取振幅大于1、MACD零轴以上,并且昨日9:15匹配价为跌停的股票。
选股逻辑分析
振幅适中,MACD指标可以更好地反映出股票的走势,匹配价跌停代表着股票可能存在一定的市场压力,可以考虑短期做空。
有何风险?
仅考虑了技术指标和昨日9:15匹配价,未考虑公司基本面等其他因素,可能会带来较大的风险。
如何优化?
可以引入更多因素作为筛选条件,比如公司财务状况、行业前景等,提高筛选的可靠性和综合性。
最终的选股逻辑
选取振幅大于1、MACD零轴以上,并且昨日9:15匹配价为跌停的股票。
同花顺指标公式代码参考
- 振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
- MACD零轴以上:CROSS(MACD(12,26,9),0)>0
- 昨日9:15匹配价跌停:LLV(LOW, 14) == REF(MIN(LAST, 1), 1) && NOW < REF(LAST, 2) && REF(TODAY - PREV, 1) < 0
选取股票代码:
- SELECTED: VAR1 AND VAR2 AND VAR3;
python代码参考
import tushare as ts
import talib
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)
# 计算昨日最低价
df['low_prev'] = df['low'].shift(1)
# 计算昨日9:15匹配价
df['match_prev'] = df['open'].shift(1)
# 判断是否匹配跌停
is_match_limit_down = (df['low'] / df['match_prev']).rolling(window=14).min() == df['low_prev'] / df['match_prev'] and df['open'] < df['match_prev'] and (df['open'] - df['match_prev']) / df['match_prev'] < -0.09
# 判断MACD是否零轴以上
macd_above_zero = df['MACD'] > 0
# 综合筛选条件
mask = (amplitude > 0.01) & macd_above_zero & is_match_limit_down
codes = mask.index.values.tolist()
return codes
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。