问财量化选股策略逻辑
选股逻辑为:选择换手率在3%-12%、饮料酒进出口、以及大单净量排行的股票。
选股逻辑分析
该选股策略在前一个逻辑的基础上,增加了大单净量计算。大单净量是衡量市场资金流向的重要指标,排行靠前的股票一般表示市场关注度较高,流动性好,但该指标存在一定的滞后性。该选股策略综合考虑了市场交易活跃度、行业龙头和市场关注力等因素,选股准确性较高,适用于短期投资或投机者。
有何风险?
大单净量排行具有一定的滞后性,所以可能会出现选出的股票已经到达高位的情况。同时,该选股策略仍存在和上一个逻辑一致的股价相对较低、容易被操纵等风险。
如何优化?
可以加入其他的因素,如市盈率、市净率、财务指标、行业前景、技术指标等,并通过筛选质量较高的股票,如高成长性、高ROE、稳健的现金流等来进一步提高选股准确性。可以通过对模型的测试和优化来不断完善。
最终的选股逻辑
选择换手率在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(SECTOR('K40')=1)
大单净量排行:SELECT(BBD>=AVG(BBD, N))
选股:SELECT(CODE AND 换手率3%-12% AND 饮料酒进出口 AND 大单净量排行)
python代码参考
import pandas as pd
import tushare as ts
def select_stocks():
pro = ts.pro_api()
df1 = pro.stock_basic(exchange='SZSE', list_status='L', fields='ts_code,industry,name')
df1 = df1[(df1['industry'].str.contains('饮料') & df1['industry'].str.contains('酒'))]
df2 = pro.daily_basic(ts_code='', trade_date='20211013',
fields='ts_code, close,turnover_rate')
df2 = df2[(df2['turnover_rate'] > 3) & (df2['turnover_rate'] < 12)] # 换手率在3%-12%
df1 = pd.merge(df1[['ts_code', 'industry']], df2[['ts_code', 'close', 'turnover_rate']], on='ts_code')
df1 = df1[df1['close'] < 20] # 股价相对较低
df3 = pro.moneyflow(ts_code='', start_date='20210101', end_date='20211013', fields='ts_code,big')
df3 = df3.groupby('ts_code').sum().reset_index()
df3['BBD'] = (df3['big'] - df3['big'].rolling(20).mean()) / df3['big'].rolling(20).mean() * 100 # 计算大单净量
df3 = df3.sort_values('BBD', ascending=False)[:50] # 大单净量排行前50
df = pd.merge(df1[['ts_code', 'industry', 'close', 'turnover_rate']], df3[['ts_code', 'BBD']], on='ts_code')
df = df.sort_values('BBD', ascending=False)
return df['ts_code']
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
