(同花顺量化)2021年_、10天内涨停天数大于2、振幅大于1

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

问财量化选股策略逻辑

本选股策略逻辑要求振幅大于1,10天内涨停天数大于2,且是2021年前的涨停。将选股逻辑作为第一个段落放入标题为 ## 问财量化选股策略逻辑 的段落中。

选股逻辑分析

本选股策略逻辑要求振幅大于1,关注前期表现好的个股,同时对于在2021年前有大涨停的股票进行挖掘,以期能够获得跟进涨势的收益。这种选股方式对于短期投机盈利有一定的效果,但选出的个股往往会涨跌较大,风险比较高。

有何风险?

以下是该选股策略可能存在的一些风险:

  1. 过于依赖历史数据,对未来的投资决策不具备太多的参考价值,可能会导致选股效果不佳。
  2. 涨停次数作为选股条件可能会导致选出的股票涨跌较大,风险比较高,而且在市场风格转换时,这种选股方式可能会失效。
  3. 考虑时间限制可能会导致选出的股票较少。

如何优化?

对于上述存在的风险,可以对选股逻辑进行以下优化:

  1. 定期地进行逻辑的检验和更新,避免盲目依赖过去的数据,增加逻辑对未来市场的预判能力。
  2. 结合其他因素对涨停的定义进行一定的调整,以降低选出的个股的风险。
  3. 考虑增加更多筛选条件,以增加选出的个股数量和多样性。

最终的选股逻辑

综合以上优化方案,我们得到完善的选股逻辑如下:

  1. 选择振幅大于1,10天内涨停天数大于等于2,且在2021年前有大涨停的个股。
  2. 除了关注“大涨停”之外,加强对公司基本面的考量,并结合大盘趋势等宏观指标配合选股决策,提升选股策略的有效性和可靠性。
  3. 增加充分的风控措施,例如设置止损点位等。

同花顺指标公式代码参考

以下是通达信公式参考:

选择振幅大于1,10天内涨停天数大于等于2,且是2021年前的涨停的个股。

F1:= HHV(HIGH,20);
F2:= LLV(LOW,20);
ST: = F1-F2;
V1: = (ST-REF(ST,1))/REF(CLOSE,1)*100;
V2: = ABS(V1);
K: = EMA(V1,9);
D: = EMA(K,9);
J: = 3 * K-2 * D;
C1: = C AND (C > O) AND (V >= 1000000);
C2: = COUNT(C1>0, 20)> 0;
C3: =YEAR(DATE)< 2021;
C4: = (MA(O,5)>MA(O,15)) AND (MA(O,15)>MA(O,30));
V3: = COUNT((HIGH= REF(HIGH,1)),20);
V4: = COUNT(V3>0,20);
SELECTED: V4>1 and V2 > 1 and V2 < 2 and C2> 0 and C3> 0 and C4>0;

Python代码参考

以下是Python代码参考:

import tushare as ts

def stock_selection():
    rs_basic_info = ts.get_stock_basics()
    selected_code = []
    for code in rs_basic_info[(rs_basic_info['market'] == '上证A')|(rs_basic_info['market'] == '深证A')].index:
        industry = rs_basic_info.loc[code, 'industry']
        if industry in ['银行', '保险', '证券']:
            continue

        rs = ts.get_k_data(code, start='2020-01-01', end='2021-01-01', index=True, ktype='D')
        if rs is None or len(rs) < 50:
            continue

        condition1 = (rs['high'] - rs['low'])/rs['close'].shift(1)*100 > 1
        condition2 = rs['close'].rolling(window=10, min_periods=1).apply(lambda x: len(x[x>x.shift(1)*1.1]), raw=True) >= 2
        condition3 = rs['close'].shift(1).rolling(window=20, min_periods=1).apply(lambda x: True if max(x)>=x[-1]*1.1 else False, raw=True).sum() > 0

        if sum([condition1, condition2, condition3]) != 3:
            continue

        selected_code.append(code)
        
    return selected_code

注:以上代码仅供参考,具体根据实际需求和风险承受能力进行调整。需要安装tushare库。

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

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

    模板如何使用?

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


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

评论