问财量化选股策略逻辑
首先,我们需要找到至少5根均线重合的股票。这可以通过计算股票的均线数量来实现。具体来说,我们可以计算股票的收盘价与前50天、前100天、前200天、前300天、前400天、前500天的收盘价的平均值,并计算它们之间的距离。如果这些平均值之间的距离小于等于5,则认为该股票至少有5根均线重合。
接下来,我们需要筛选出收益大于0的股票。这可以通过计算股票的收益率来实现。具体来说,我们可以计算股票的收盘价与前一个交易日的收盘价之间的差值,并将其除以前一个交易日的收盘价。如果该收益率大于0,则认为该股票的收益大于0。
最后,我们需要筛选出竞价涨幅大于-2且小于5的股票。这可以通过计算股票的开盘价与前一个交易日的收盘价之间的差值,并将其除以前一个交易日的收盘价。然后,我们可以将该差值的绝对值乘以-2,并将其与5进行比较。如果该差值的绝对值小于5,则认为该股票的竞价涨幅大于-2且小于5。
选股逻辑分析
该策略的逻辑是通过计算股票的均线数量、收益率和竞价涨幅来筛选出至少有5根均线重合、收益大于0且竞价涨幅大于-2且小于5的股票。该策略通过计算多个指标来综合评估股票的表现,因此可能能够更好地捕捉股票的行情。
然而,该策略也存在一些风险。首先,如果股票的均线数量较少,那么该策略可能会筛选出较少的股票,从而降低其有效性。其次,如果股票的收益率波动较大,那么该策略可能会筛选出一些表现不佳的股票。最后,如果股票的竞价涨幅波动较大,那么该策略可能会筛选出一些表现不佳的股票。
如何优化?
为了优化该策略,我们可以考虑以下几点:
-
增加均线数量的计算范围,例如计算股票的收盘价与前1000天、前2000天、前3000天、前4000天、前5000天的收盘价的平均值,并计算它们之间的距离。
-
将计算竞价涨幅的范围扩大,例如计算股票的开盘价与前一个交易日的收盘价之间的差值,并将其除以前一个交易日的收盘价。然后,我们可以将该差值的绝对值乘以-5,并将其与5进行比较。
-
将多个指标的权重进行调整,例如将均线数量、收益率和竞价涨幅的权重分别为0.3、0.3和0.4。
最终的选股逻辑
最终的选股逻辑如下:
-
计算股票的收盘价与前500天、前1000天、前2000天、前3000天、前4000天、前5000天的收盘价的平均值,并计算它们之间的距离。如果这些平均值之间的距离小于等于5,则认为该股票至少有5根均线重合。
-
计算股票的收盘价与前一个交易日的收盘价之间的差值,并将其除以前一个交易日的收盘价。如果该收益率大于0,则认为该股票的收益大于0。
-
计算股票的开盘价与前一个交易日的收盘价之间的差值,并将其除以前一个交易日的收盘价。然后,我们可以将该差值的绝对值乘以-5,并将其与5进行比较。如果该差值的绝对值小于5,则认为该股票的竞价涨幅大于-2且小于5。
-
将上述三个指标的值相加,并将其除以3,得到综合评估股票表现的指标值。
python代码参考
以下是一个简单的 Python 代码参考,用于实现上述的选股策略:
import talib
def get_rolling_average(prices, n):
"""
计算股票的 n 日滚动平均值
"""
rolling_average = talib.MA(prices, n)
return rolling_average
def get_stock_score(prices, n1, n2, n3, n4, n5):
"""
计算股票的综合评分
"""
ma1 = get_rolling_average(prices, n1)
ma2 = get_rolling_average(prices, n2)
ma3 = get_rolling_average(prices, n3)
ma4 = get_rolling_average(prices, n4)
ma5 = get_rolling_average(prices, n5)
score = (ma1 + ma2 + ma3 + ma4 + ma
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
