问财量化选股策略逻辑
- 至少5根均线重合的股票
- 10日涨幅大于0小于35
- 今日控盘>21
选股逻辑分析
这个策略基于以下三个逻辑:
- 股票的均线重合度越高,表明该股票的价格趋势越稳定,也越容易出现上涨的机会。
- 10日涨幅大于0小于35意味着该股票最近有明显的上涨趋势,但还没有到达过高的价位,仍然具有投资价值。
- 今日控盘>21意味着该股票的成交量较大,表明市场对该股票的关注度较高,也有可能出现上涨的机会。
有何风险?
这个策略的风险在于:
- 均线重合度高并不一定意味着股票一定会上涨,也可能出现横盘或者下跌的情况。
- 10日涨幅大于0小于35的股票并不一定会有投资价值,因为涨幅过大会导致股票价格过高,存在回调的风险。
- 今日控盘>21的股票并不一定会有上涨的机会,因为成交量较大也可能是市场在抛售股票。
如何优化?
为了优化这个策略,可以考虑以下几点:
- 增加均线的数量,例如使用20日、60日、120日等均线,以更准确地判断股票的趋势。
- 修改涨幅的范围,例如将涨幅限制在0-50之间,以更准确地判断股票的上涨趋势。
- 考虑加入其他指标,例如MACD、RSI等,以更准确地判断股票的走势。
最终的选股逻辑
最终的选股逻辑如下:
import talib
def get_stock_scores(symbol):
# 获取股票的收盘价、成交量、涨跌幅等数据
prices = get_prices(symbol)
volume = get_volume(symbol)
# 计算5日、10日、20日、60日、120日的均线
ma5 = talib.MA(prices, timeperiod=5)
ma10 = talib.MA(prices, timeperiod=10)
ma20 = talib.MA(prices, timeperiod=20)
ma60 = talib.MA(prices, timeperiod=60)
ma120 = talib.MA(prices, timeperiod=120)
# 计算10日涨幅
gain = prices[-1] - prices[-20]
# 计算今日控盘
volume_ratio = volume[-1] / volume[-20]
# 根据以上指标计算股票的综合得分
score = (ma5[-1] - ma10[-1]) / ma10[-1] * 100 + gain * 50 + volume_ratio * 20
# 返回综合得分最高的前10支股票
return get_top_n_scores(symbol, n=10, score_func=score)
其中,get_prices()、get_volume()、get_top_n_scores()为自定义函数,用于获取股票的收盘价、成交量、涨跌幅等数据,以及返回综合得分最高的前N支股票。
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


