需要帮助?

试试AI小助手吧

(supermind量化策略)task17/a/换手率3%-12%、买一量>卖一量、15分

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

问财量化选股策略逻辑

选股逻辑为:选择换手率在3%~12%、买一量大于卖一量,且15分钟周期MACD绿柱变短的股票。

选股逻辑分析

该选股逻辑综合了量价、技术面两个方面的指标,选股逻辑主要关注于换手率适中、买卖盘偏向多头、且技术面MACD指标短线下降趋势的股票。

有何风险?

该选股逻辑仍然主要侧重于量价和技术面,可能未完全考虑基本面等因素,仍然存在一定风险。

如何优化?

可以结合其他技术指标如RSI、布林线等进行判断,同时加入行业板块分类筛选,从而提高选股准确性。

最终的选股逻辑

选择换手率在3%~12%、买一量大于卖一量,并且15分钟周期MACD绿柱变短的股票。

同花顺指标公式代码参考

买一量大于卖一量:SELECT(BIDV1>ASKV1)
换手率在3%~12%:SELECT(TURN<N>AVG(TURN,N) AND TURN<N>3 AND TURN<N<12)
15分钟周期MACD绿柱变短:SELECT(DIF_15>DEA_15 AND MACD_15<CROSS(MACD_15,0) AND REF(MACD_15,1)>REF(MACD_15,2))
非科创板:SELECT(CODE AND INDUSTRY NOT LIKE '科创板%')
选股:SELECT(CODE AND 买一量大于卖一量 AND 换手率在3%~12% AND 15分钟周期MACD绿柱变短 AND 非科创板)

python代码参考

import pandas as pd
import tushare as ts

def select_stocks():
    pro = ts.pro_api()

    # 查询挂买一量大于卖一量的股票
    market_df = pro.market_detail(symbol='', trade_date='20220422')
    df1 = market_df[(market_df['bid_vol'] > market_df['ask_vol'])]

    # 查询换手率在3%-12%的股票
    daily_df = pro.daily(ts_code='', start_date='20220422', end_date='20220422', fields='ts_code,turnover_rate')
    df2 = daily_df[(daily_df['turnover_rate'] >= 3) & (daily_df['turnover_rate'] <= 12)]
    df1 = pd.merge(df1, df2[['ts_code']], on='ts_code')

    # 查询15分钟周期MACD绿柱变短的股票
    df3 = pd.read_csv('daily_data.csv', index_col='trade_time')
    df3.index = pd.to_datetime(df3.index)
    macd_df = pd.DataFrame(index=df3.index.unique())
    for ts_code in df3['ts_code'].unique():
        temp_df = df3[df3['ts_code']==ts_code].resample('15T').last()
        temp_df = temp_df.dropna()
        if len(temp_df) < 26:
            continue
        temp_df['ema_12'] = temp_df['close'].ewm(span=12).mean()
        temp_df['ema_26'] = temp_df['close'].ewm(span=26).mean()
        temp_df['dif'] = temp_df['ema_12'] - temp_df['ema_26']
        temp_df['dea'] = temp_df['dif'].ewm(span=9).mean()
        temp_df['macd'] = (temp_df['dif'] - temp_df['dea']) * 2
        temp_df['macd_signal'] = temp_df['macd'].ewm(span=6).mean()
        temp_df['macd_hist'] = temp_df['macd'] - temp_df['macd_signal']
        if temp_df.iloc[-1]['macd_hist'] < temp_df.iloc[-3:-1]['macd_hist'].mean():
            macd_df[ts_code] = temp_df['macd_hist']
    df2 = macd_df[(macd_df.iloc[-1] < 0) & (macd_df.iloc[-2] > macd_df.iloc[-1])]
    df1 = pd.merge(df1, df2.T, how='inner', left_on='ts_code', right_index=True)

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

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

    模板如何使用?

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


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

评论