问财量化选股策略逻辑
选股逻辑为:选择换手率在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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


