问财量化选股策略逻辑
- 至少5根均线重合的股票
- 收益>0
- 近25个交易日有单日涨幅大于等于百分之10
选股逻辑分析
- 该策略首先筛选出至少5根均线重合的股票,这表明这些股票的短期和长期趋势较为一致,可能具有较好的上涨潜力。
- 筛选出收益>0的股票,表明这些股票在过去一段时间内表现良好,具有较好的投资价值。
- 筛选出近25个交易日有单日涨幅大于等于百分之10的股票,表明这些股票在过去一段时间内有较强的上涨动力,可能具有较好的投资机会。
有何风险?
- 该策略可能无法准确预测股票未来的走势,因为股票市场存在较大的不确定性。
- 该策略可能过于侧重于短期趋势,而忽略了长期趋势的影响,导致错过一些优质股票的机会。
- 该策略可能过于侧重于单日涨幅,而忽略了其他因素的影响,导致错过一些优质股票的机会。
如何优化?
- 可以考虑加入更多的技术指标和分析方法,以更准确地预测股票未来的走势。
- 可以考虑加入更多的基本面分析方法,以更准确地评估股票的投资价值。
- 可以考虑加入更多的市场情绪分析方法,以更准确地判断股票的市场表现。
最终的选股逻辑
- 筛选出至少5根均线重合的股票
- 筛选出收益>0的股票
- 筛选出近25个交易日有单日涨幅大于等于百分之10的股票
- 加入更多的技术指标和分析方法
- 加入更多的基本面分析方法
- 加入更多的市场情绪分析方法
python代码参考
import talib
def get_top_n_moving_average(df, n):
# 获取股票的移动平均线
ma = talib.MA(df['close'], timeperiod=n)
# 获取前n个移动平均线
ma_top_n = ma[-n:]
# 获取每个移动平均线的上穿和下穿信号
signals = ma_top_n.diff()
# 将信号转换为二进制信号
signals = signals.apply(lambda x: 1 if x > 0 else 0)
# 返回信号的前n个值
return signals[-n:]
def get_top_n_positive_return(df, n):
# 获取股票的收益率
returns = df['close'].pct_change()
# 获取前n个收益率的上穿和下穿信号
signals = returns[-n:]
# 将信号转换为二进制信号
signals = signals.apply(lambda x: 1 if x > 0 else 0)
# 返回信号的前n个值
return signals[-n:]
def get_top_n_positive_return_and_moving_average(df, n):
# 获取股票的收益率
returns = df['close'].pct_change()
# 获取前n个收益率的上穿和下穿信号
signals = returns[-n:]
# 将信号转换为二进制信号
signals = signals.apply(lambda x: 1 if x > 0 else 0)
# 获取股票的移动平均线
ma = talib.MA(df['close'], timeperiod=n)
# 获取每个移动平均线的上穿和下穿信号
ma_top_n = ma[-n:]
# 将信号转换为二进制信号
ma_top_n = ma_top_n.apply(lambda x: 1 if x > 0 else 0)
# 返回信号的前n个值
return signals[-n:] & ma_top_n[-n:]
def get_top_n_moving_average_and_positive_return(df, n):
# 获取股票的移动平均线
ma = talib.MA(df['close'], timeperiod=n)
# 获取前n个移动平均线
ma_top_n = ma[-n:]
# 获取股票的收益率
returns = df['close'].pct_change()
# 获取每个移动平均线的上穿和下穿信号
signals = ma_top_n.diff()
# 将信号转换为二进制信号
signals = signals.apply(lambda x: 1 if x > 0 else 0)
# 返回信号的前n个值
return signals[-n:] & returns[-n:]
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
如果有任何问题请添加 下方的二维码进群提问。


