python 量化交易:MACD指标双金叉形态识别:
df 是pandas的Dataframe,基础数据原来是 tushare 中的股票交易数据,MACD指标是用 talib 库计算得来:
df = df.sort_values(by='trade_date', ascending=True) # MACD > 0, 标准化到 1, MACD<0, 标准化到 -1 df['macd_std'] = df['MACD_MACD'].map(lambda x: 1 if x >= 0 else -1) # 前后2天 macd_std 相乘,如果等于-1,说明发生交叉,可能是金叉或者死叉; df['macd_gc'] = df['macd_std'] * df['macd_std'].shift(1) # 排除 MACD死叉情况,同时统计MACD交叉次数:>=2, 发生2次以上交叉 df['macd_gc_count'] = df.loc[(df['macd_gc'] < 0) & (df['MACD_MACD'] > 0), 'macd_gc'].count()