【EA制作記】前置き ※必ず最初に読んでください※

【EA制作記】前置き EA
【EA制作記】前置き

この記事は、【EA制作記】の前置きです。

もし、【EA制作記】を活用される場合は、

必ずこの記事を読んでからにしてください。

 

今後、EA制作時に使用したコードだったり

参考にしたコードなどを記載しておくことで

今後の役に立つのでは…?という想いから、

関数等の使い方を掲載していきますが…

 

参考になればっていう思いもありつつ、

かなりヤバい懸念点もいっぱいあるので…

実際にソースコードとかを掲載する前に、

今回は、第1弾という事で前置き編です。

 

自分のMQL4言語との出会いだったり、

あまり関係ない話もしてますが(笑)

 

これからEAを作ってみたいと考えてる人に

少なからず役に立つ内容になっているので、

良かったら是非最後まで読んでください。

 

MQL4言語との出会い

インジケーターやEAを制作する為には、

プログラムを作成する必要があるわけで、

その為にまずはプログラミング言語である

MQL4言語の理解を深める必要があります。

(暗記とかは、全く必要ないですが。)

 

初心者の方は、右も左も分からない状態で

無理やり制作に挑む方が多かったりしますが、

結局は、コツコツと学ぶのが一番の近道です。

 

はい。経験談から語ってます(笑)

(ここから過去話に突入します。)

 

作りたいけど…無理だわ…

自分の場合は、中学生の時の授業で

プログラミングの基礎的な事は

色々と学んではいたんですけど…

 

本当に基礎的な事しか教わってなかったし

当時は、MT4を使ってトレードしてなくて

ん?MQLって何?っていうレベルでした。

 

で、ある時にインジケーターを購入して、

初めてMT4に触れる機会がやってきます。

そして、EAの存在を知るわけなんですが…

 

自動で取引してくれるとか凄い…!

自分で作れるなら、今すぐ作りたい!

 

って、短絡的に思ったわけですよ(笑)

(当時まだ高校生だったのもあるけど…)

 

でも、自分なりに調べても全然分からなくて、

MQL4言語は難しそう!無理だ!ってなって

ここで一旦、方向転換する事になります。

 

「OK。とりあえず、過去検証が大事だから

まずは、Excelで検証用のシート作ろう。」

 

Excelを極める!?

今思えば、非効率的だったんですけど、

Excelをひたすら独学でめっちゃ勉強して、

VBA(マクロ)を使いこなせる様に。

 

1分足データ(ファイル)を自動で繋げる

マクロを組んだ後は、指定した手法を入れて

自動的に売買を仮定してくれる物を作って、

めちゃくちゃ地味に過去検証してました。

 

Excelを使って過去検証してたわけですが、

皆さんはマネする必要ないですからね(笑)

 

この時点で自動とまではいかないまでも

半自動売買システムの構築に成功してたから

今度はこれを基にEAを作りたい!ってなって、

そこで初めてMQL4言語に挑戦しました。

 

最初は、インジケーターから

最初は、インジケーターの制作に挑みました。

普通に考えて、いきなりEAは厳しいです。

一応、作れない事はないと思いますが…

とりあえず、MQL4言語を理解する為にも

インジケーターから取り組む方が良いです。

 

分からない事が何か分からない状態ほど

危険な状況は無いという事を理解しましょう

 

インジケーターとEAではそれぞれ作り方が

微妙に異なる部分もあってややこしいですが、

インジケーターの方が難易度は低いですし

まずは、インジケーターを作ってください。

 

タイマー表示付きサインツール

さて、話を戻して「過去話」の続きですが…

当時は、バイナリーオプションが流行ってて、

その為の「タイマー表示付きサインツール」を

ネットで調べながら制作したのが処女作です。

 

プログラミングの知識自体はあったけど、

最初は、めちゃくちゃ苦戦しました(苦笑)

そもそも初めて作るっていう状態だから

タイマー付けるのも一苦労っていうね…

 

とにかく、調べて調べて調べまくって、

知識の無さを強引に補充したイメージ。

 

それでも、なんとか自力で制作した結果、

