(iwencai选股策略)近25个交易日有单日涨幅大于等于百分之10_、收益>0、至少5根

用户头像神盾局量子研究部
2023-09-01 发布

问财量化选股策略逻辑

  • 至少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亿' #选股语句。

模板如何使用?

点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论