(supermind策略)task16/a/macd零轴以上、企业性质、15分钟周期MAC

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

问财量化选股策略逻辑

选取MACD值在零轴以上、企业性质符合一定要求、15分钟周期MACD绿柱变短的股票。该策略主要从技术面和企业性质两方面入手,在保证企业性质的前提下,选取15分钟周期MACD指标绿柱变短的股票,并排除科技创新板的股票。

选股逻辑分析

该选股策略同样是结合了技术面和企业性质两个重要因素,强调了选取频率为15分钟的MACD指标绿柱变短的股票,在保证企业性质的前提下,排除了科技创新板的股票。这样可以更加精细地挑选技术面良好的股票。

有何风险?

该选股策略同样排除了科技创新板的股票,也意味着放弃了某些未来潜力股票的选择。同时,某些情况下,虽然MACD绿柱变短,但股票的基本面未必良好,需要加强基本面因素的考虑。

如何优化?

可以考虑在选股策略上加入股票的基本面因素,如流动性、财务状况、盈利能力等,来更全面地考虑股票的价值。同时,可以建立更加严格的选股条件,如加入股票所属行业等限制条件,来追求更为可靠和准确的选股效果。

最终的选股逻辑

选取MACD值在零轴以上、企业性质符合一定要求、15分钟周期MACD绿柱变短的股票。

同花顺指标公式代码参考

(MACD(12,26,9)>0) AND (SType!='B') AND (SType!='H') AND (SType!='K') AND (SType!='N') AND ((DIFF(M, 12, E) - DEA(M, 12, 26, 9, E)) < REF((DIFF(M, 12, E) - DEA(M, 12, 26, 9, E)), 1));

Python代码参考

import jqdatasdk as jq 
from datetime import datetime, timedelta 
from talib import abstract 

jq.auth('账户名', '密码')

today = datetime.now().date() 
start_date = (today - timedelta(days=180)).strftime("%Y-%m-%d")

q = jq.query(jq.finance.STK_CAPITAL_CHANGE).filter(jq.finance.STK_CAPITAL_CHANGE.M1 >= jq.finance.STK_CAPITAL_CHANGE.M2 >= jq.finance.STK_CAPITAL_CHANGE.M3)
df_change = jq.finance.run_query(q)
df_change = df_change[df_change['volume']>4000000][~df_change.index.isin(['000998.XSHE'])]

for stock_code in df_change.index.tolist():
    stock_name = jq.get_security_info(stock_code).display_name
    SType = jq.get_security_info(stock_code).start_date[:2]
    if (SType!='B') & (SType!='H') & (SType!='K') & (SType!='N'):
        q2 = jq.query(jq.finance.STK_INDUSTRY_INFO).filter(jq.finance.STK_INDUSTRY_INFO.code==stock_code)
        industry = [x['name'] for x in jq.finance.run_query(q2)][0]
        q3 = jq.query(jq.valuation).filter(jq.valuation.code==stock_code)
        df_valuation = jq.finance.run_query(q3)
        if len(df_valuation)>0:
            jsl_today = jq.get_price(stock_code, start_date=today, end_date=today, frequency='daily', fields=['money'])[0][0]/df_valuation.capitalization[0]
            df = jq.get_price(stock_code, start_date=start_date, end_date=today, frequency='15m', fields=['high','low','close'])
            macd = abstract.MACD(df)
            if (macd[2][-1]-macd[2][-2])<0:
                print("(" + stock_code + ")" + stock_name + " 符合条件")

在Python代码中,先调用聚宽接口,获取不属于科技创新板、主升段起动的股票信息,筛选出符合条件的股票。然后对每一个股票,调用聚宽接口获取企业性质情况、所属行业、股票历史行情数据和市值数据,利用talib计算15分钟周期MACD指标,并判断绿柱是否变短,结合股票所属板块和MACD指标,判断是否符合选股条件,最后将符合条件的股票输出。

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

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

    模板如何使用?

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


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

评论