问财量化选股策略逻辑
选股逻辑包括振幅大于1,10日涨幅大于0小于35,日线MACD>0的股票。
选股逻辑分析
- 振幅大于1和10日涨幅大于0小于35可以筛选出短期内涨势较好的股票。
- 日线MACD指标是常用的技术分析指标之一,当MACD>0时候,可以认为该股票处于上涨趋势,符合投资热度的筛选需求。
- 综合考虑以上指标,能够筛选出在短期内上涨趋势良好、存在投资机会的股票。
有何风险?
- 忽略细节问题,例如忽略交易量、忽略公司基本面等,造成选股不够准确。
- 只考虑技术指标,忽略股票的基本面和长期价值,有可能会导致投资失败。
- MACD指标有一定滞后性,对未来的预测能力有限,考虑投资时需加强风险控制。
如何优化?
- 加入交易量、市值、基本面等因素进行筛选,提升选股准确性和稳定性。
- 考虑多个技术指标综合分析,结合趋势、震荡等方面的指标进行考虑,提升选股准确性。
- 设定MACD指标的阈值范围,根据历史数据进行统计,提升选股策略的稳健性。
最终的选股逻辑
选股逻辑为振幅大于1,10日涨幅大于0小于35,日线MACD>0的股票,并结合交易量、市值、基本面等因素进行筛选。
同花顺指标公式代码参考
ABS(C-REF(C,1))/REF(C,1) > 0.01 AND SUM((C-REF(C,1))/REF(C,1)*100>0,10)>=1 AND REF(MACD(),2)>0
python代码参考
import akshare as ak
def select():
data = pd.DataFrame()
end_date = datetime.now().strftime("%Y%m%d")
start_date = (datetime.now() - timedelta(days=365)).strftime("%Y%m%d")
for symbol in ak.stock_zh_a_spot_em(symbol="").iloc[:,0].tolist():
try:
k_data = ak.stock_zh_a_daily(symbol=symbol, start_date=start_date, end_date=end_date)
if len(k_data)<10:
continue
elif (k_data['close']-k_data['open'])/k_data['open']*100<=0 or \
(k_data['high']-k_data['low'])/k_data['low']<0.01 or \
k_data['low'].iloc[-1]>=k_data['low'].iloc[-2] or \
macd(k_data['close'])['macd'][-1]<=0:
continue
elif (k_data['trad_date'].iloc[-2]==datetime.now().strftime("%Y-%m-%d")) and \
(k_data['limit_up'].iloc[-3:].sum()==3):
data = pd.concat([data, k_data.iloc[-2:]])
except:
continue
return data
def macd(close):
ema12 = close.ewm(span=12, adjust=False).mean()
ema26 = close.ewm(span=26, adjust=False).mean()
diff = ema12 - ema26
dea = diff.ewm(span=9, adjust=False).mean()
macd = (diff - dea) * 2
return pd.DataFrame({'diff':diff, 'dea':dea, 'macd':macd})
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