初めて思い通りに動くツールを作た時は

本当に心から感動したのを覚えてます。

 

もし、もう1回同じ物を作れって言われたら

多分、普通に作れるとは思いますけど…

 

通常であれば、同じ物を制作する事って

まず無いって考えた方が良いです。

結局は、基本的に何かを制作する度に

トライ&エラーの連続だったりします(汗)

(それが楽しかったりするんですが…)

 

インジケーターの次は…?

そんなこんなでバイナリーオプション用の

独自サインツールを作ってしばらく経って…

 

「そろそろ、EA作ろうかな~?」

 

っていう気持ちになったわけですが、

巨大な壁(問題)にぶつかりました…

 

それは、EA制作の難易度の高さです。

 

インジケーターを作ったのは良いものの

これは、オープンソースコードを基に

ある程度、既存の型があったんですよね。

雛型的な物がネット上に転がってるので

実は、見よう見まねでもなんとかなります。

(というか、自分はこれで作れました。)

 

色んなタイプのインジケーターがあるから

もちろん、一概には言えないんですけど、

基本は、インジケーターの方が簡単です。

 

例えば、簡単にMAとかRSIだったりの

計算方式を独自の数値に変更したりとかして

条件に基づいて矢印(アロー)出せば、

とりあえず、作れちゃったりするわけです。

 

それに比べてEAはソースコードも少ないし、

そもそもの知識不足っていう問題もあって

当時は、めちゃくちゃ落胆しました。

 

EAは別次元の難易度

基本的な言語は、MQL4言語なので、

EAもインジケーターも同じわけですが

明らかに難易度のレベルが違います。

 

EAもソースコードは一応公開されてますし、

簡単な物であれば、普通に自力で作れます。

(白状しますが、実際に作りました…)

でも、絶対にやめた方が良いです。

 

理由は単純で、エラーを修正できないから。

 

そもそもの話、プログラミング自体が

エラーとの闘いと言っても良いです。

 

「なんか思ってた通りに動かない。」

 

なんて事は、日常茶飯事というか…

むしろ、当たり前。それを直すのが仕事。

少なくとも自分は、これぐらいの感覚です。

 

どういう理屈でどういう挙動するのかを

分からない状態でEAを制作するのは、

めちゃくちゃ無謀なので止めましょう。

エラーがエラーを生んで詰みます(笑)

 

最初に作ったEAは…?

と、ちょっと厳しい話が続きましたが

自分が人生で一番最初に作ったEAは、

Excel時代に作った半自動売買システムを

なんとかEAに落とし込んだ物でした。

 

エントリーとかエグジットの条件は、

ここでは伏せさせて頂きますけど…

凄いシンプルな手法って事もあって、

制作難易度が低かったんですよね。

 

ローソク足のパターンとSMAを使った

めちゃくちゃ単純な組み合わせで

構築された手法だったという点と…

 

決済(指値・逆指値)の設定なども

元々、pipsでの固定じゃなかったので

実は、比較的簡単に構築出来ました。

※シンプルな手法であったとしても
 いきなり、EAを作るのはキツイので、
 少しずつ学んでから制作しましょう。

 

手法をコード化する事に慣れる

どんなプログラム言語であったとしても

基本的には、こちらが命令した通りに

動くようにできているはずなんですが…

まぁ、なかなか動いてくれません(笑)

 

「こう動いて欲しい」

「こう処理して欲しい」

 

って、人間側が頭で考えてる内容を

如何にコードに落とし込むかが重要で、

これが出来ないとコンピューター側は

ちゃんと処理が出来ないわけです。

 

手法を文章化する

一番簡単な移動平均線(MA)のクロスで

エントリーする様な手法であっても、

「ゴールデンクロスしたら買い」

と人に口で説明するのは簡単だけど、

コンピューターには、伝わらないです。

 

ゴールデンクロスした状態とは何かを

具体的に数値化する必要があります。

その為に、まずは文章化していきます。

 

「短期MAが長期MAの上にあったら買い」

これだとクロスの判定にはならないので、

1つ前のMAの数値が必要になってきます。

 

