MACDで勝てるのか?勝率と最適設定値をバックテストにより徹底検証

MACDを使ってトレードしているものの、うまく勝てていないという方、多いのではないでしょうか?

多くの書籍や解説サイトでは、MACDの使い方として、MACD線とシグナル線によるゴールデンクロス買い・デッドクロス売りを紹介しているかと思います。しかし、為替相場は物理法則に基づいて動いているわけではなく、従ってこれらのトレードが勝てる手法であると約束されているわけではありません。仮に勝ったり負けたりを繰り返すとしても、その期待値がプラスであることは確かめておきたいものです。

そこで今回は、MACD線とシグナル線によるゴールデンクロス買い・デッドクロス売りを繰り返すトレード手法のバックテストを行うことで、MACDを使ったトレードの基本的なパフォーマンスを確かめてみたいと思います。

また、MACDのパラメータと検証する時間足をそれぞれ変えてみて、最も結果の良かったケース(最適設定値)もご紹介したいと思います。

この記事でわかること
  • MACDを使ったトレードの勝率
  • MACDの最適設定値

Youtubeでも配信中です。

スポンサーリンク

MACDの課題

まずここで、MACDをトレードで使う際の課題を定義させていただきたいと思います。おそらく皆様が本記事にたどり着いた理由も、これらの課題が背景にあるではないでしょうか。

ゴールデンクロスの後、相場が上昇する保証がない

MACDに関する細かい計算式は、以下のサイトを参考にさせていただきました。

第13回 MACD(Moving Average Convergence and Divergence)|テクニカル分析ABC |ガイド・投資講座 |投資情報|株のことならネット証券会社【auカブコム】
第13回 MACD(Moving Average Convergence and Divergence)を解説するページです。「株」や投資信託を始めたい初心者の方に最適なネット証券会社なら、安心のMUFGグループの「auカブコム証券」へ。

指数平滑移動平均線をEMAと表現すると、MACD線とシグナル線は以下で表されます。

MACD線=短期EMA-長期EMA
シグナル線=MACD線を移動平均化

数式見た感じ、MACD線は上昇の勢いを表しており、MACD線がシグナル線をゴールデンクロスすることは上昇の勢いが更に加速している状態を表している、と読めると思います(負の場合はその逆になります)。

仮に力学系のアナロジーで考えていいのであれば、確かにゴールデンクロスは買いポイントに成り得るかと思います。しかし、為替相場に慣性があるわけではなく、上昇の勢いが継続することが保証されていないため、統計的な評価をしてみなければ単なる空想に過ぎないという話になってしまいます。

パラメータのデフォルト値が適切である保証がない

短期EMAの期間・長期EMAの期間、およびMACD線を平均化する期間はそれぞれパラメータで決定します。多くの場合、 MACDの生みの親であるGerald Appel氏が推奨する設定値(前から順番に12、26、9)が使われるそうで、おそらく皆様が普段お使いのトレードツールもこの値がデフォルトとして設定されているはずです。

ですがこのデフォルト値、最適とまではいかなくとも、期待値がプラスになるような適切な値であることが保証されているわけではありません。統計的解析によってそれを確かめなければ、知らないうちに負けを重ねてしまう可能性もあるわけです。

検証条件

前章でMACDを使う上での課題に関して概観したところで、具体的な検証条件について説明していきたいと思います。

どんなトレードで検証するか?

今回は、MACD線とシグナル線によるゴールデンクロス買い・デッドクロス売りを繰り返すトレードでバックテストを行います。
入札ロットは固定とし(検証では0.1Lot)、次のエントリーが行われた際は前のポジションを手仕舞いします。所謂ドテンです。

下図がその様子の一例です。まず緑の丸でゴールデンクロスが起き、0.1Lotの買いポジションを保有します。次に紫のデッドクロスが起きますが、その際既にあった0.1Lotの買いポジションは決済し、新たに0.1Lotの売りポジションを保有します。これを繰り返します。

「こんなトレードはしない」「他のインジケータと組み合わせて使っている」「自動売買はしない」などの声が聞こえてきそうですが、このように基本的な使い方をした場合の検証結果は非常に重要と考えています。

というのも、もしこれによってパフォーマンスが絶望的であることがわかれば、他のインジケータと組み合わせて使おうが、あるいは裁量トレードをしようが、そこから期待値をプラスにひっくり返すことは困難であると考えられるからです(数少ない勝ちトレードをどうやってピックアップできるか!)。

