①早速EA作成に取り掛かる…前に前提条件のお話

さて、今回はMQL5という言語を用いてMT5というシステムで動くEA(自動売買ソフト)を一から作ってみたいと思います。

正直な所、自分自身の現状としてプログラムへの理解はそこまで深くありません
せいぜい四則計算をプログラムで計算できる、程度の知識しかないと思ってください。
そんな自分がMQL5という言語を学んで、いかにしてEAを作るのかということを備忘録的にまとめます。

メモ書きかつ備忘録的なものなので、読み辛いかもしれませんが「その辺はご愛嬌」ということで…

なぜEAを作るのか?

さて、EAを作る前に何で自分がEAを作ろうと思ったのかについて、少しお話をしておきます。

自分が投資の世界に足を踏み入れたのは2017年末のことです。

世はまさにビットコインバブルの真っただ中で、ニュースでは毎日のようにビットコインやそのほかの仮想通貨の値上がりが毎日のようにニュースで取りあげられ、『億り人』なんて言葉も聞くようになりました。

そんな中、自分が初めて買ったのはビットコインですが、これが2018年早々にとんでもない大暴落をします。
暴落の理由はTwitter【現:X】やGoogleなどが次々と暗号資産の広告掲載を禁止することを発表したためです。(気になる人は2018年 ビットコイン 暴落 とかで調べるとすぐに出てきます)

2018年初頭のビットコインチャート。230万円付近まで上がった後60万円程度まで落ちています

暴落に巻き込まれながらも細々と相場の中で生き残り、ビットコインFXにも手を出し始めたのが2019年

その後、縁あって仮想通貨関係の数千人規模のLINEオープンチャットで副管理人をやらせていただいたり、個人で月次50万円を達成したりと自分で言うのもなんですが、なかなかいろいろな経験をさせていただきました。

ここまで出来る限り相場には居残り続けましたが、サラリーマンを本職にしている自分が一つの体で出来ることには限界があります。

そこで、これまで培ってきたトレードスタイルを、自動化できればもっと安定して収益を出せるのではないか?という結論からEAを作ろうと決意した、という流れになった訳です。

さて、身の上話はこの辺にして、そろそろEA作りのための話をしていきましょう。

という訳でまずは前提条件

MQL5でEAを作るにあたって、まずは最低限これだけは知っておきたいです。

・EAとはなにか?
・MQL5とはなにか?

EAとはなにか?

EAというのは、正式名称をエキスパートアドバイザーと言ってFXなどにおいて自動売買を可能にするソフトウェアのことです。

FXには裁量売買と自動売買というスタイルが存在しています。
裁量売買というのは自分で売買を行うタイミングや注文数量を指定して行う方法です。
裁量売買の場合、EAは一切介入しません。

逆に自動売買は、売買のタイミングや注文数量を機械が判断してトレードをします。
この判断する機械というのがEAです。

じゃあ自動売買ってめっちゃ楽なんだなと思った方、半分正解で半分間違いです。
というのも、自動売買は確かに注文は自動でしてくれるので何もせず取引が出来ますが、そのためのロジックは自分で機械に命令する必要があります。

じゃあどのように命令をするの
ここで出てくるのがMQL5です。

MQL5とはなんぞや

MQL5というのは、プログラム言語の一種です。
あまり聞き馴染みのない言語ですが、ベースはC++という非常に汎用的な言語です。

MQL5とはMT5と呼ばれるトレーダー用のツールの中で、インジケーターを作成したりEAを作成したりするために必須の言語です。
逆に言うと、それしか使い道がありません。
ですので、こらから学ぶことが直接汎用的な技術になることはおそらくないですが、今後トレーダーとして生きていくため、我々のトレードという行為の選択肢を広げる手助けにはなります。

閑話休題:EAって絶対儲かるの?

EAのことを少し調べたことがある方なら、よくEAで儲けよう!とか、すごいパフォーマンスを出しているEAなんですよ、とその凄さを謳うEAを見かけたことがあるかと思います。
実際に自分もEAのことを調べている時に、よくそんなワードを目にしました。

これだけははっきり言えます、絶対に儲かるEAはこの世に存在しません。
もちろん長期的に見てお金が増えるEAは存在します。(そうでないと投資という行為に意味がなくなりますから)

