MACDとシグナルラインのクロスで売買したときの勝率
本日はオシレータ系指標としてメジャーなMACDの検証してみたいと思います。
MACDの使い方はいろいろあり、実際は単体で売買判断することは少ないと思いますが、今回は単純にシグナルラインとのクロスで売買したときの単純に売買判断だけするとしたら勝率はどうなるのか見てみます。
MACDの設定
MACDの一パラメータは時間足問わず、長期サイクル26、短期サイクル12、シグナル期間9とするのが一般的だと思います。今回はこれで検証します。
エントリー条件
「値が0以下でMACDがシグナルを上抜いたら買い、0以上でMACDがシグナルを下抜いたら売り」とします。
また、エントリー後は値が0になるまでは次のエントリーをしないこととします。図にするとこんな感じ。
(連続エントリーをしないようにしてるのはMACDとシグナルが絡み合うような相場で一方向のポジションを積み上げてしまうのを防ぐためです。)
ストップロスは1時間足値幅の1~8倍、 テイクプロフィットはストップロスを元にリスクリワード比0.2~10を定めて設定します。
2012/01/01 ~ 2021/12/31 1時間足でエントリー ( 決済判断の価格データは1分足を使用)
結果
EURUSD
トレード回数 1413回
高RRR(損小利大トレード)
低RRR(損大利小トレード)
2本の線がほとんど重なっています。これは優位性無しとしてよさそうです。
GBPJPY
トレード回数 1389回
高RRR(損小利大トレード)
低RRR(損大利小トレード)
高RRRでは少し優位に見えますが、そもそもGBPJPYはランダムエントリーでも若干優位に見えるため、判定が難しいです。そのうちちゃんと比較したほうが良さそうですね。
低RRRではわずかではあるもののむしろ逆向きにズレてしまってます。誤差の範囲としたいところですが、SLTP設定に関わらずすべて同じ傾向があるのでなんらかの理由がありそうです。
AUDNZD
トレード回数 1452回
高RRR(損小利大トレード)
低RRR(損大利小トレード)
高RRRの結果はランダムエントリーとほぼ同じなので優位性なしとしていいでしょう。
低RRRについてはGBPJPY同様、理論勝率より低下しているという逆向きのズレが見られます。
考察とまとめ
少なくとも「MACD値が0以下でMACDがシグナルを上抜いたら買い、0以上でMACDがシグナルを下抜いたら売り」というエントリーは優位性があるとは言えない、としていいでしょう。
高RRRではランダムエントリーとだいたい同じ(GBPJPYではもしかしたら少し優位という程度)、低RRRではむしろGBPJPY, AUDNZDでは「上抜いたら『売り』、下抜いたら『買い』」のほうがいいのでは?と思わせるような結果が出ています。
なぜ逆の結果になったのか
MACDは「買われすぎ、売られすぎ」を見るオシレータ系指標の一つです。一般的にオシレータ系は強いトレンドが発生しているときは有効性が低いと考えられます。
MACDに限らずオシレータ系を使ってる方は、トレンド発生時に上や下に張り付いてしまっている状況を見たことがあるのではないでしょうか。
今回サインとみなした部分は「買われすぎ、売られすぎ(後の反転サイン)」と考えてエントリーしてるわけですが、これがトレンド発生時はただの「押し目」や「戻り」だったりするわけです。
そんなところでトレンドに対して逆張りエントリーしたら、そりゃ負けます。しかも押し(下がり)始めてから売り、戻り(上がり)始めてからの買いのため、そのあとエントリー方向(=トレンドと逆方向)に動く余地が少なく、勝率が理論値より低くなるのもなんとなくわかる気がします。
低RRRでは理論勝率が高いため、このあたりの影響が顕著にグラフにでているのかもしれません。
というわけで「MACDは相場状況を判断した上で利用しないと全く意味がない」ということを再認識した結果となりました。
システムトレードではオシレータ系指標はなんらかのトレンド判断指標と組み合わせることが多いと思いますが、この結果を見ればそれも納得です。