在之前的 MACD 章节,介绍了 MACD 曲线的绘制。本次简单介绍 MACD 最常用的用法:金叉和死叉。
金叉和死叉是MACD指标中的两个重要信号。
金叉是指 MACD 快线(DIF)上穿慢线(DEA)的情况。死叉则是指 MACD 快线下穿慢线的情况。理论上,金叉代表看涨信号,而死叉则代表看跌信号。
如果用程序实现就比较简单,就是两个变量的大小变换。
def check_macd(macd_line, signal_line):
crossing_points = []
for i in range(1, len(macd_line)):
if macd_line[i] > signal_line[i] and macd_line[i - 1] < signal_line[i - 1] :
crossing_points.append((i, "buy"))
elif macd_line[i] < signal_line[i] and macd_line[i - 1] > signal_line[i - 1] :
crossing_points.append((i, "sell"))
return crossing_points
- 上述程序中
macd_line
即 DIF,signal_line
即 DEA。
对生成的结果进行输出:
for point in crossing_points:
index, signal = point
timestamp = timestamps[index]
price = close_prices[index]
print(f"MACD {signal}:\t Timestamp={timestamp},\t Price={price}")
if signal == "sell":
print("")
MACD sell: Timestamp=2022-04-18T16:00:00.000Z, Price=15.81
MACD buy: Timestamp=2022-05-19T16:00:00.000Z, Price=15.02
MACD sell: Timestamp=2022-05-25T16:00:00.000Z, Price=14.19
MACD buy: Timestamp=2022-06-06T16:00:00.000Z, Price=14.16
MACD sell: Timestamp=2022-07-11T16:00:00.000Z, Price=14.42
MACD buy: Timestamp=2022-08-10T16:00:00.000Z, Price=12.35
MACD sell: Timestamp=2022-09-21T16:00:00.000Z, Price=12.29
MACD buy: Timestamp=2022-11-03T16:00:00.000Z, Price=10.82
MACD sell: Timestamp=2022-12-14T16:00:00.000Z, Price=13.1
MACD buy: Timestamp=2023-01-03T16:00:00.000Z, Price=14.32
MACD sell: Timestamp=2023-01-30T16:00:00.000Z, Price=14.99
从结果来看,胜率还不错。
题外话
以上是 MACD 金死叉最基本的实现方式,但是如果想应用到实际交易中就有点痴心妄想了。金死叉又叫看涨、看跌信号,顾名思义,就是看起来会涨,或看起来会跌。
所有的技术指标都是通过历史数据计算得出的。如果用历史数据预测未来趋势,那么必定有一定概率出错。
所有的交易都是概率的博弈。MACD 指标只是在胜率的天平上增加了一些筹码而已。由此便产生了很多 MACD 的进阶使用方法。
- 调整周期。MACD最常用用的是12和26周期,通过调整这两个周期就能获得不同的市场信号,有的交易员会使用13和21周期。根据 MACD 计算原理,周期越小,指标走势变动就越剧烈;周期越大,则指标走势越平缓。
- 指标细化。MACD 不只有快慢线,还有柱状图,还有正负区间。这些组合在一起,又产生了更多的交易策略。
- 信号叠加。类似于多条均线的使用方式,MACD也可以将多个周期进行叠加,通过长短周期的叠加来判断趋势,比如说13/21 和 55/89 周期叠加。
- 与其他指标配合。这是最常用的方法,既然一个指标只能反应市场的一个侧面,那么多个指标同时使用,就可以更加全面的描绘市场。但需要注意的是,如果两个指标采用的计算基础和计算方式比较类似,那么就失去了参考意义。