(supermind策略)task16/a/macd零轴以上、企业性质、周K线上穿30周线

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

问财量化选股策略逻辑

选取MACD值在零轴以上、企业性质良好、周K线上穿30周线的股票作为投资标的。该策略主要从技术面和基本面两方面入手,从技术面选择MACD表现较好的股票,同时要求企业性质良好。从技术面方面选择周K线上穿30周线的股票,认为这类股票具有技术上涨势头,适合投资。

选股逻辑分析

该选股策略从技术面和基本面两方面入手,从技术面选择MACD表现较好的股票,同时要求企业性质良好。从技术面方面选择周K线上穿30周线的股票,认为这类股票具有技术上涨势头,适合投资。

有何风险?

该选股策略可能存在一些风险。首先,仅依赖MACD、周K线上穿30周线等指标可能存在风险,应该结合其它指标加以判断股票是否具备投资价值。其次,分析选股中企业性质的环节也可能存在误判,需要加强调研,进行充分的财务分析。

如何优化?

可以进一步细化技术面指标,如MACD、KDJ等指标,来筛选出更具有投资价值的股票。同时,在企业性质方面也可以引入更多的财务指标,如PE、PB等指标,来进一步筛选股票。

最终的选股逻辑

选取MACD值在零轴以上、企业性质良好、周K线上穿30周线的股票作为投资标的。

同花顺指标公式代码参考

(MACD(12,26,9) > 0) AND (PT_TYPE=0) AND (WEEKK:(WEEK)MA(C,30) > REF(WEEKK:(WEEK)MA(C,30),1)) AND (STOCK_CIRCULATION_VALUES >= 5000000000) AND (STOCK_CIRCULATION_VALUES <= 10000000000) AND (ST_FLAG_NO_ST = 1)

Python代码参考

import jqdatasdk as jq
from datetime import datetime, timedelta
from jqdatasdk import finance

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

yesterday = (datetime.now().date() - timedelta(days=1)).strftime("%Y-%m-%d")

q = jq.query(finance.STK_LIST).filter(finance.STK_LIST.type == 'CS').filter(finance.STK_LIST.board_type_code == '001').filter(finance.STK_LIST.stock_circulation_values >= 5000000000).filter(finance.STK_LIST.stock_circulation_values <= 10000000000).filter(finance.STK_LIST.st_flag_no_st == 1)
df = finance.run_query(q)

for stock_code in df.index.tolist():
    stock_name = jq.get_security_info(stock_code).display_name
    q = jq.query(finance.MA_WK).filter(finance.MA_WK.code == stock_code).filter(finance.MA_WK.date == yesterday)
    df_stock = finance.run_query(q)
    if len(df_stock) > 0:
        week_ma30 = df_stock.iloc[0]['ma30']
        q = jq.query(finance.STK_BAR_WK).filter(finance.STK_BAR_WK.code == stock_code).filter(finance.STK_BAR_WK.date == yesterday)
        df_stock = finance.run_query(q)
        if len(df_stock) > 0:
            if df_stock.iloc[-1]['close'] > week_ma30 and df_stock.iloc[-2]['close'] < week_ma30:
                df = finance.get_price(stock_code, count=30, end_date=yesterday, frequency='1d', fields=['open', 'close', 'high', 'low'])

                diff, dea, macd = abstract.MACD(df, fastperiod=12, slowperiod=26, signalperiod=9)
                if diff[-1] > dea[-1] and macd[-1] > 0:
                    print("(" + stock_code + ")" + stock_name + " 符合条件")
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论