はじめまして、エイツと申します。
このサイトは、これからMQLを勉強していく初心者のために、実際にインジケーターを作成しながら理解していけるようなものを目指しています。
私はエンジニアをしていますが、投資に興味を持ちだしたときにバイナリーオプションというものを知り、そこでバックテストの重要性を知りました。
バックテストを取るためにはMQLプログラミングスキルの習得が必須と感じ、独学で学び始め気づいたらプログラミング言語の中でも一番MQLが得意に感じるようになりました。
現在は、オリジナルのインジケーターやシグナルを作り、バイナリーオプション業者であるハイローオーストラリアで最高月収約180万を達成できるほど成長しました。
その知識や経験を活かし、次のような人のためになればと思っています。
- プログラミングを何から学び始めたら良いかわからない
- 独学で勉強したい
- MT4チャート上にアローを表示させたい
- 自分のロジックをシグナル化したい
- バックテストを取りたい
- バイナリーオプションで勝てるようになりたい
MQLとは?
MQLとは、MetaQuotes Language(メタクォーツ ランゲージ)の略で、メタクォーツ社が提供するFX用のプラットフォームである「MetaTrader」の機能を拡張するためのプログラム言語です。
プラットフォームには2種類ありそれぞれにも言語があります。
MetaTrader 4 | MQL4 |
---|---|
MetaTrader 5 | MQL5 |
これらのことをMQLと呼びます。
MetaTraderについては「MT4」や「MT5」と略されて呼ばれることが多いです。
このサイトではMQL4を使って、実際にインジケーターを作成していきます。
バックテストとは?
バックテストとは過去チャートのデータを用いて、自分の手法の有効性を確認する手段です。
バックテストを取らなかった場合、そもそも自分のエントリーが勝てるエントリーなのか負けるエントリーなのかがわからないからです。
今までエントリーしていたポイントのバックテストを取ってみたら、勝率が低かったということも十分にあります。
バックテストを取ることで、自分のエントリーポイントが勝率何パーセントあるのかを把握することが出来るようになります。
そうすることで、これからエントリーしていく際の一つの根拠にしていくことが出来るようになります。
このサイトで作っていくものは、バックテストもできるようなインジケーターにします。
なぜ確定足ベース?
確定足とは、ローソク足の形が確定している足のことを言い、例えば現在の5分足は、0分から新しい足が形成され5分経つまでローソク足の形が変化しています。
5分経過した際にそのローソク足は確定し、次の新しいローソク足が形成されていきます。
確定前状態のリアルタイムベースのシグナルを作ることも可能ですが、実際にエントリーするのが難しいという問題があります。
またバックテストを取るのも確定足に比べて手間がかかります。
リアルタイムベースのロジックの方が有効な場合が多いですが、確定足ベースのロジックを作っておけば、リアルタイムベースのロジックに応用できますので、確定足ベースのシグナルを作っていきます。
確定足ベースのメリット・デメリット
確定足ベースを採用する理由は他にもあります。
ロジックをシグナル化した際に、ローソク足が確定する前に条件に達した場合でも、エントリーまでの残り秒数をカウントさせることが出来ます。
そうすることでエントリーの準備が出来るので、常にチャートを見ていなくても見逃すことが少なくなります。
また、確定足ベースのロジックということで、過去足に対して検証できるためMT4チャート上で過去足に対する勝敗が確認できるためバックテストの効果もあります。
逆にデメリットもありますが、それはリアルタイムベースのロジックであっても変わりません。
メリット・デメリットをまとめると以下の通りです。
メリット
- 確定前にアラートを出すことでエントリーの準備が出来る
- バックテストの役割も担っている
- リアルタイムベースのロジックエントリーに応用できる
デメリット
- エントリー直前でシグナルが消えることもある
- 確定足にこだわりすぎてリアルタイムロジックのエントリーを逃すことがある
どうやって勉強していくの?
MQLに限らずプログラミングにおいて初心者が勉強を始めようと思っても、何から始めたら良いのかわからない事が多いです。
私がMQLの勉強を始めた時もまさにその状態で、大変苦労した記憶があります。
少しずつ情報収集しながら当時は何をしてるのかもわかっていない状態で、見よう見まねでコードを書いて、しばらく経ってからそのコードの意味を理解したりとかなり遠回りしたと思います。
そういった経験があるので、どのようにして勉強を進めていけば一番効率よく理解できるようになるかを自分なりに気づけた部分があります。
バイナリーオプションで勝てるようになるためのインジケーターを作るという目的を持ちながら取り掛かがれるので、ゴールが明確になり勉強しやすいと考えました。
入門編・実践編・応用編を用意し、順番に勉強していくことでMQLが理解できるようになりシグナルも完成しているという状態を目指します。
入門編 | 実際にシグナルを作っていくためには、基本部分となるMQLについて理解しておく必要があります。 そういった点を勉強することが出来ます。 |
---|---|
実践編 | 実際にインジケーターを作成しながら勉強していきます。 目的を決めて作り上げていくので途中で課題も見えてきます。 |
応用編 | 初めから完璧なものを作ることは出来ません。 作成途中で新しい課題が見つかったり想定していなかったバグが見つかることも頻繁にあります。 そういった部分を改善しながら理解を深めていきます。 |
入門編
初心者がMQLの勉強を始める際の基本となる部分について説明します。
基本部分だからと言って、利用する頻度の少ないところを学んでも理解が追い付かなくなることもあるので、最低限必要な部分に限定して説明していきます。
他の部分は、利用する機会が出た時に初めて勉強すれば良いのです。
実践編
実践編からインジケーターを作成していきます。
例となるロジックを一つ決めて、その条件に該当する部分にアロー(矢印)をMT4チャート上に表示させるようにしたり、そのアローに対する勝敗結果がわかるように作成していきます。
実践編が終わったときには、そのロジックに対する過去足の勝敗が瞬時に確認できるようなインジケーターが完成します。
一度作ってしまえば、オリジナルのロジックに条件を書き換えれば良いだけなので、色々なロジックを試してバックテストできるようになります。
応用編
実践編では作っていく過程を大事にしながら解説しているので、その時点では気づけない(であろう)問題点も含まれています。
途中で問題点に気づいたときに、それらをどうやって改善していくのかを解説してきます。
他にも、そのインジケーターをシグナル化することで、実際のエントリーに使えるものを目指します。
- 現在足が確定足ベースに対応していない問題を改善する
- 時間足を変更した場合に、オブジェクトが残ってしまう問題を改善する
- シグナル化
- オリジナル関数
- 構造体
- クラスファイル