「1つ前の短期MAが1つ前の長期MAより小さく、

現在の短期MAが長期MAより大きくなったら買い」

ここまで文章に落とし込んでから、

数値化していきます。(今回は、割愛。)

 

手法の文章化は、思っているより大変。

というか、慣れが必要な作業になるので

練習しておいて損はないと思います。

 

ちなみに、自分の場合は問題なかったです。

なんせ、こちとらExcel育ちなので(笑)

手法自体が、計算式の塊だったんですよね。

 

ちゃんと移動平均線の計算式も組み込んで

ローソク足の計算・条件を数値化する事を

「手法のコード化」なんて呼んでました。

 

EA作れる ≠ 勝てる

ここで、少し余談的な話になりますが…

 

「ずっと勝ち続けるEAは存在しない。」

 

と言われています。はい。事実です。

EA制作代行を始めるようになる前から

自分用のEAを色々と制作してきましたが…

 

バックテストが右肩上がりのEAでも

運用し始めた途端に最大ドローダウンを

更新したり、急に機能しなくなったり。

 

これ、マジでEA制作あるあるです。

 

エッジ(優位性)が無くなるパターンや

そもそも、スプレッド負けしてしまったり。

バックテストとフォワードテストの差は、

なかなか埋める事が難しかったりします。

(限りなく差を無くす方法はありますが)

 

ショックな話ついでに話しておくと…

 

そもそも右肩上がりのEAを作る事自体、

なかなか骨の折れる作業だったりします。

結局、何が言いたいのかって言うと…

 

自分が勝てる!と思った手法であっても

EA化してバックテストを確認した結果、

全然勝てない手法だったっていうパターン。

 

めちゃくちゃ多いです(笑)

 

色々あってEA制作者に

またしても脱線したので話を戻しますが

実は、初めてのEAを制作した後に、

このEAが無事に破綻したんですよね。

(こればっかりは仕方のない事です。)

 

そこから自分なりに色んなEAを作るも

なかなか右肩上がりのEAを作れなくて、

作れてもあまり成績が良くなかったりで

半年間ほど、ほぼ毎日検証してました。

 

そんな時に、とあるEA塾に出会います。

※勧誘とかしないので、ご安心ください。

 

塾に入るのも選択肢の1つ

自分が入塾したのはかなり有名な方が講師で

ここがスパルタというか、厳しい塾で…

かなり集中して、めちゃくちゃ勉強しました。

その甲斐もあって勝てるEAの制作に成功。

 

もちろん、勝てる手法とかEAの内容を

普通に教えてくれるわけではないので、

とにかく検証を繰り返してましたが(笑)

イメージ的には、効率が上がった感じです。

 

そこから自分用のEAを色々と作って…

実際に運用したり、無料で提供したりして、

人に提供出来るEAが作れる様になったので

EAの制作代行の仕事を始めました。

 

EAの制作依頼は、こちら↓からどうぞ。

eaboxer.ogre@gmail.com

 

基礎知識は、先輩方に任せます。

関数等の基礎的な解説は先輩方がHPなどで

かなり丁寧に説明してくれているので…

そちらを参照して貰えばと思います。

※自分も未だに参照してます。

 

あくまでもメモ代わり

なので、基本的に【EA制作記】では、

EA制作代行の中で応用した内容とかを

あくまでも、メモ代わりに掲載します。

 

結局、EAの作り方って自由度高いですし

基本的な流れは決まっているとしても

意外と皆さん作り方が違うんですよね。

 

結構、独特な処理をする人もいますし、

逆にそういう物が勉強になったりします。

 

ここまで読んで頂いていれば分かる通り、

自分はMQL4言語を最初に独学で学んで

その後、とある塾に入塾したわけですが…

 

基本的には、独学の範囲を出ませんし

掲載しているソースコードに関しても、

あくまでも参考程度にしてください。

 

とは言え、自分の掲載しているコードが

皆さんのお役に立てれば幸いです。

 

それでは、この辺で前置きを終わります。

最後までお読み頂き、ありがとうございました。

コメント

タイトルとURLをコピーしました