(supermind策略)task16/a/macd零轴以上、企业性质、收盘价<boll(

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

问财量化选股策略逻辑

选取MACD值在零轴以上、企业性质、收盘价位于BOLL上轨以上并且高于BOLL中轨的个股作为投资标的。该策略综合考虑了技术面和基本面等多方面因素,以寻找具备较强趋势性和市场表现好的个股,用于投资。

选股逻辑分析

该选股策略主要对股票的多方面因素进行考虑,包括了技术面、企业性质等。选择收盘价高于BOLL上轨、高于BOLL中轨的股票,可以筛选出具备较强的上涨趋势的个股。但是此检索条件可偏重短期交易机会,过多关注单一技术指标可能导致利润和风险不成正比。

有何风险?

选股策略过于注重技术面,容易忽略基本面、产业趋势等因素。同时,趋势性策略风险较大,短期内股价波动较大,投资者需要注意风险控制。

如何优化?

可以结合技术面、基本面、产业趋势等多方面因素,综合使用指标来进行选股。同时,可以结合个人投资风格和对风险的容忍程度来具体确定选股策略。应根据市场走势灵活调整选股条件。

最终的选股逻辑

选取MACD值在零轴以上、企业性质、收盘价位于BOLL上轨以上并且高于BOLL中轨的个股作为投资标的。

同花顺指标公式代码参考

BOLL, UPPER, LOWER 表示BOLL指标的值
MA(CLOSE, 20)
STD(CLOSE, 20)
UPPER
MID
if(CLOSE < MID or CLOSE < BOLL or UPPER < BOLL, 0, 1)
MACD>0

Python代码参考

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

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

today = datetime.now().strftime("%Y-%m-%d")

q = jq.query(jq.valuation).filter(jq.valuation.code.in_(jq.get_index_stocks('000001.XSHG')))
df_valuation = jq.get_fundamentals(q)

df_stock_basics = jq.get_all_securities('stock')

df_stock_basics = df_stock_basics[df_stock_basics['start_date'] < today]

df_price = jq.get_price(df_stock_basics.index.tolist(), end_date=today, frequency="daily", fields=['close', 'high', 'low'])

df_ma20 = talib.SMA(df_price['close'], timeperiod=20)
df_std20 = talib.STDDEV(df_price['close'], timeperiod=20, nbdev=1)
df_price['upper'], df_price['mid'], df_price['lower'] = talib.BBANDS(df_price['close'], matype=talib.MA_Type.T3, timeperiod=20, nbdevup=1, nbdevdn=1)

df_price = df_price[ (df_price['close'] > df_price['upper']) & (df_price['close'] > df_ma20)]

q = jq.query(jq.valuation).filter(jq.valuation.code.in_(df_price.index.tolist())).filter(jq.valuation.market_cap > 10E9)
df_valuation = jq.get_fundamentals(q, count=1)

stock_list = df_valuation.index.tolist()

for code in stock_list:
    q = jq.query(jq.valuation).filter(jq.valuation.code==code)
    df_valuation = jq.get_fundamentals(q)

    if len(df_valuation) > 0 and len(df_valuation[df_valuation['close'] == df_valuation['high_limit']]) > 0:
        stock_name = jq.get_security_info(code).display_name
        print("(" + code + ")" + stock_name + " 符合条件")
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论