(supermind量化投资)task13/a/元宇宙、30日平均线向上、前天macd<0

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

问财量化选股策略逻辑

该选股策略包含元素“元宇宙”、“30日平均线向上”和“前天macd<0”。

选股逻辑分析

该选股策略综合考虑了元宇宙、趋势均线和股票MACD指标情况。要求选出具备三个方面优点的股票:一是处于上升趋势,二是MACD指标前天存在底部夹击,并且三天之内MACD指标黄金交叉。

有何风险?

  1. 筛选条件过于简单,可能会漏选或误选一些标的;
  2. 策略只考虑了短期市场波动和股票走势,忽略了公司基本面;
  3. 数据的来源问题,不同数据源数据效果可能存在差异。

如何优化?

  1. 加入其他技术指标和基本面因素来筛选优良标的,增加筛选条件,提高精度;
  2. 可以考虑对MACD指标通过指数平滑滤波来减少噪音;
  3. 考虑建立更多的补充逻辑,以应对市场不同阶段变化。

最终的选股逻辑

基于元宇宙、30日均线向上的条件下,前天MACD指标底部夹击并且三天内出现黄金交叉。

同花顺指标公式代码参考

元宇宙:SELECTEDINDUSTRY("gnxq")

30日平均线向上:MA(CLOSE, 30) > REF(MA(CLOSE, 30), 1)

前天MACD指标底部夹击:MACD(12,26,9) < 0 AND REF(MACD(12,26,9), 1) > 0 AND REF(MACD(12,26,9), 2) < 0

三天内出现黄金交叉:CROSS(MACD(12,26,9),MACD(12,26,9,EMA))=1

Python代码参考

import pandas as pd
import baostock as bs

def stock_selector(df):
    # 筛选条件
    condition1 = df['concepts'].apply(lambda x: '元宇宙' in x)
    condition2 = df['close'] > pd.Series(df['close']).rolling(window=30).mean().shift(1)
    condition3 = pd.Series(df['macd']).rolling(window=3).apply(lambda x: x.iloc[-1] > 0 and x.iloc[-2] < 0 and x.iloc[-3] < 0, raw=True)
    condition4 = pd.Series(df['macd']).diff().rolling(window=3).min().apply(lambda x: x < 0)

    conditions = [condition1, condition2, condition3, condition4]
    selected = df[conditions]
    
    # 可以加入其他指标的筛选条件和综合分析
    # selected = selected[other_conditions]
    
    return selected
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论