以前、自作EA(Expert Advisor)の超簡単な作り方を解説する記事を書いたのですが、その記事の中で「MAC-STOC.mq4」というEAを作りました。
自作と言っても、一からソースコードを書くのではなく、MT4のサンプルEA「MACD Sample.mq4」のソースコードの一部を書き換えるだけのものなんですけどね。
今回の記事は、この「MAC-STOC.mq4」をバックテストしてみたら、いろんな結果が出て一喜一憂した、そんなお話です。
オリジナルEA「MAC-STOC」のストラテジー
オリジナルEA「MAC-STOC」は、MACDとスローストキャスティックスを組み合わせたストラテジー(戦略)です。
このストラテジーは、有名トレーダー「Dr.田平」の書籍の中で、実際のトレードで100万円超の利益をあげた手法として紹介されていたものを参考にしています。
- 買い条件(スローストキャスティックスが15未満のときに、MACDがマイナスの低い位置でゴールデンクロス)を満たしたら買い注文をだす
- 売り条件(スローストキャスティックスが85超のときに、MACDがプラスの高い位置でデッドクロス)を満たしたら売り注文をだす
- 買いポジションの決済は、利食い注文か損切り注文にひっかかったとき、またはMACDがプラスの高い位置でデッドクロスしたとき、またはトレーリングストップにひっかかったとき
- 売りポジションの決済は、利食い注文か損切り注文にひっかかったとき、またはMACDがマイナスの低い位置でゴールデンクロスしたとき、またはトレーリングストップにひっかかったとき
MT4のバックテストの種類|全ティック・コントロールポイント・始値のみ
ところで、MT4のバックテストには、「全ティック」「コントロールポイント」「始値のみ」の3種類の方法があり、それぞれ以下のような特徴があります。
- 「全ティック」は、利用可能な最小時間枠を使いすべてのティックを生成する、最も正確な方法です。ただし、テストに時間がかかります。
- 「コントロールポイント」は、一つ下の時間枠を使った大まかな方法で、結果にはあまり信頼性はありません。
- 「始値のみ」は、最も早く終わる方法で、バーの始めにしか動かないEA向けです。
バックテストの準備
MAC-STOCも、まずは作ったそのままのパラメーター設定でバックテストしてみました。
バックテストの条件は、以下のとおりです。
- 通貨ペア:「EURUSD」
- 時間軸:「日足」
- 期間:「2008.10.01から2018.09.30」の10年間
- スプレッド:現在値
- バックテストの方法:コントロールポイント
で、その結果です。
何の調整もしてませんし、まー、こんなもんでしょう。
次に、パラメーターを最適化してみました。
MAC-STOCは、トレンド追従型であり、トレンドが続く限り利益を追求し続けるストラテジーです。
なので、利食い注文(TakeProfit)の設定を外し、損切り注文(StopLoss)とトレーリングストップの値を最適化してみて、どちらも「40」ポイントに変更しました。
バックテスト
バックテストの条件は先ほどまでと同じで、まず「コントロールポイント」でバックテストしました。
結果は以下のとおりです。
!!!
びっくりするぐらいいい結果が出ました。
グラフはきれいな右肩上がりで、PF(プロフィットファクター)は「4.07」です。
同じ条件でUSDJPYでバックテストしてみた結果が以下のグラフです。
グラフは多少ガタガタしましたが、PF「3.08」と十分な数値です。
実戦投入できるかも、と期待が膨らみます。
次に、「全テッィク」でバックテストしてみました。
結果は以下のとおりです。
???
全然だめです。
さっきとは、まったく逆のきれいな右肩下がりのグラフです。
ちなみに、「始値のみ」でバックテストするとこんな感じです。
やはり全然だめです。
結果の検討|「全ティック」以外は信用できない!
考えてみれば、「そりゃそうだな」と思います。
1本の足の中でも、高値のタイミングと安値のタイミングが逆になれば、勝ちトレードが負けトレードにひっくり返るかもしれないのですから。
少なくとも、ティック単位で条件分岐して命令を出すようなEAでは、「全ティック」でなければ正確なバックテストはできないでしょう。
まとめ
今回わかったことは、「全ティック」以外の方法で行ったバックテストは信頼できない、ということです。
他のサイトでは、まずは「コントロールポイント」でバックテストし、利益が出るかどうか等をおおまかに確認しましょう、などと書いていました。
しかし、EAによっては、「コントロールポイント」では何の確認もできないことがわかりました。
ということで、バックテストは、時間がかかっても「全ティック」でやりましょう。