(supermind策略)task16/a/macd零轴以上、企业性质、机构动向大于0

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

问财量化选股策略逻辑

选取MACD值在零轴以上、企业性质良好且机构动向大于0的股票作为投资标的。该策略既从技术面选股,又从基本面和资金面选股。从技术面上看,MACD表现良好的股票是可以投资的对象;从基本面上看,寻找那些良好的企业,因为公司财务状况较好的企业通常具备良好的长期发展前景;从资金面看,机构资金的动向往往反映了市场的整体预期,选取机构资金大于0的股票可以增加投资的成功率。

选股逻辑分析

该选股策略是基于技术面和基本面、资金面指标来进行的,从技术面看,MACD是一种常用的股票指标,其值在零轴以上说明股票当前处于技术面上升趋势,是一个买入信号;从基本面来看,介入那些财务状况较好的企业,能够持续获得稳定的企业收益;从资金面来看,机构资金的动向往往反映了市场的整体预期,选取机构资金大于0的股票可以增加投资的成功率。

有何风险?

这种选股策略却存在一些风险。首先,MACD、企业财务状况、机构动向等指标的解释并不一定是唯一的。其次,基本面是相对静态的,而技术面和资金面是相对动态的,因此要保持警惕和密切注意市场的变化,及时作出相应的调整和更改。

如何优化?

可以在技术面、基本面、资金面三方面进行优化。从技术面上看,可以结合其他技术面指标,如RSI、KDJ等等指标来进行调整;从基本面上看,可以引入更多的股票指标,如PE、PB等指标来增强选股决策的可靠性;从资金面上看,可以结合其他资金面指标,如换手率、资金流向等指标,增强选股决策的可靠性。

最终的选股逻辑

选取MACD值在零轴以上、企业性质良好且机构动向大于0的股票作为投资标的。

同花顺指标公式代码参考

(MACD(12,26,9) > 0) AND (PT_TYPE = 0) AND (STOCK_CIRCULATION_VALUES >= 5000000000) AND (ST_FLAG_NO_ST = 1) AND (ADDD5 > 0)

Python代码参考

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

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.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.STK_FINANCE_INDEX).filter(finance.STK_FINANCE_INDEX.code == stock_code).filter(finance.STK_FINANCE_INDEX.pub_date == yesterday)
    df_finance_index = finance.run_query(q)
    if len(df_finance_index) > 0 and df_finance_index.iloc[0]['close'] > df_finance_index.iloc[0]['ma250']:
        q = jq.query(indicator.MACD).filter(indicator.MACD.code==stock_code).filter(indicator.MACD.date==yesterday)
        df_macd = indicator.run_query(q)
        if len(df_macd) > 0 and df_macd.iloc[0]['macd'] > 0:
            q = jq.query(finance.STK_HOLDERS_FLOATING_TOP10).filter(finance.STK_HOLDERS_FLOATING_TOP10.code == stock_code)
            df_holder_top10 = finance.run_query(q)
            if len(df_holder_top10) > 0 and df_holder_top10.iloc[0]['holder_pct'] > 0:
                print("(" + stock_code + ")" + stock_name + " 符合条件")
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论