问财量化选股策略逻辑
首先,我们需要找到至少5根均线重合的股票。这可以通过计算股票价格与5条不同时间周期的移动平均线之间的距离来实现。具体来说,我们可以计算股票价格与5条不同时间周期的移动平均线之间的绝对值之和,并将其除以5。如果这个数值小于某个阈值,则认为至少有5根均线重合。
接下来,我们需要找到昨天换手率大于8%的股票。这可以通过计算股票的成交量除以前一交易日的成交量来实现。具体来说,我们可以计算股票的成交量除以前一交易日的成交量,并将其与某个阈值进行比较。如果这个数值大于某个阈值,则认为昨天换手率大于8%。
最后,我们需要找到非ST(10点之前选股票)的股票。这可以通过检查股票是否属于ST板块来实现。具体来说,我们可以使用股票的代码来检查股票是否属于ST板块。如果股票不属于ST板块,则认为它是非ST股票。
选股逻辑分析
这个策略的逻辑很简单,它通过计算股票价格与5条不同时间周期的移动平均线之间的距离来寻找至少5根均线重合的股票。然后,它通过计算股票的成交量除以前一交易日的成交量来寻找昨天换手率大于8%的股票。最后,它通过检查股票是否属于ST板块来寻找非ST股票。
这个策略的逻辑没有考虑股票的基本面因素,因此可能会错过一些有潜力的股票。此外,这个策略也没有考虑股票的市场表现,因此可能会错过一些表现良好的股票。
有何风险?
这个策略的逻辑没有考虑股票的基本面因素,因此可能会错过一些有潜力的股票。此外,这个策略也没有考虑股票的市场表现,因此可能会错过一些表现良好的股票。此外,由于这个策略只考虑了昨天的换手率,因此可能会错过一些今天表现良好的股票。
如何优化?
为了优化这个策略,我们可以考虑使用更多的移动平均线来寻找均线重合的股票。例如,我们可以使用10条、15条、20条、25条和30条移动平均线来寻找均线重合的股票。此外,我们还可以考虑使用更多的市场表现指标来寻找表现良好的股票,例如价格趋势、成交量和市盈率等。
最终的选股逻辑
最终的选股逻辑如下:
-
计算股票价格与5条不同时间周期的移动平均线之间的绝对值之和,并将其除以5。如果这个数值小于某个阈值,则认为至少有5根均线重合。
-
计算股票的成交量除以前一交易日的成交量,并将其与某个阈值进行比较。如果这个数值大于某个阈值,则认为昨天换手率大于8%。
-
检查股票是否属于ST板块。
最终的python代码参考如下:
import talib
def get_ma_crossovers(prices, time_frames):
ma_crossovers = []
for i in range(len(prices)):
ma = talib.MA(prices[i:i+time_frames], time_frames)
for j in range(time_frames):
if ma[j] > ma[j+1]:
ma_crossovers.append((i, j))
return ma_crossovers
def get_volume_change(prices, time_frames):
volume_change = []
for i in range(len(prices)):
v1 = prices[i]
v2 = prices[i+1]
v3 = prices[i+2]
v4 = prices[i+3]
v5 = prices[i+4]
v6 = prices[i+5]
if v2 > v1 and v3 > v2 and v4 > v3 and v5 > v4 and v6 > v5:
volume_change.append(i)
return volume_change
def get_non_st_stocks(prices):
non_st_stocks = []
for i in range(len(prices)):
if prices[i] < 10:
non_st_stocks.append(i)
return non_st_stocks
def get筛选结果(prices, ma_crossovers, volume_change, non_st_stocks):
crossover_prices = []
for i in ma_crossovers:
crossover_prices.append(prices[i])
volume_change_prices = []
for i in volume_change:
volume_change_prices.append(prices[i])
non_st_stocks_prices = []
for i in non_st_stocks:
non_st_stocks_prices.append(prices[i])
return crossover_prices, volume_change_prices, non_st_stocks_prices
def get_filtered_prices(prices, ma_crossovers, volume_change, non_st_stocks_prices):
filtered_prices = []
for i in range(len(prices)):
if i in ma_crossovers or i in
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


