选股逻辑
选取振幅大于1、MACD零轴以上、饮料酒进出口的股票。
选股逻辑分析
饮料酒进出口是一个行业指标,选取该行业中的股票进行投资。同时通过振幅大于1和MACD零轴以上的条件筛选出技术面较强的股票,综合考虑行业和技术面指标来进行选股。
有何风险?
饮料酒进出口作为一个行业指标,没有考虑股票的基本面和财务指标等因素,只考虑了特定行业内的股票。同时取消了DEA上涨的条件,可能导致选出短期处于下跌趋势中的股票。
如何优化?
在选股过程中综合考虑多个因素,如行业指标、财务指标、技术面指标等,提高选股的准确性和收益率。
最终的选股逻辑
选取振幅大于1、MACD零轴以上、饮料酒进出口的股票。
同花顺指标公式代码参考
-振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
-MACD零轴以上:CROSS(MACD(12,26,9),0)>0
-饮料酒进出口:TSRANK(INDUSTRYCODE==160905,21)>0
选取股票代码:
- SELECTED: VAR1 AND VAR2 AND VAR3;
python代码参考
import tushare as ts
import talib
def get_filter():
# 获取行业指标
df_liquor = ts.get_industry_classified()
df_liquor = df_liquor[df_liquor['c_name'] == '饮料制造']
codes_liquor = df_liquor['code'].tolist()
# 获取MACD指标和振幅指标
df = ts.get_k_data('hs300', start='20210101', index=True)
macd, signal, hist = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
amplitude = abs(df['high'] - df['low']) / df['open']
# 获取饮料酒进出口过去21日排名
df_trade = ts.get_money_supply_bal()
df_trade_liquor = df_trade[df_trade['m2_liquor_trade'].notnull()].iloc[-21:]
codes_trade_liquor = df_trade_liquor['code'].tolist()
rank = df_trade_liquor['m2_liquor_trade'].rank(pct=True)
ranks_trade_liquor = {code: rank[i] for i, code in enumerate(codes_trade_liquor)}
# 综合mask并排序
mask = [code for code in df.index.values if (code in codes_liquor) and (code in macd.index.values) and (code in amplitude.index.values)]
mask = sorted(mask, key=lambda x: (macd.loc[x, 'hist'], ranks_trade_liquor.get(x)), reverse=True)
return mask
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。