(supermind策略)换手率3%-12%、北京A股除外、量比大于1

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

问财量化选股策略逻辑

选股逻辑为:在换手率3%-12%,剔除北京A股,同时选出量比大于1.5、量比小于6的股票。

选股逻辑分析

该选股策略依旧注重资金面,通过限制换手率范围和排除北京A股,同时选出量比大于1.5、量比小于6的股票,旨在筛选出相对流动性较好的股票。

有何风险?

与之前的选股策略相同,由于仅考虑资金面因素,未考虑其他影响股票价格的因素,例如行业发展状况和公司业绩等因素,筛选出的股票可能具备短期上涨空间,但其长期投资价值不佳。同时,选取的时间点和量比范围也可能会影响到筛选结果的准确性。

如何优化?

同样建议结合其他的基本面和技术面指标,例如市盈率、市净率、均线、MACD等指标,综合判断选出的股票是否具备长期投资价值。适当调整选股策略,例如调整时间点和量比范围等,同时引入其他指标辅助筛选,既能提高筛选的准确性,也可以减少风险。

最终的选股逻辑

在换手率3%-12%,剔除北京A股,同时选出量比大于1.5、量比小于6的股票,结合基本面和技术面的指标,综合判断选出具有长期投资价值的股票。

同花顺指标公式代码参考

FILTER:SELECTC(((HSL>3) AND (HSL<12) AND (AVERAGE[北京股份]==0) AND (LB>=1.5) AND (LB<=6)),0,1);

其中,HSL为换手率指标,LB为量比指标。

Python代码参考

import tushare as ts

def select_good_stocks():
    ts.set_token('your_token')
    pro = ts.pro_api()

    df1 = pro.stock_basic(exchange='SZSE', list_status='L', fields='ts_code,name,industry,pe,pb,turnover_rate,amount,total_mv,float_mv')
    df1 = df1[(df1['turnover_rate'] >= 3) & (df1['turnover_rate'] <= 12)]
    df1 = df1[(df1['name'].str.contains('ST') == False)]
    df1 = df1[(df1['ts_code'].str.startswith('002') == True) | (df1['ts_code'].str.startswith('000') == True)]
    df1 = df1[df1['float_mv'] >= 10000000000]

    df2 = pro.daily_basic(ts_code='', trade_date='20210118', fields='ts_code,trade_date,turnover_rate,pe,pb,ps,total_share,float_share,free_share,pre_close,open,high,low,close,change,amount,volume,free_share')
    df2['LB'] = df2['volume'] / df2['volume'].rolling(window=10).mean()
    df2 = df2[(df2['LB'] >= 1.5) & (df2['LB'] <= 6)]
    df2 = df2.set_index('ts_code')

    df3 = df1.join(df2[['LB']], how='left')

    df4 = pro.daily(ts_code='', start_date='20210118', end_date='20210118', fields='ts_code,trade_date,open,close,high,low,vol,amount,pre_close')
    df4['returns'] = (df4['close'] - df4['pre_close']) / df4['pre_close']
    df4 = df4[df4['returns'] > 0]
    df4 = df4.set_index('ts_code')

    df5 = df3.join(df4[['returns']], how='left')

    df6 = pro.moneyflow(trade_date='20210118', fields='ts_code, buy_sm_vol, sell_sm_vol, buy_md_vol, sell_md_vol, buy_lg_vol, sell_lg_vol')
    df6['net_volume'] = df6['buy_lg_vol'] - df6['sell_lg_vol']
    df6 = df6.set_index('ts_code')

    df7 = df5.join(df6[['net_volume']], how='left')
    df7 = df7.sort_values(by=['turnover_rate'], ascending=False)
    df7 = df7.head(20)
    return df7

good_stocks = select_good_stocks()
print(good_stocks)
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论