问财量化选股策略逻辑
- 至少5根均线重合的股票
- 流通市值大于100亿元
- 换手率3%-12%
选股逻辑分析
- 这个策略的逻辑是寻找均线多头排列的股票,同时要求流通市值较大,换手率适中,以确保股票的活跃度和流动性。
- 选取至少5根均线,可以考虑不同时间段的均线,如5日、10日、20日、60日、120日等,这样可以更好地反映股票的趋势和稳定性。
- 流通市值大于100亿元,可以确保股票的规模和流动性,避免小盘股的波动风险。
- 换手率3%-12%,可以保证股票的活跃度和流动性,避免僵尸股的出现。
有何风险?
- 这个策略的局限性在于,它只能反映股票的趋势和稳定性,而不能考虑公司的基本面和盈利能力等因素。
- 如果市场整体趋势向下,即使有均线多头排列的股票,也可能出现较大的跌幅。
- 换手率过低或过高,都可能影响股票的活跃度和流动性,从而影响策略的表现。
如何优化?
- 可以考虑加入更多的技术指标,如MACD、RSI等,以更好地反映股票的趋势和稳定性。
- 可以考虑加入公司的基本面数据,如市盈率、市净率等,以更好地评估股票的价值和风险。
- 可以考虑加入更多的时间周期,如30日、60日、90日等,以更好地反映股票的趋势和稳定性。
最终的选股逻辑
- 选取至少5根均线多头排列的股票,同时要求流通市值大于100亿元,换手率3%-12%。
- 可以考虑加入更多的技术指标和基本面数据,以更好地评估股票的价值和风险。
- 可以考虑加入更多的时间周期,以更好地反映股票的趋势和稳定性。
python代码参考
- 以下是一个简单的Python代码示例,用于筛选符合上述条件的股票:
import talib
def get_rolling_mavg(values, n):
ma = talib.MA(values, n)
return ma
def get_rolling_sma(values, n):
sma = talib.SMA(values, n)
return sma
def get_rolling_macd(values, fast_length, slow_length, signal_length):
ema fast_sma slow_sma
emafast = get_rolling_sma(values, fast_length)
emaslow = get_rolling_sma(values, slow_length)
ema信号 = get_rolling_sma(values, signal_length)
macd, macdsignal, macdhist = talib.MACD(emafast, emaslow, ema信号)
return macd, macdsignal, macdhist
def get_rolling_rsi(values, n):
rsi = talib.RSI(values, n)
return rsi
def get_rolling_kd(values, n1, n2):
kd = talib.KD(values, n1, n2)
return kd
def get_rolling_crossover(values, fast_length, slow_length):
ema fast_sma slow_sma
emafast = get_rolling_sma(values, fast_length)
emaslow = get_rolling_sma(values, slow_length)
if emafast > emaslow:
return True
else:
return False
def get_rolling_crossovers(values, n1, n2, n3):
kd = talib.KD(values, n1, n2)
rsi = talib.RSI(values, n3)
if kd fast_length slow_length rsi signal_length:
return True
else:
return False
def get_rolling符合条件的股票(data):
rolling_mavg = get_rolling_mavg(data['close'], 5)
rolling_sma = get_rolling_sma(data['close'], 20)
rolling_macd, rolling_macdsignal, rolling_macdhist = get_rolling_macd(data['close'], 12, 26, 9)
rolling_rsi = get_rolling_rsi(data['close'], 14)
rolling_kd = get_rolling_kd(data['close'], 3, 6)
rolling_crossovers = get_rolling_crossovers(data['close'], 12, 26, 14, 3, 6, 9)
rolling符合条件的股票 = rolling_mavg rolling_sma rolling_macd rolling_macdsignal rolling_macd
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