パラメータの探索範囲は?

MACDのパラメータの探索範囲ですが、今回は上述したGerald Appel氏が推奨するデフォルト値の周辺で探索したいと思います。おそらく皆様も、このデフォルト値の周辺で何かいい値はないかと考えられているのだと拝察します。

具体的な「周辺」の範囲ですが、実は同氏は上記デフォルト値以外に、トレードスタイルに応じて以下の設定値を推奨したと言われています。

  • 短期のトレード:短期EMA=6、長期EMA=19、シグナル=9
  • 中期のトレード:短期EMA=12、長期EMA=26、シグナル=9
  • 長期のトレード:短期EMA=19、長期EMA=39、シグナル=9

これを見るとシグナルは9で固定で、短期EMAを6から19まで、長期EMAを19から39まで変えていることがわかります。これを参考に、シグナルは9で固定とし、短期EMAは6、12、19の値を、長期EMAは19、26、39の値をそれぞれ組み合わせた8パターンを探索範囲としたいと思います(※短期EMAと長期EMAが共に19である組み合わせは除外します)。

ちなみに今回検証では時間足として15分足、1時間足、4時間足を取り上げます。それぞれ前から、スキャルピング、デイトレード、スイングトレードを意識しています。

検証結果

それでは実際に結果を見てみたいと思います。バックテストは以下の条件にて行いました。

通貨ペアUSD/JPY
スプレッド0.3pips(0.3銭)
検証期間2013/1/1 ~ 2020/12/31
ポジション0.1Lot(10000通貨)
資産100万円

15分足

表の中の数字はプロフィットファクタを示しています。赤字が最も結果の良かった場合に該当しますが、それでもプロフィットファクタは1未満であるため、トレードをすればするほど損することとなります。また括弧内の数字は取引回数です。

  短期EMA
 設定値61219
長期EMA190.95(21725)0.93(17605)
260.94(20691)0.91(14902)0.92(14559)
390.93(19969)0.93(15623)0.93(13343)

1時間足

表の見方は15分足と同じです。プロフィットファクタが1以上のため、トレードをすればするほど得をすることになります。短期EMAと長期EMAは大きくすればするほど結果は良くなるみたいです。

  短期EMA
 設定値61219
長期EMA191.01(5390)1.07(4340)
261.03(5150)1.08(4038)1.11(3486)
391.05(4864)1.08(3728)1.17(3144)

4時間足

表の見方は15分足と同じです。どの組み合わせでもプロフィットファクタが1以上ではありますが、1時間足ほどのパフォーマンスは引き出せてない印象です。

  短期EMA
 設定値61219
長期EMA191.12(1341)1.06(1096)
261.09(1281)1.05(1022)1.03(902)
391.05(1247)1.05(972)1.08(822)

追加検証

さて、事前に決めていた探索範囲だと以上の結果となりますが、最もパフォーマンスの良かった1時間足に関して、さらにパラメータを大きくした場合にどうなるかが気になるところです。そこで、短期EMAと長期EMAをそれぞれ19、39を出発点に1ずつ増やしていき、どこまで結果が良くなるかを追加で検証してみました。

以下がその結果となります。表を見ると、短期EMA=21、長期EMA=41が最も良く、その後は下り坂です。

短期EMA長期EMAプロフィットファクタ
20401.18
21411.19
22421.18
23431.17

参考程度に、今回最も結果の良かった場合のバックテストの詳細を以下に示します。結構綺麗な右肩上がりに見えますがいかがでしょうか。ここ1~2年ほどは資産の増加が鈍化してますが、比較的コンスタントにプラスの結果を出しているように思います。

まとめ

本記事では、バックテストを介してMACDの勝率および最適設定値を紹介しました。以下に結論となる重要なポイントを示します。

結論
  • 15分足でのスキャルピングには向いてない
  • 4時間足でのスイングトレードでも期待値はプラスだが、1時間足のデイトレードの方が更にパフォーマンスが良い
  • 1時間足の場合、短期EMA=21、長期EMA=41、シグナル=9が最適で、プロフィットファクタは1.19ほど

今後は他のインジケータと組み合わせた場合や、ダイバージェンスの有効性なども検証したいなと考えてます。

以上、最後まで読んでいただきありがとうございました。