ブログ

何でも雑感。

投資

FXで勝ち続けることができるEAを作るMT4

私は、投資種目として、FXを選んでいる。
FXとはハイリスクハイリターンとよく言われるがFXという投資種目が必ずしもハイリスクハイリターンなわけではない。
ハイリスクハイリターンの部分はレバレッジの部分を指しているのだと思うが、レバレッジについては自分で調整できるのだ。

自動売買取引ができるFX =MT4=

FXには、各証券会社で利用ができるMT4という取引ソフトがある(利用可能な証券会社があるすべてで利用できるわけではない)。
MT4というソフトは、自動売買を可能とする拡張部分を持っており、C言語ライクな言語としてMQLというプログラム言語を持つ。
そのMQLで作ったソフトはEAと言われ、ポジションを入れたり、決済したりを自動で行うことができる。
要は、自分がトレードを行うロジックをプログラム化し、24時間稼働させることで投資機会を逃さず、一定のルールに従って売買を行うソフトを作ることができる。
勿論、プラス収支になるかマイナス収支になるかはそのプログラム内容、売買内容によって違うため、大きな収益を上げるプログラムを作ることに、一生懸命になっている人もたくさんいる世界だ。
そんなEAを私も開発している。

バックテストでプラス収支を計上できるEAを作る

まずスタートはバックテストを使って最後はプラスに向かって行くEAを作っていくことになる。
MT4の利点は、過去のチャートデータを利用して、EAの動作をテストすることができる。
過去チャートデータは証券会社からダウンロードができて、10~15年程度のチャートデータを落としてくることができる。
それを使うということは15年近くのデータで収益が上がるのかどうかをテストすることができるのだ。
ただ、バックテストは、その足の中の値動きとして最安値と最高値を等分割した状態で値動きを再現するのでリアルな値動きではない。
1分足で100pipsほど動いたときなどは10秒で10pips程度動いた計算で値動きをする。
最後の5秒で100pips動いたとしてもそういう動きは再現できない。
だから、完全にバックテストと同じ動きをリアルにするわけではないが、それでも、その程度の精度でもプラス収支にならないようなEAは、まず実際に投入しても勝てないだろう。
ということで、第一段階は10年以上の過去チャートでバックテストを行うことで収益がプラスになるEAを創れているのかどうなのかは判断できる。
様々な本でボリンジャーバンドやRSI、移動平均線を利用したトレード手法が書かれている本がたくさんあるが、自分はかなりの数をその本で書いてあるものをEA化してバックテストしてきたが、大変残念だが、そのままではまず勝てる手法はない。
また、いま示したような各種インジケーター。基本的な使い方があるわけだが、そのままそれをEA化してもまず勝てない。
TP/SLが同じであれば45~47%くらいの勝率になり、じわりじわりと負けていく。
複数のインジケータを組み合わせること、投下ロットをどう計算して導き出すか。この2つが重要であることだけは示しておきたい。

マルチ通貨で収支はすべてプラス化できるかどうか

バックテストでEAが、収支が大きくプラスになるEAは実は案外と簡単に作ることができる。
ただし、そのほとんどが実践投入した時点で破たんする。
実はこれは簡単な理由だ。
どうしてもテストを行いながらプラスになるEAを作る行為は、過去に起きたことに対して、大きなリスクを負わないように係数を設定しその過去の値動きに合わせて最適化するような行為になってしまう。
なので、USDJPYの過去10年間に対しては負けることなくプラスでおえることができるエリアを係数化したものになってしまう。
だから、そのようなEAは同じ期間のEURJPYでテストしてみると散々な結果になる。
よく売られているEAでも、USDJPY専用とかEURUSD用とか、そういうEAはまず買ったら負け始める。
しかもUSDJPY専用なんだからUSDJPYなら、安全なんじゃないか?と思うが、実際は全く違う。
過去10年であればUSDJPYで安全だが、未来の値動きには対応していない。
その10年の枠から出た瞬間に、過去のEURJPYと同じでそのEAから見たら予測不能な値動きなのだ。

全部が全部破たんに向かうわけではない。運よく過去10年と同じ枠の範囲内であれば、未来に向けてもプラス収支を築く可能性はある。
ただただ、ちょっとでも枠の範囲から外れた動きをした途端に破たんへ向かう。
その破たんへ向かう確率を推し量る一つの指標は、【ドローダウン】であろう。
ドローダウンが10%未満のEAなら、推奨されるロット、証拠金額であれば枠から外れても10%の2~3倍程度でまた枠の範囲に戻る可能性がある。
これが、30%くらいになると、一気に破たんする可能性もあるのでもし、自分で開発したり、誰かが作ったEAを買おうと思うのであればドローダウンを意識されることをお奨めする。

それよりももっと重要なのはやはりマルチ通貨対応だ。
収益が小さくても構わないが、様々な通貨ペアで収益がプラスになるEAであればより信頼性が高まる。
なぜなら、そのEAは様々な値動きをしてきた通貨ペアでどんな動きをしたとしても収益はプラスに向かった過去があるEAになるからだ。
これは、枠の中に納まったものなのではなく、収益をプラスに向かわせるための何かコツの様なものがないと様々な通貨ペアで収支をプラスに向かわせることができないはずだからだ。
もっと言えば、収まる枠の範囲という考え方としても、10年間10通貨ペアですべてプラス収支を出せるとした場合、純粋に加算していけば100年間で収支をプラスにできるのと近く正しい。

最適化で落としどころを見つけることができるかどうか

EAに開発を行っていくといろいろな係数を設定していくことがわかる。
例えばボリンジャーバンドでも、20,2、20,3、25,2、25,3。。。と係数の調整でまったく違う位置でトレードを行うことができる。
果たして何が一番いいのか。すべて試してみる必要があるだろう。
10年間のチャートを何通りもの組み合わせでチェックする。。。。ことが、MT4ではできるのだ。【最適化機能】という機能があるので、どの係数を1回でどのくらい増やしたり減らしたりするかなどを調整して最大で1000通り程度を1回の設定でチェックすることができる。もちろん、組み合わせが多ければそれだけ時間もかかるが、100通りくらいの組み合わせであれば3日もあればすべてチェックできる。
その中で理にかなった係数設定でプラスになる位置を探すことができるのだ。
これを行うことで収支、ドローダウンを最適化できる。

実際にリアルに運用してどうなるか

最後に作ったEAをバックテストで散々揉んできたら、リアルなトレードで本当に良い動きをするかどうか見てみる必要がある。
シミュレーションだ。
これをフォワードテストなんていう言い方でMT4の世界では言われているが、FXの世界にはデモ口座というのを開設することができる。
ようは、本当のお金を動かすわけではないが、シミュレーション上本当のリアルなチャート世界で疑似通貨を用いて疑似取引が可能だ。
本番と全く同じチャートデータなので、そこで上げた収益は、リアル口座で行えばあなたのお金でリアルに取引ができる。
本当のお金を使う前にほぼ本番と同じ(お金だけがバーチャル)な環境でテストを行える。
我慢ができなくなる方も多いだろうが。フォワードテストは必ずやった方がいい。しかも3~6か月くらい。
残念だが、作ったEAの90%以上は、フォワードテストを行うと3か月程度で破たんするはずだ。
だから、3か月、できればその倍の半年、運用してプラスになるようなら本番でやってみてもらいたいのだ。