【Backtrader】专治割韭菜(三)——MACD 靠谱吗
前言
之前稍微研究了一下均线,这回我们来研究一下进阶版的策略:双指数移动平均线,俗称金叉或死叉。具体解释详见百度百科。这个策略到底怎么样,我们今天就来测试一下。
正文
策略描述
- 买入:快线(m 日均线)上穿慢线(n 日均线);
- 卖出:快线(m 日均线)下穿慢线(n 日均线);
- 买卖数量:1 股;
核心代码
class SmaCross(bt.SignalStrategy):
params = dict(sma1=10, sma2=20)
def __init__(self):
sma1 = bt.ind.SMA(period=self.params.sma1)
sma2 = bt.ind.SMA(period=self.params.sma2)
crossover = bt.ind.CrossOver(sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
数据分析
- 横轴:快线 MAn;
- 纵轴:慢线 MAm;
- 数据:xx 年采用 MACD 策略至今(2022-08-11)的收益绝对值;
- 多表:每个表表示从当年 1.1 日至 2022.8.11 日持续执行策略的收益绝对值;
看起来 MA10-40,MA15-25,MA20-35 这几个策略的表现不错,我们来看下图形:
MA10-40
MA15-25
MA20-35
非常明显的,这几个策略都吃到了两波大涨的收益,在其它绝大多数的时间里几乎是有赢有亏,收益几乎可以忽略不计,所以我们将那两拨行情:2005.6~2011.5 最高上涨 5000,2014.4~2018.3 最高上涨 3200,单独跑一下成交数据看看:
从具体的数据中可以看出来:
- 在第一波上涨大行情中,三个策略分别能获得 3000~3400 的收益,相比最优的 5000,效果很不错;
- 在第一波下跌大行情中,三个策略的亏损额大致为 -900,-1000,-1900,总收益主要就差在这里了;
- 在第二波上涨大行情中,三个策略分别能获得 1800,2500,1700 的收益,相比最优的 3000,效果很不错;
- 在第二波下跌大行情中,三个策略的亏损额大致为 -250,-800,0,这使得它们最终收益出奇的一致,都在 1700 左右;
- 大行情过程中的一些小行情,这些策略多少也都能抓住,稍微有一些收益;
- 但是在横盘的过程中,这三个策略的胜负在五五开之间;
综合最开始的那张表,刨去这两次大行情中的收益,这三个策略几乎是不赚钱的,这也比较符合认知,如果再加上佣金、手续费等磨损,基本可以视为亏损的,当然亏损的额度应该也不大,估计跟交易次数成正比。
总结
简单来说,MACD 策略在有大涨行情的时候能够吃到这波收益,而且也可以在后面下跌的过程中减少损失。但是如果是平时的波动较小的走势,几乎不赚钱,甚至算上磨损成本是亏钱的,所以平时用这个策略是比较鸡肋的。在即将大涨的时候采用此策略,基本可以保证吃掉整个涨幅 60% 的收益,还是比较不错的。
那么问题又回来了,怎么判断即将大涨呢?
转载自:https://juejin.cn/post/7133124846468202532