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