问财量化选股策略逻辑
选股逻辑:振幅大于1%,北京A股除外,30日平均线向上。
选股逻辑分析
该选股策略同样采用技术分析的方法,结合了振幅和趋势以寻找投资机会。选股逻辑的实现过程为:
- 首先排除北京A股,缩小股票范围;
- 振幅大于1%的股票可能存在波动性较大的机会,被纳入选股池中;
- 通过30日平均线来考虑股票的整体走势是否向上。
有何风险?
该选股逻辑可能存在以下风险:
- 过强的技术分析取向会影响人们的投资决策,忽视了基本面的重要性;
- 振幅较大的股票不一定是值得投资的,需要进一步考虑其他因素;
- 30日平均线虽然是一种常用的趋势指标,但并不完美,当市场行情剧烈变化时,该指标可能存在滞后性。
如何优化?
为了改善以上风险,可以考虑以下方面:
- 综合考虑多种因素,不只是技术分析;
- 振幅绝对值和30日平均线不一定可行,可以进行调整,引入更多的指标;
- 尽可能减小滞后性。
最终的选股逻辑
经过改进后的选股逻辑如下:
- 排除北京A股,非中国大陆等区域的股票;
- 振幅大于1%的股票;
- 最近30天的股价收盘价均值向上;
- 尽可能引入其他实用指标以综合考虑。
同花顺指标公式代码参考
选股逻辑的同花顺指标公式如下:
公式1:BOARD_MAIN != '中国大陆' AND AREA != '北京';
公式2:ABS((HIGH / LOW) - 1) > 0.01;
公式3:MA(CLOSE, 30) > REF(MA(CLOSE, 30), 1);
选股公式:公式1 AND 公式2 AND 公式3;
python代码参考
选股逻辑的python代码如下:
def tech_picker(context):
# 非北京A股和非中国大陆
exc_stocks = context.exc_stocks[(context.exc_stocks.board_main != '中国大陆') & (context.exc_stocks.area != '北京')]
# 振幅大于1%
narrow_stocks = exc_stocks[(((exc_stocks.high / exc_stocks.low) - 1) > 0.01)]
# 30日平均线向上
close_price = narrow_stocks.price.groupby(level=0).agg(['last'])
ma_30 = close_price.rolling(30).mean()
flag = (ma_30['last'] > ma_30['last'].shift()).fillna(False)
# 选出满足条件的股票代码
return list(flag[flag].index)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
