移動平均線は、FXや株のテクニカル分析の中でもっともシンプルで基本的なインジケーターのひとつです。移動平均線を使ったトレード手法として、「ゴールデンクロス」と「デッドクロス」を売買シグナルにする戦略があります。
…というFXや株の解説記事はたくさんありますが、果たしてその通りにやって本当に勝てるのでしょうか?一時的に勝てたとしても、長期では結局負けるのではないか、という疑問が湧いてきます。
このシンプルな戦略でトレードをした場合どうなるかを、簡単な自動売買プログラム(EA)でテストしてみると、ある条件下では確かに5年間の右肩上がりの利益になりました。
2015.01.01 ~ 2019.12.31 損益カーブゴールデンクロスとデッドクロス
まず、手法の定義を整理しておきます。移動平均線の期間が異なる2本(長期・短期)を用意し、長期の移動平均線を短期の移動平均線が下から上へ突き抜けたものをゴールデンクロスといいます。上昇トレンドが発生したと判断して買いトレードを仕掛けます。
ゴールデンクロス一方、デッドクロスは短期の移動平均線が長期の移動平均線を上から下へ突き抜けたもので、下落トレンドが発生したと判断して売りトレードを仕掛けます。
デッドクロスこのゴールデンクロスとデッドクロスは、移動平均線だけでなくMACDなど他のインジケーターでもよく使われる考え方です。
バックテスト
2本の長短の移動平均線を使いますが、その期間は状況によって変わります。今回のEAの条件は以下の通りです。
- EURUSDの1時間足で期間が20と60の移動平均を使用し5分足で条件を判断
- 損切StopLossが100pips、利確TakeProfitが200pips
- エントリーは同方向 0.1Lot x 2 までで15分間隔以上

コードとしては、ざっくり以下のような感じです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
double ma1[2]; double ma2[2]; int maTimeFrame = 60; int ma1period = 20; int ma2period = 60; ... // 短期移動平均 ma1[0] = iMA(NULL, maTimeFrame, ma1period, 0, MODE_EMA, PRICE_CLOSE, 1); ma1[1] = iMA(NULL, maTimeFrame, ma1period, 0, MODE_EMA, PRICE_CLOSE, 2); // 長期移動平均 ma2[0] = iMA(NULL, maTimeFrame, ma2period, 0, MODE_EMA, PRICE_CLOSE, 1); ma2[1] = iMA(NULL, maTimeFrame, ma2period, 0, MODE_EMA, PRICE_CLOSE, 2); ... // 2つ前の移動平均線と1つ前の移動平均が交差するのを条件として買いと売りを設定 // Buy条件 if(ma1[1] < ma2[1] && ma1[0] > ma2[0]) return true; // Sell条件 if(ma1[1] > ma2[1] && ma1[0] < ma2[0]) return true; |
結果は、1万ドル、約105万円(1$=105円換算、当時のレート)の証拠金で2,353ドル、つまり約25万円の利益となりました。ドローダウンは6.63%なので、ロットを大きくすれば50万円くらいはできそうです。そうなると年間1割程度の利率になります。
問題点はエントリーが月に数回しかないのと、少なくとも1時間足の移動平均線なので夜中もチャートを見ていないとできない手法になり、裁量では難しいところです。
また、勝率が4割なので精神的には我慢を強いられます。この条件で利益になる通貨ペアはGBPJPYなどボラティリティが高い通貨ペアに限られて、全てに通用するわけではありません。
検証
例えば、利益になったケースを見てみます。

利確まで200pipsだったので、下落トレンドから戻して建値まで価格が戻っています。デッドクロスの後にゴールデンクロスが出現しているので、早めに決済するほうが良かったかもしれません。逆のクロスが発生したら終了、あるいはトレーリングストップを入れるなど、決済ルールをもう少し考えたほうがいいようです。現在の決済ルールは利確か損切だけなのでIF-Done注文、OCO注文という単純なものです。
次は損失となったケースで、デッドクロスで売りでエントリーしたのがすぐに上昇トレンドになって損切りとなりました。

移動平均は狭く重なっており、むしろこの後ゴールデンクロスが発生したのかもしれません。RCIというオシレータで見てみると、この時点で買いのシグナルになっているので、売りは全く的を得ていなかったわけです。裁量であれば、早めの損切をしたか、あるいはエントリーを考え直すこともできたかもしれません。
まとめ
移動平均線を利用したゴールデンクロス・デッドクロスの戦略はそれなりに使えますが、安定した利益をもとめるなら他のインジケータを使うとより効果的のようです。
MT4のバックテストはEAの評価だけでなく、トレード手法の研究にも使えそうです。
おまけ
プログラムができなくても、この程度のことであればプログラム無しでも作成できるツールがあります。
[PR]
『EAつくーる』

























