(supermind量化策略)task17/a/换手率3%-12%、饮料酒进出口、三个技术

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

问财量化选股策略逻辑

选股逻辑为:选择换手率在3%-12%、饮料酒进出口、三个技术指标同时金叉的股票。

选股逻辑分析

该策略按照机构关注度选择换手率在3%-12%的股票,并继续选择饮料酒行业,再加入技术面判断,选择三个技术指标同时出现金叉的股票,以捕捉市场短期上涨趋势的机会。

有何风险?

该策略在使用技术面判断时,容易出现趋势延续和趋势反转的错误判断,且关注度高的股票受市场情绪和投资者情绪影响较大,风险较大。同时,该策略过度依赖技术面而忽略了公司基本面,可能存在利空消息等事件对股价造成冲击的风险。

如何优化?

应加入公司基本面因素,例如市销率、PEG等指标,综合研究公司的商业模式、盈利能力、财务状况、行业竞争等因素,以更全面的视角选择标的;同时可以结合基本面和技术面的分析,实现更精准的选股。

最终的选股逻辑

选择换手率在3%~12%、饮料酒进出口、三个技术指标同时金叉。

同花顺指标公式代码参考

换手率在3%-12%:SELECT(TURN<N>=AVG(TURN, N) AND TURN<N+1>AVG(TURN, N+1) AND TURN<N>3 AND TURN<N<12)
饮料酒进出口:SELECT(SECTORCODE('K40')=1)
三个技术指标同时金叉:DIF1>DEA1 AND DIF2>DEA2 AND DIF3>DEA3 AND DIF1>0 AND DIF2>0 AND DIF3>0
选股:SELECT(CODE, 换手率3%-12% AND SELECT_SECTORCOUNT('K43')>0 AND SELECT(T.A > T.B, 3) AND LLV(BARSINCE(FILTER(MA5 > MA10 AND MA10 > MA20, 3)))<3, NOT ST)

python代码参考

import pandas as pd
import tushare as ts


def select_stocks():
    pro = ts.pro_api()
    df1 = pro.stock_basic(exchange='', list_status='L', fields='ts_code,industry')
    df1 = df1[(df1['industry'].str.contains('饮料') & df1['industry'].str.contains('酒'))]
    date_today = pd.Timestamp.today().strftime('%Y%m%d')
    df2 = ts.pro_bar(ts_code='', adj='qfq', start_date=(pd.Timestamp.today()-pd.Timedelta(days=5*5)).strftime('%Y%m%d'), end_date=date_today)
    ma5 = df2['close'].rolling(window=5).mean()
    ma10 = df2['close'].rolling(window=10).mean()
    ma20 = df2['close'].rolling(window=20).mean()
    df2['MA5'] = ma5
    df2['MA10'] = ma10
    df2['MA20'] = ma20
    dif1, dea1, macd1 = talib.MACD(df2['close'].values)
    dif2, dea2, macd2 = talib.MACD(df2['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
    dif3, dea3, macd3 = talib.MACD(df2['close'].values, fastperiod=24, slowperiod=52, signalperiod=18)
    df2['DIF1'] = dif1
    df2['DEA1'] = dea1
    df2['DIF2'] = dif2
    df2['DEA2'] = dea2
    df2['DIF3'] = dif3
    df2['DEA3'] = dea3
    df2 = df2[(dif1 > dea1) & (dif2 > dea2) & (dif3 > dea3) & (dif1 > 0) & (dif2 > 0) & (dif3 > 0)]
    df3 = pro.daily_basic(ts_code='', trade_date=date_today, fields='ts_code,turnover_rate')
    df3 = df3[df3['turnover_rate'].between(3, 12)]
    df4 = pd.merge(df1, df3, on='ts_code')
    code_list = pd.merge(df4, df2[['ts_code', 'MA5', 'MA10', 'MA20', 'DIF1', 'DEA1', 'DIF2', 'DEA2', 'DIF3', 'DEA3']], on='ts_code')
    return code_list['ts_code']
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论