(supermind)振幅大于1、昨天3连板、2021年_

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,昨天3连板,2021年。

选股逻辑分析

该选股逻辑与前一个选股逻辑相比将涨停板的判断改为了限定在2021年,旨在在过去一年的市场中寻找符合条件的标的。其他条件均与前一个选股逻辑相同,具有筛选波动性较大、市场热度较高、短期内有一定上涨空间的特点。

有何风险?

该选股逻辑仍然存在以下风险:

  1. 涨停数据的判断依然存在主观性和时间限制;
  2. 只考虑了短期市场买入信号,容易忽略中长期趋势和基本面的影响;
  3. 过去一年的市场热度与未来市场热度的差异性,可能导致在某些市场环境下失效。

如何优化?

为了优化该选股逻辑的准确性,可以考虑以下几点:

  1. 对涨停数据进行严格限定,减少误选;
  2. 融合其他指标(如MACD、均线等)来分析市场中长期走势;
  3. 根据市场不同时间段和风格,优化选股策略,增强适应性。

最终的选股逻辑

改进后的选股逻辑如下:

  1. 振幅大于1.5%;
  2. 昨天3连板;
  3. 2021年曾有涨停,并且该涨停价高于当天的收盘价。

同花顺指标公式代码参考

该选股逻辑的通达信指标公式与前面一致,此处省略。

Python代码参考

import pandas as pd
from tqsdk import TqApi, TqAuth

api = TqApi(auth=TqAuth("YOUR_ACCOUNT", "YOUR_PASSWORD"))

symbol_list = ["SHFE.rb2101", "DCE.i2101"]
for symbol in symbol_list:
    klines = api.get_kline_serial(symbol, 24 * 60 * 60, data_length=500)
    df = pd.DataFrame(klines)

    # 筛选涨停数据
    df['date'] = pd.to_datetime(df['datetime']).dt.date
    df['is_2021'] = df['date'].apply(lambda x: x.year == 2021)
    df['is_limit_up'] = df.apply(lambda x: x['high'] == x['close'] * 1.1, axis=1)
    df.loc[df['is_limit_up'] & ~df['is_2021'], 'is_limit_up'] = False

    # 选股逻辑
    C1 = (df['close'].max() / df['close'].min() - 1 >= 0.015)
    C2 = ((df['close'] == df['close'].shift())
          & (df['close'] == df['close'].shift(2))
          & (df['close'] != df['close'].shift(3)))
    C3 = (df['is_limit_up'].rolling(window=25).max().shift() >= df['close'].shift())

    # 总筛选
    selector = C1 & C2 & C3
    result = df[selector == 1].sort_values(by='amount', ascending=False).index.tolist()

注意:其中的涨停判断需要对交易所和品种进行细节调整。

    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


    ## 如果有任何问题请添加 下方的二维码进群提问。
    ![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论

需要帮助?

试试AI小助手吧