(iwencai量化策略)rsi小于65_、10天内涨停天数大于2、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 10天内涨停天数大于2
  • RSI小于65

选股逻辑分析

  • 第一条均线为5日均线,代表短期趋势;
  • 第二条均线为10日均线,代表中期趋势;
  • 第三条均线为20日均线,代表中长期趋势;
  • 第四条均线为30日均线,代表中期趋势;
  • 第五条均线为60日均线,代表中长期趋势。

当5日、10日、20日、30日和60日均线重合时,意味着这些时间段内的趋势是相同的,即市场处于一个相对稳定的阶段。在这个阶段,股票的价格波动较小,投资者可以更好地把握机会。

另外,10天内涨停天数大于2意味着股票短期内有较强的上涨动力,而RSI小于65则表示股票的价格相对较低,有较大的上涨空间。

有何风险?

  • 这个策略的假设是市场处于一个相对稳定的阶段,如果市场出现较大的波动,这些均线可能会失去意义。
  • 如果股票在短期内出现大量的涨停,那么其价格可能会出现过快的上涨,从而导致投资者无法及时买入或卖出。

如何优化?

  • 可以考虑加入更多的均线,例如90日均线、180日均线等,以更好地反映市场趋势。
  • 可以考虑加入其他指标,例如MACD、布林线等,以更好地判断股票的价格走势。

最终的选股逻辑

  • 选取至少5根均线重合的股票
  • 10天内涨停天数大于2
  • RSI小于65
  • 选取90日、180日均线重合的股票
  • 选取MACD、布林线等指标均在上升趋势的股票

python代码参考

  • 选取至少5根均线重合的股票
  • 10天内涨停天数大于2
  • RSI小于65
  • 选取90日、180日均线重合的股票
  • 选取MACD、布林线等指标均在上升趋势的股票
import talib
import pandas as pd

def get_stock_data():
    # 获取股票数据
    data = pd.read_csv('stock_data.csv')
    return data

def get_stock_scores(data):
    # 计算股票的得分
    scores = {}
    for column in data.columns:
        if column.startswith('ma'):
            ma_scores = talib.MA(data[column], timeperiod=column.split(':')[1])
            scores[column] = ma_scores
        elif column.startswith('rsi'):
            rsi_scores = talib.RSI(data[column])
            scores[column] = rsi_scores
        else:
            scores[column] = data[column]
    return scores

def get_stocks筛选条件(data):
    # 获取筛选条件
    conditions = []
    for column in data.columns:
        if column.startswith('ma'):
            conditions.append((data[column] > data[column].rolling(window=10).mean()).rolling(window=10).sum() > 2)
        elif column.startswith('rsi'):
            conditions.append(data[column] < 65)
        else:
            conditions.append(data[column])
    return conditions

def get_stocks筛选结果(data, conditions):
    # 获取筛选结果
    stocks = []
    for index, row in data.iterrows():
        if all(row[condition] for condition in conditions):
            stocks.append(row)
    return stocks

def main():
    # 获取股票数据
    data = get_stock_data()
    # 计算股票的得分
    scores = get_stock_scores(data)
    # 获取筛选条件
    conditions = get_stocks筛选条件(data)
    # 获取筛选结果
    stocks = get_stocks筛选结果(data, conditions)
    # 输出筛选结果
    print(stocks)

if __name__ == '__main__':
    main()

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

select_sentence = '市值小于100亿' #选股语句。

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论