选股逻辑
选取振幅大于1、MACD零轴以上、换手率在3%到12%之间的股票。
选股逻辑分析
该选股策略主要关注股票的技术面和基本面。振幅大于1意味着这只股票的波动性较大,适合追求高收益的投资者。MACD零轴以上则代表股票价格现在处于一个相对较高的水平,具有一定的买入信号。换手率在3%到12%之间则代表这只股票流动性适中,市场容量较大,买卖比较容易。
有何风险?
在长线投资时,该选股策略可能会在低换手率的情况下导致资金无法快速进出。同时,在盘整市场中,这个选股条件可能会使投资者错失很多机会。
如何优化?
可以加入其他指标或者改变选择条件,比如加入RSI、CCI等技术指标作为选股条件,或者将急涨急跌条件、成交量条件、市值条件设为宽松/严格。
最终的选股逻辑
选取振幅大于1、MACD零轴以上、换手率在3%到12%之间的股票。
同花顺指标公式代码参考
- 振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
- MACD零轴以上:MACD(12,26,9)>0
- 换手率在3%到12%之间:(VOL/100)/CAPITAL100>=3 AND (VOL/100)/CAPITAL100<=12
选取股票代码:
- SELECTED: VAR1 AND VAR2 AND VAR3;
python代码参考
import tushare as ts
import talib
def get_filter():
# 获取MACD指标
df = ts.get_k_data('sh', ktype='D', autype='qfq')
macd = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
# 获取振幅大于1
mask1 = abs(df['high'] - df['low']) / df['open'] > 0.01
# 获取MACD零轴以上
mask2 = macd[2] > 0
# 获取换手率在3%到12%之间的股票
today_data = ts.get_today_all()
mask3 = ((today_data['turnoverratio'] / 100) / today_data['totalAssets']) * 100 >= 3
mask3 = (mask3 & (((today_data['turnoverratio'] / 100) / today_data['totalAssets']) * 100 <= 12))
# 综合mask并返回
mask = [code for code in mask1.index.values if (code in mask2.index.values) and (code in mask3.index.values)]
return mask
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。