ですが、1ヶ月で原資に対して絶対+100%儲かる!とか、そういう類のEAは存在しないことを覚えておいてください。
必ず儲かるEAというのは100%詐欺です、そんなものに高い費用を払うくらいなら、自分のトレードスタイルを確立するために相場にお金を溶かして、確立したスタイルをもとにEAを作り試行錯誤してください。

また、他人が作ったEAをそのまま使うことも、あまり推奨していません。
何故かと言うと、内部ロジックが分からないからです。
内部ロジックが分からないということは、『なぜそこで注文を出して決済をしているのか?』という根拠が分かりません。
しかも負けた時も、なぜ負けたのか?の考察が出来ず、ただ負けたという結果が残るだけです。

自分がなぜ負けたのかわからないということは、負けた結果から学習ができないということです。
学習ができないようなトレードでは、同じ局面で負け続けいたずらに資金を溶かすだけです。
そんなトレードでは短期的に儲けることは出来ても長期的に儲けるトレードは出来ないことは目に見えています。

少し話は逸れましたが、もしあなたがトレーダーとして成功したいと思っているなら、確実に儲かる方法は無いということと、他人の手法で勝負するということを避けるというのは覚えておいていただければいいかなと思います。

MQL5で出来ること

さて、前置きが少し長くなりましたが、ここからはMQL5で実際に何が出来るのか?という話をしていきます。

MQL5は先ほども言いましたがMT5というツール上でEAやインジケーターを作成するために必要なプログラム言語です。
このMQL5という言語ですが、世の中に出回っている情報が非常に少ないという致命的なデメリットが存在します。

よく似た言語にMQL4という言語があるのですが、このMQL4はMT4と呼ばれるMT5の1世代前に生まれたプラットフォーム上で動きます。
役割としては同じなのですが、MQL4とMQL5には互換性が無い上、MQL5が発表されて10年以上経つにもかかわらず、いまだにMQL4とMT4は第一線で活躍し続けています。

なぜこれほどまでに移行が進まないのか?
それはMQL5の分かりづらさにあると言えるでしょう。
先ほども言った通りMQL4とMQL5には互換性が無いのですが、質の悪いことにプログラム言語としての連続性も無く、全くの別物のような存在になっているのです。

「じゃあMQL5使う意味ないじゃん」という話ですが、自分の様な初心者にとってみてはプログラム言語そのものが良くわからないんだから、MQL5でもMQL4でも同じと言えます。
ちなみにMQL5の方が拡張性が高いので、今後ゼロからEAづくりを学ぶのであればMQL5を学ぶのが一番効率的です。

初めて学ぶプログラミングがMQL5って、大丈夫?

ここまでの話でMQL5にあまり汎用性が無いことは理解していただけたかと思います。
なにせMT5でしか動かないのだから、汎用性なんてあったもんじゃないですよね。

近年では授業にプログラミングの項目が組み込まれていますし、プログラミングに興味がある人も少なくないかと思います。
また自分と同じようにこれからプログラミングを学ぼうという人もいるかと思います。

そんな中で汎用性の無いMQL5の学習に時間を割いて無駄じゃない?というような声もあると思いますが、これに関しては自分ははっきりNOと言えます。

なぜならMQL5はC++をベースに作られている上、何を作るのかを明確にできているという特徴があるからです。
C++と言うとC言語ベースのプログラム言語ですが、CやC++というプログラム言語は汎用性も高く、世界的に広く使われています。
MQL5を会得してしまえば他のプログラム言語を学ぶための土台ができます
特にMQL5のベースであるC++やC言語を学ぶためには有効な手段です。

またMQL5にはEAを作るという明確な目的が存在しているので、ゴール設定が明確でモチベーションが保ちやすいというメリットもあります。

もちろん楽に習得できるものでもないですし、EAを作れることと儲かるEAを作れるかどうかは別問題なので、地道な努力と継続は必要になるかと思います。
とはいえ当たり前ですが簡単に稼げる方法なんて存在しないので、むしろ人生の新たな選択肢として、自分の視野を広げるという意味でMQL5を学習してEAを作ってみる、という選択肢があってもいいのではないかと自分は思います。(失敗しても死ぬわけじゃないですし)

ここまでで、MQL5を学ぶということを何となく理解いただけたのではないでしょうか。
自分も初心者の身ですが、皆さんと一緒にトレード人生を歩んでいければと思いますので、ぜひ一緒にEA作りを学んでいきましょう。

コメント

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