问财量化选股策略逻辑
选股逻辑一:竞价匹配量除以流通股排序,这个逻辑主要是考虑到市场的活跃程度,如果匹配量大说明市场参与度高,流通股排序则是按照流通股的数量进行排序,这个可以反映出股票的流动性。
选股逻辑二:昨日的曾涨停取反,这个逻辑是考虑到市场的反转情况,如果昨日曾经涨停但是今日跌停,那么可能是市场的反转信号,此时需要关注这只股票的变化。
选股逻辑三:涨幅小于5%,这个逻辑是考虑到股票的风险性,如果一只股票的涨幅小于5%,那么说明这只股票的风险较小。
以上三个逻辑都是基于数据分析来选出股票,但是这种逻辑也有一定的风险,例如数据可能存在错误或者滞后,导致选出的股票并不一定符合实际情况;同时,这只是一种基本的逻辑,对于复杂的市场环境还需要结合其他因素来进行分析。
因此,可以通过以下方式来优化这种选股逻辑:
- 使用更准确的数据源,例如实时数据或者预估数据,而不是使用历史数据。
- 结合其他的指标,例如市盈率、市净率等,综合判断股票的价值和风险。
- 结合技术分析,例如K线图、MACD等,分析股票的趋势和买卖点。
最终的选股逻辑:将匹配量除以流通股排序、昨日曾涨停取反以及涨幅小于5%这三个逻辑结合起来,同时结合其他的指标和技术分析,来选出具有投资价值的股票。
常见问题:
Q: 数据错误或者滞后会影响选股结果吗?
A: 是的,数据错误或者滞后可能会导致选出的股票不符合实际情况。
python代码参考
# 假设我们有一个包含股票信息的数据frame df
df['match_volume'] = df['bid_volume'] / df['total_shares']
df['yesterday_stopped'] = np.where(df['yesterday_close'] > df['open'], False, True)
df['rise_less_than_5'] = df['change_rate'] < 5
# 计算综合得分
df['score'] = (df['match_volume'] + df['yesterday_stopped'] * -1 + df['rise_less_than_5']) / 3
# 根据得分进行排名
ranked_df = df.sort_values('score', ascending=False)
# 选择前N只股票
selected_df = ranked_df.head(N)
其中,df['match_volume']
表示匹配量
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击页面下方的复制按钮,复制到自己的账户即可使用模板进行回测。