MT4で作成した自作EAで検証した結果と、コピペ可能な自動売買プログラムを紹介しています。
- パーフェクトオーダーってどうなの?
- 押し目買い、戻り売りって勝てるの?
- 自動売買やってみたい!
こんな人のためにEAを作成し、検証してみました。
移動平均線の長期、中期、短期が同じ方向に順番に揃っている状態をパーフェクトオーダーと言います。
- 長期 < 中期 < 短期 ならロング方向
- 長期 > 中期 > 短期 ならショート方向
このパーフェクトオーダー状態における押し目買いや戻り売りが一番手堅く稼げると聞いた人も多いのではないでしょうか?
ということで、早速自動売買EAを作成してみました。
パーフェクトオーダーの押し目買い・戻り売りができるEA
① MetaEditorでEAを新規作成する
MetaEditorで自動売買EAを新規作成します。やり方は以下の記事を参考にしてください。
① パーフェクトオーダーを知るための移動平均線を計算
パーフェクトオーダーとは、長期、中期、短期の移動平均線が順番にそろっている状態のことです。そこで、まずは長期、中期、短期の移動平均線の値を取得して、変数に代入します。
移動平均線の期間は、初期設定に多い、短期:25日、 中期:75日、 長期:200日 として設定しました。
1 2 3 4 5 6 7 |
void OnTick() { //--- double MA_25 = iMA(Symbol(),0,25,0,MODE_EMA,PRICE_CLOSE,1); double MA_75 = iMA(Symbol(),0,75,0,MODE_EMA,PRICE_CLOSE,1); double MA_200 = iMA(Symbol(),0,200,0,MODE_EMA,PRICE_CLOSE,1); } |
② パーフェクトオーダーの押し目買い、戻り売りで注文
押し目買い、戻り売りの定義を厳密にプログラムするのは難しいので、簡易的に逆向きのフラクタルが形成された場所としました。
フラクタルとは、5本のローソク足が次の形で並んでいることを言います。
- 押し目買いのフラクタル:下がる→下がる→下がる→上がる→上がる
- 戻り売りのフラクタル :上がる→上がる→上がる→下がる→下がる
ちょうど手をパーで広げた時の指の高さのように、上がって下がってって形のことです。
EAのonVoidにて注文オーダーを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
void OnTick() { //--- // 5hon no MA narabu double MA_25 = iMA(Symbol(),0,25,0,MODE_EMA,PRICE_CLOSE,1); double MA_75 = iMA(Symbol(),0,75,0,MODE_EMA,PRICE_CLOSE,1); double MA_200 = iMA(Symbol(),0,200,0,MODE_EMA,PRICE_CLOSE,1); // Position ga 0 if(OrdersTotal()==0) { if(MA_200<MA_75 && MA_75<MA_25 && Close[5]>Close[4] && Close[4]>Close[3] && Close[3]<Close[2] && Close[2]<Close[1]) { OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0); } if(MA_200>MA_75 && MA_75>MA_25 && Close[5]<Close[4] && Close[4]<Close[3] && Close[3]>Close[2] && Close[2]>Close[1]) { OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0); } } |
③ ポジション保有は1個までしか持たないように変更
上記のままでは、初回注文しかできない設定になっています。買いのシグナル状態から売りのシグナル状態に変更したときに、決済注文と反対売買を行うように設定しました。
全プログラムは以下の通りです。(コピペ可能)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
void OnTick() { //--- // 5hon no MA narabu double MA_25 = iMA(Symbol(),0,25,0,MODE_EMA,PRICE_CLOSE,1); double MA_75 = iMA(Symbol(),0,75,0,MODE_EMA,PRICE_CLOSE,1); double MA_200 = iMA(Symbol(),0,200,0,MODE_EMA,PRICE_CLOSE,1); // Position ga 0 if(OrdersTotal()==0) { if(MA_200<MA_75 && MA_75<MA_25 && Close[5]>Close[4] && Close[4]>Close[3] && Close[3]<Close[2] && Close[2]<Close[1]) { OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0); } if(MA_200>MA_75 && MA_75>MA_25 && Close[5]<Close[4] && Close[4]<Close[3] && Close[3]>Close[2] && Close[2]>Close[1]) { OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0); } } // Position ga aru if(OrdersTotal()>0) { if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_SELL) { if(MA_200<MA_75 && MA_75<MA_25 && Close[5]>Close[4] && Close[4]>Close[3] && Close[3]<Close[2] && Close[2]<Close[1]) { OrderClose(OrderTicket(),0.1,Ask,3); OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0); } } if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==true && OrderType()==OP_BUY) { if(MA_200>MA_75 && MA_75>MA_25 && Close[5]<Close[4] && Close[4]<Close[3] && Close[3]>Close[2] && Close[2]>Close[1]) { OrderClose(OrderTicket(),0.1,Bid,3); OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0); } } } } |
パーフェクトオーダーの押し目、戻りの自動売買EA 結果
- MT4 ストラテジーテスタ使用
- FXDDの1分足ヒストリカルデータを使用
- 2005.1.1 ~ 2019.12.15
- スプレッド USD/JPY、EUR/USD:1pips GBP/JPY:2pips
- 始値のみでモデル計算
USD/JPY 日足 2005~2019
2005年から2019年末までで、取引回数は12回だけ。右肩上がりで利益は出ていますが、実用となると難しいでしょうね。
ただし、日足のトレンドは継続するってことは証明されてそうなので、短期トレードでも長期足に逆らわないってのは間違いじゃなさそうです。
USD/JPY 1時間足 2005~2019
これも実用性にはほど遠いですね。ドローダウンが約15%とかなり大きいです。
USD/JPY 5分足 2005~2019
お話にならないレベルです。。。
GBP/JPY 5分足 2005~2019
2005年から2010年にかけては驚異的なパフォーマンスですが、それ以降はヨコヨコですね。
こういったパフォーマンス部分を切り取って、情報商材とかでは売っているんでしょうね。こんな感じで。。。
GBP/JPY 15分足 2005~2019
15分足ならなかなか良さげな右肩上がりです。
2019年、単体で見た結果ですが、1万通貨だけのトレードで86回トレードを行い、800pips以上の利益となっています。ドローダウンが8%。勝率は27%なので、小さく負けて大きく勝つ硬いなのでしょう。もう少し手を加えれば、十分実用できそうです。
GBP/JPY 1時間足 2005~2019
1時間足も良い感じです。ポンド円はパーフェクトオーダーに対する押し目買い、戻り売りがハマりやすいって言えそうです。
EUR/USD 1時間足 2005~2019
打って変わってユーロドルは、全くダメですね。損失を吐き出すだけのEAになってしまっています。
15分足や5分足も右肩下がりで、ダメダメでした。
まとめ
パーフェクトオーダー状態における押し目と戻りでトレードしたらどうなるかを、MT4のEAでバックテストしてみました。
- USD/JPYの1日足ならいい感じ
- GBP/JPYの15分足、1時間足なら実用できそう
- EUR/JPYはダメダメ
って結果でした。
次回、MAの設定を少し変えてみて再検証してみようと思います。