これまでEAの自作というのは初心者には難しいものでしたが、近年EA作成ツールやサービスなどが充実してきており、以前よりは現実的な「手が届く」ところまで来ています。
「相場の動きを見てミスなく思い通りに発注・決済を繰り返すEAを作る」という意味では確かに以前とは比較にならないくらい敷居が下がりました。
しかし、まだ「儲かるシステム」が簡単に作れるか?というと残念ながらそこの域にまでは達していないというのが正直なところです。
ですが、初心者の方はいきなり「儲けるため」にEAを作成するのではなく、その希望を持ちながらも「EAの作り方を学ぶ」という点におけば十分耐えうるレベルです。
まずは簡単に作れる方法からご紹介していきます。
自作ツールを使ってEAを作る方法
EAは自動売買システムと称される通りトレーダーが画面に張り付かなくても自動で売買をしてくれるシステムですが、そのシステム自体をも自動的に作ってくれる便利な方法があります。
無料:サイトへのロジック登録型
ForexEAdvisor.com
サイトへのロジック登録型としてForexEAdvisor.comという無料のサイトがあります。
このサービスでは6つのタブの中からエントリーロジックやクローズロジックを指定して、最後に「EAを作る(Generate)」ボタンを押すだけできちんと動作するEAが出来上がります。
参考のため以下のロジックで動くごく簡単なEAを作ってみましたが、計測してみたらなんと1分30秒で出来上がってしまいました。
- エントリーロジック:21SMAと200SMAのゴールデンクロス
- クローズロジック:RSIが50に到達
約定、決済など基本的なコードは最初から問題なく機能するレベルに仕上がっているので、レポートもきちんと出せる立派なEAです。
パフォーマンスはきれいな右肩下がりなのでこのまま使ってしまったら大変なことになりますが、トレーリングストップの詳細ロジックなども開示されているので、出来上がったコードの熟読を繰り返せばEA作りの勉強になるでしょう。
MetaTrader5(MT5)
次にMT5。MT4が今でも市場ではデファクトスタンダードになっていますが、製造元のメタクォーツ社では最新版のMT5が出てからすでにMT4のサポートはやめてしまっているみたいです。
それでも圧倒的にMT4がメインで使われているのは、特に昔からEAを作っている人たち、資産としてEAを持ち愛用している人たちにとって、MT4との互換性が少ないMT5は同じソフトの最新版という認識はなく全く別のプラットフォームとして目に映っているからなんですね。
確かにデフォルトでティックが使えたり、バックテストにフォワードテストが入っていたりと魅力的な機能はたくさん追加されてはいるのですが、今まで売ってきたEAが売れなくなったり、今まで使ってきたEAが使えなくなったりするのは致命的です。
この手のソフトで一番重要な互換性を犠牲にしてしまった代償は大きく、いまだにMT5がMT4のシェアを超えられていないのはそれが一番の原因ではないかと思われます。
一方MT5に追加された魅力的な機能の中に「EAの自動生成機能」というものがあります。
先の例と同じく、MAのゴールデンクロスによるシンプルなEAをこの機能で作ると、全く練習なしでガイダンスに従いながらやっても1分40秒でできてしまいました。テストでの資産曲線は以下の通りです。
日数をかけた力作でさえこの曲線に劣ってしまうことはざらにあるので、メタクォーツ社も相当力を入れて用意した機能なのではないでしょうか?
MT4の資産にしがらみのない初心者の方であれば、しばらく情報不足等の不便はありますが、取引できる商品が増え、サポートが充実しているということからもMT5から身につけていくというのも一つの手だと思います。
みんながやっていないからチャンスという前向きな考えの方にはおすすめの方法です。
有料:ツール購入型
お金に余裕があれば有料のEA作成ツールなども検討の余地に入ります。
GogoJungleというEAファンに人気のあるサイトでは「EAつくーる」という商品をずいぶん前から紹介されていて結構愛用者も多いようです。
この種のツールは有償であれ無償であれ、発注機能やロット管理などインフラ的な基本機能でありながら結構手間がかかりミスを犯しがちなコーディング部分を自動でやってくれるので、開発者が売買ロジックというEAの核心部分に時間とエネルギーを集中できるというところが最大のメリットと言えます。
初心者のうちは自動的に生成されたコードを繰り返し読むことで勉強になるというのも大きいですね。
自分でコードを書いてEAを作成する
EA自作の参考になる本
コード化したいロジックが最初から明確にあり、ツールの限界に合わせて妥協したくないという方や、本格的にコーディングを学んで自由自在に思い通りのものを作れるようになりたいという方は一からMQL言語を学んでいくことをお勧めします。
ある程度開発を進めていくと実はまるっきりゼロから作り始めるということは少なくなり、大抵すでに大部分できているEAや過去に作ったEAの改変作業がメインになります。
そこまで行ってしまえば「グーグル先生」を師として仰ぎ、光速で技術を高めていくことができますが、これから始めるという方にはその指針となる参考書が必要になります。
新MT4対応ライブラリによるメタトレーダーEA実践プログラミング
まずMT4のEA開発と言ったら真っ先に浮かぶのが豊嶋久道氏です。
氏はまだ日本でもMT4が広まっていなかった2000年代初頭からEAの開発関連図書を出されており、氏の名前で検索すればたくさんEA開発の良書がたくさん見つかります。
今回はその中でも、私がお世話になり大変役立った「新MT4対応ライブラリによるメタトレーダーEA実践プログラミング」(アマゾンKindle Unlimitedで0円)をご紹介します。
この0円というところを気に入っていただけるのではないでしょうか?Unlimitedは実際には月1000円程度かかりますから厳密には無料ではありませんが、この際、関連図書を読み漁っていただく意味でもUnlimitedを使ってみるのもいいと思いますよ。
特にMT4とMT5両方で機能するコードの書き方に触れられている部分は秀逸でオブジェクト指向に慣れた開発者の方にも違和感なく入っていける名著です。
コードをテンプレート化する
ある程度ご自身で開発を進められていくと、EAの一部分の機能を持つ「部品」という位置づけのコード群が資産として蓄えられていきます。
整理整頓の得意な人だとこれらを組み合わせてテンプレートという形にして、毎回ゼロから作るのではなくテンプレートを利用した効率の良い作り方をします。
中にはご自身で作ったテンプレートを、有償の教育コースの教材として広く受講生に使っていただくというありがたいサービスを開催されている方もいらっしゃいます。
なぜそれがありがたいかというと、EAの場合それを開発するMQLという言語がJAVAやRubyなどのように広く一般に知れ渡っているわけではありません。
ユーザーは自動売買に興味のある人に限定されるため、他のコンピュータ言語のような公開講座が圧倒的に少ないためこういった私塾のようなコースは大変貴重なのです。
その中でも、単にコーディングの仕方のみを教えるものではなく儲かるシステムの作り方まで触れられているコースはさらに貴重です。
カワセ係長の「EA開発塾」はその筆頭に挙がると思いますが、全国のEA開発講座にも生徒さんが儲かっている事例を公表しているサービスが複数あるので、宝さがし感覚でいろんなところを見てみるのもいいのではないでしょうか?
EAを作るプロセス
MQLを学び0からEAを作るプロセスは極端に言えば開発者の数だけやり方が違います。すべてをご紹介することはできませんが、ここでは数ある中からポピュラーなプロセスの一つをご紹介します。
手法の検討
裁量で行っている手法をEA向けに翻訳する
裁量トレーダーの手法には、裁量でしかやりようのないものだけでなく、もともとシステムトレードにしてもおかしくないくらいシステマチックな手法もあります。
そういった手法は自動売買と親和性が高く、無理なく入っていける世界です。
事実ロビンスカップで準優勝したKaibe氏が開発したEAは裁量の手法を取り入れて作ったそうです。
海外のEAフォーラムに参加し情報を得る
以前、私が良くお世話になっていたForexTSDというEAの開発者が集まったフォーラムがありましたが(現在はMQL5という公式サイトに一体化しています)、そこでは自作EAのソースコードを惜しげもなく公開するメンバーばかりが集まっていました。
彼らの考え方は、
「自らの力作を余すところなく公開(自慢)」し、→「多くの人に評価」してもらい→その「フィードバック」を受け→「より良いものに仕上げて」いこう
という今でいうフィードバックループの考え方が定着していました。
MQL5で提供されている有償無償のEAの数はほかに類を見ないほどになっており、EAを入手したい方にとってはどれを選んでいいのか迷ってしまうに違いありません。
開発者の立場でこのサイトを利用する場合、英語がわからないと多少苦労するかもしれません。日本人のメンバーが日本語でやり取りしている場所もありますが発言数が圧倒的に少ないです。
翻訳ツールなどを駆使してでも最大グループの英語圏か、No.2のロシア語圏の場所に行けば十分な情報が得られます。
なぜロシア語圏が英語圏に次いで多いのか?おそらくこれはMT4の開発元のメタクォーツ社がロシアの企業だからなのでしょう。
検証作業
優位性を予感する手法ができたらこれを検証していきます。この過程は裁量トレードでも変わらず重要なプロセスですね。
「ForexTester」や「裁量トレード練習君」などは日本でも有名な検証ソフトです。
ある相場では優位性が認められる手法でもそれを打ち消すような相場がたくさん出てきますので、それらを避けるためにどうするか、もしくは避けずに新たな手法で対応するのか。
考えることがたくさんあり一番楽しい時間かもしれません。
コーディング
検証作業の中で満足いく結果が出れば具体的にコーディングしていきます。
開発経験が積まれていくと副産物として部分的な機能を実現するコード群が増えてくるので、上記の作業を飛ばしていきなりコーディングから入ることも多くなります。
試行錯誤
この英訳は正しくは”Learn by Mistake”と言ったほうがいいのでしょうが、EA開発に限っては伝統的な”Trial and Error”と訳す方が個人的にはしっくりきます。
新しいEAを作り始めたばかりの時にコーディングが一通り終わって「よし、完璧だ」と思いながらコンパイルボタンを押した瞬間、MetaEditorに山のごとく指摘されるErrorの数々に圧倒されてはそれに立ち向かい、一つ一つ克服していくことを繰り返す、つらいプロセスであることがその理由です。
バックテストによる評価
無事コンパイルが完了しErrorの数が0と表示されたときのワクワクした気持ちは作った人にしかわからないかもしれませんね。
そのワクワクに一気に冷や水を浴びせかけるのが「最初のバックテスト」です。
出来上がったEAが開発前の検証通りの結果が出せるかどうかを見るためにMT4の機能としてバックテストができるストラテジーテスターを使います。
「あれだけ検証したんだから、さぞ儲かるシステムができたのでは」と心の中でつぶやきながらも目の前には右下がり一直線の資産曲線に直面します。
どこがいけないのか?とバックテストのビジュアルモードにして実際の相場で起こっている現象を実際の相場の数百倍の速さになる「早回し動画」で見ていくと、コーディングしていたときには全く想定していなかった動きの中で理不尽に利益が損なわれていく現象を通常数多く発見します。
全体の中で利益になる部分が如何に少なかったのかということに気づかされ、損失につながる動きをコツコツと消していく作業がこれから延々と続くことになります。
そういった作業を経ても右肩上がりのきれいな資産曲線を長期で描き続けられるEAというのはめったにお目にかかれず、途中まではものすごく調子がいいが最後には破綻してしまう結果になることも少なくありません。
しかしいくつもの試練を超えて以下のような資産曲線になるものが生まれてくることも事実です。数が少なくてもいいものが一つでもできれば報われた気持ちになるのが不思議ですね。
バックテストでようやく満足いく結果が得られると今度はリアルトレードでの検証となります。
俗にフォワードテストと言われていますが、理想的なフォワードテストの期間は3年程度と言われていますので、EAを量産し、余裕のあるEA開発企業などでは理想を追求し、myfxbook.comのようなトレード口座公開サイトで3年ほど寝かせて次の作品に着手するという工程を経る場合もあります。
多くの場合、EAには寿命がありますので3年間をフォワードテストに費やしたためにテスト期間中に寿命が尽きてしまったなんて冗談みたいなことも散見されます。
そういった悲劇にあいたくなかったり、早く開発資金を回収したかったりする開発者はバックテストと同様高速でフォワードテストに近い結果を得られるウォークフォワードテストを実施するか、それすら面倒だと言って思いっきりカーブフィッティングしたバックテストを公開して販売に専念するというユーザーにとっては歓迎できない開発者に二分されます。
2分もかからず出来上がるインスタントな方法から何か月もかかる大変な作業まで一気にご紹介してきましたが、ご自身に合う方法は見つかりましたでしょうか?
どこから始めるかは違っても「資産を増やす」というゴールは皆さん共通していると思います。
「機能するEA→資産を減らさないEA→資産を増やすEA」という道のりは短くありませんが、「継続は力なり」という考え方を信じ、積み上げられていく知識と経験を力に変え、多くの購入者を喜ばせるEAを作っていくことによって皆さんがより豊かな生活を送られるようになることを祈念しております。
コメント