(supermind量化策略)task14/a/元宇宙、前25天有涨停、20日均线大于12

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

问财量化选股策略逻辑

本选股策略为:在元宇宙行业中,选择前25天内有涨停且20日均线大于120日均线的股票,确定买入时间和买点。

选股条件为:元宇宙,前25天有涨停,20日均线大于120日均线。该条件综合考虑了股票走势的稳定性和判断股票是否处于上涨趋势。

选股逻辑分析

本选股策略采取涨停策略和技术指标相结合的方式进行选股,选股条件中加入了20日均线大于120日均线的限制,以确保选出的股票处于上涨趋势。

有何风险?

本选股策略存在以下风险:

  1. 选股条件仍然较为严格,可能会导致筛出的股票数量较少,影响投资组合的多样性。
  2. 过度依赖涨停板和技术指标,无法全面考虑其他因素,如更广泛的行业趋势、公司内部基本面等。
  3. 投资风险预估不准确,过度依赖历史数据或技术指标判断,可能会在市场风险变化时出现较大的亏损。

如何优化?

为了提高本选股策略的绩效和可靠性,可以:

  1. 发掘更广泛的行业趋势和公司内部基本面分析,建立更全面的选股模型。
  2. 考虑加入基本面分析指标,如市盈率、股息率等,以增加选股维度,降低风险。
  3. 交易决策时可以增加止盈和止损策略,大幅减少投资风险。

最终的选股逻辑

在元宇宙行业中,选择前25天内有涨停且20日均线大于120日均线的股票,以确定中长期投资收益。在此基础上进行风险管控,合理配置投资资金,控制仓位,以获得一定的投资回报。

选股条件为:元宇宙,前25天有涨停,20日均线大于120日均线。
排序指标:按涨停次数和20日均线上升程度进行排序。

同花顺指标公式代码参考

选股条件:前25天有涨停,20日均线大于120日均线
TDX公式:
C1:ZT>0 AND MA(CLOSE,20)>MA(CLOSE,120);
C2:MARKET_CAP > 2;
SELECT IF(C1 AND C2, 1, 0);

同花顺公式:
ZT_25 > 0 AND MA(C,20) > MA(C,120) AND Market_Capital > 200000000

python代码参考

import pandas as pd
from typing import List

def select_stocks(data: pd.DataFrame, days_before: int) -> List[str]:
    df = data.copy()
    today = df.index.get_level_values('date').unique()[-1]
    sub_df = df.loc[today]
    new_col = '20日均线大于120日均线'
    sub_df[new_col] = False
    codes = sub_df.index.unique().tolist()
    for code in codes:
        his_df = df.loc[df.index.get_level_values('code') == code]
        his_df = his_df.loc[his_df.index.get_level_values('date') <= today]
        his_20ma = his_df['收盘价'].rolling(window=20).mean()
        his_120ma = his_df['收盘价'].rolling(window=120).mean()
        if his_20ma.iloc[-1] > his_120ma.iloc[-1]:
            sub_df.loc[code, new_col] = True
    sub_df = sub_df[sub_df['非ST涨停板'] == 1]
    sub_df = sub_df[sub_df['20日均线大于120日均线'] == True]
    sub_df = sub_df.merge(pd.DataFrame(df.groupby('code')['涨停板涨停日期'].apply(list)), on='code', how='left')
    sub_df['涨停板涨停次数'] = sub_df['涨停板涨停日期'].apply(lambda x: len(x))
    sub_df = sub_df[sub_df['涨停板涨停次数'] > 0]
    sub_df = sub_df[sub_df['总市值'] >= 2e8 ]
    sub_df = sub_df.sort_values(by=['涨停板涨停次数', '20日均线的上升程度'], ascending=[False, False])
    select_df = sub_df['code'].unique().tolist()
    return select_df
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论