(supermind)振幅大于1、北京A股除外、dea上涨_

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

问财量化选股策略逻辑

选股逻辑:振幅大于1%,北京A股除外,DEA线上涨。

选股逻辑分析

该选股策略在保证振幅足够大和排除区域限制的基础上,引入了技术指标DEA线的上涨趋势。通过DEA线的上涨判断股票的短期走势与买入时机。

有何风险?

该选股逻辑可能存在以下风险:

  1. 过度依赖技术指标,忽视公司财务表现、行业状况等因素,可能导致错误的选股决策;
  2. 振幅条件简单粗暴,可能忽略了其他重要的技术指标,例如均线、MACD等;
  3. 北京A股的排除条件过于严格,意味着可能排除一些潜力良好的公司。

如何优化?

为了改进该选股策略,可以考虑以下方面:

  1. 引入更多的财务指标、行业趋势等因素,提高选股的综合性和判断力;
  2. 在技术指标中加入均线、MACD等指标,为选股提供更科学的依据;
  3. 考虑加入相应的风险控制因素,譬如价格波动、业绩下滑等,以确保选股效果更加稳定可靠;
  4. 探索更灵活的地域限制因素,有效地避免股票漏选或误杀。

最终的选股逻辑

经过改进后的选股逻辑如下:

1.排除北京A股,非中国大陆等区域的股票;
2.振幅大于1%;
3.DEA线上涨;
4.加入对市盈率、市净率等财务指标的筛选;
5.引入更多的技术指标,例如均线、MACD等。

同花顺指标公式代码参考

选股逻辑的同花顺指标公式如下:

振幅:ABS((HIGH-LOW)/REF(CLOSE,1))>0.01;

DEA线上涨:REF(EMA(CLOSE,12)-EMA(CLOSE,26),1)>EMA(EMA(CLOSE,12)-EMA(CLOSE,26),9);

非北京A股和非中国大陆:BOARD_MAIN!='中国大陆' AND AREA!='北京';

选股公式:振幅 AND DEA线上涨 AND 非北京A股和非中国大陆;

python代码参考

选股逻辑的python代码如下:

def tech_picker(context):
    # 非北京A股和非中国大陆
    exc_stocks = context.exc_stocks[(context.exc_stocks.board_main != '中国大陆') & (context.exc_stocks.area != '北京')]
    # 振幅大于1%
    narrow_stocks = exc_stocks[((exc_stocks.high / exc_stocks.low) - 1) > 0.01]
    # DEA线上涨
    tech_stocks = narrow_stocks[ta.EMA(narrow_stocks.close.values, timeperiod=12) - ta.EMA(narrow_stocks.close.values, timeperiod=26)]
    tech_stocks = tech_stocks[ta.EMA(narrow_stocks.close.values, timeperiod=9) > ta.REAL(-1, tech_stocks)]
    # 选择数据并舍去缺失值
    selected = pd.merge(narrow_stocks, revenue_growth, on=['code', 'name'], how='inner')
    selected = selected.dropna()
    # 加入财务数据
    pe_ratio = selected['pe_ratio']
    pb_ratio = selected['pb_ratio']
    selected = selected[(pe_ratio > 0) & (pe_ratio < pe_ratio.quantile(rate)) &
                        (pb_ratio > 0) & (pb_ratio < pb_ratio.quantile(rate))]
    # 加入技术指标
    selected = ts.pro_bar(selected.code.tolist(), adj='hfq')['data']
    selected['ma5'] = ta.SMA(selected.close.values, timeperiod=5)
    selected['ma10'] = ta.SMA(selected.close.values, timeperiod=10)
    selected['macd'], selected['macdsignal'], selected['macdhist'] = ta.MACD(selected.close.values)
    selected = selected.dropna()
    # 选出满足条件的股票代码
    return selected[selected.close == ts.HHV(selected.high, 2)].index.tolist()
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论