この記事ではオリジナルのインジケーター・EAを作ってみたい!
けど何から勉強したらいいかわからない!
という方のためにこの記事を書きました。
MQL入門者向けにプログラミングの基本、サインツールやEAの作り方、さらに応用でいろんな機能を追加する方法などについて詳しく書きました。
「プログラミングなんて自分には無理だ!」
なんて思うかもしれませんが、実は簡単です。
この記事にある動画や内容をすべてマスターできれば、一人でインジケーター・EAの開発、さらには販売などもできるレベルまで覚えることができちゃいますのでぜひ最後までご覧ください。
この記事の目次
MQL4(MT4)プログラミングとは?
MQL4言語(Meta Quotes Language 4)とは、MT4で使用されるプログラム言語のことをいいます。
EAやインジケーターは、MQL4言語で書かれています。
プログラミングの際はメタエディターというソフトを使い、C言語がベースとなっています。
インジケーターやEAを作成することができるようになれば、オリジナルのサインツールや自動売買の開発ができるようになります。
さらにいろいろな手法のバックテストをとることが可能です。
下ではMQL4プログラミング初心者の方のために、覚えるべき項目をまとめましたのでこのページをブックマークをして進めていきましょう!
MQL4(MT4)プログラミングの入門編
MQL4プログラミングを学ぶにあたって、まずは基本的なことをマスターしましょう。
基本がきちんと理解できていれば、インジケーター・EAを作成する際スムーズです。
YOUTUBEでもMQLプログラミングについて発信中です!
⇩⇩
MQLプログラミングを覚えるとできること、メリットを知ろう
MQL4プログラミングを覚えることでインジケーター・EAを作成することができるようになります。
プログラミングができないと他人が開発したツールを購入しなければなりませんが、自分で作ることができればバックテストも検証も自由自在にできるようになります。
インジケーターの基本構造を知ろう
インジケーターは大きく見ると4つの内容を書いて作られています。
1.プロパティ
2.OnInit
3.OnCalculate
4.OnDeinit
この4つの中身を変えることでインジケーターを作ることができますので必ず理解しておいてください。
関数
関数とはMQL標準に組み込まれている公式のことをいいます。
例えば移動平均線やRSIの数値を呼び出したり、アラートを出したり、時間を取得したりできます。
全て覚えておく必要はありませんが、関数の使い方について理解しておきましょう。
変数・パラメーター設定について
次に変数についてです。
変数とは値につける名札のようなものです。
何度も使う数値や計算式は変数に名前を付けておくことで、後で呼び出すときにわかりやすくしておきます。
また変数の前にexternを付けておくことでパラメーター設定をすることができるため覚えておきましょう。
if・for文
MQL4プログラミングではif・forという構文があります。
ifは「もし~ならば~」
forは「繰り返し処理」
なのですが、かなりよく出てくる構文なので覚えておきましょう。
インジケーター・EAの新規作成方法
メタエディターを使ったインジケーターの新規作成方法をご紹介します。
メタエディターを開いて「何から始めればいいの?」とならないようにこちらもチェックしておきましょう。
MQL初心者は何から勉強すべき?
MQL言語を勉強したいが何から勉強すべき?と悩んでいる方はこちらをご覧ください。
MQL4(MT4)プログラミング実践編
基本が理解できたら、次に実践編です。
サインツールとEAを作ってみましょう。
インジケーター編
まずはインジケーターを作ってみましょう。
インジケーターバッファーについて
チャート上にラインやサインなどを表示させるときは、インジケーターバッファーというのを使います。
インジケーターを作成する際は必ず知っておくべき知識なので知っておきましょう。
サインツールを作ってみよう
上の動画ではRSIがダイバージェンスになったときにサインを出すというインジケーターをプログラムしています。
RSIなどの必要な数値を呼び出して、サインを出す条件文の書き方についてマスターしましょう。
RSIが指定数値以上でサインを出すインジケーターを作ってみよう!
下の動画ではRSIが70以上で下矢印(⇩)30以下で(⇧)を出すインジケーターのコードを一番上から解説しています。
一連の流れを知りたい方はご覧ください。
EA編
次はEA(自動売買)を作ってみましょう。
注文・決済をすることができるオーダー関数をマスター
EAを作成するときはオーダー関数を使います。
- 新規注文をしたい場合はOrderSend
- 注文をクローズしたい場合はOrderClose
- 損益を取得したい場合はOrderProfit
- オーダーを選択したい場合はOrderSelect
などのオーダー関数をまずはマスターしましょう。
GMMAを使って売買させるEAを作ってみよう
次にGMMAを使って実際に売買させるEAを作ってみましょう。
売買させる条件を決めて、オーダーするまでの流れを解説しています。
EAを1から作るまでの流れ
EAを作りたい!けど何からしたらわからないという方は、下記の動画で1から作成するまでの流れをご紹介しているので確認ください。
MQL4(MT4)プログラミング応用編
簡単なEAやインジケーターが作れるようになったら応用編です。
コンパイルエラーの解決方法
プログラミングにエラーはつきものです。
よくあるコンパイルエラーをまとめましたので、これを見てエラーが出ても冷静に対応できるようになりましょう。
秒数タイマーを作ってみよう!
サインツールだけでなく秒数タイマーなどの便利ツールを作ることも可能です。
オブジェクトの基本と現在の時間の取得方法をマスターしましょう。
日足高値安値にラインを表示させてみよう!
日足高安にラインを低くインジケーターの作り方です。
水平線の引き方はこちらの動画を見れば学べます。
複数時間足のRSIを表示させてみよう!
チャート分析は単一時間足ではなく複数時間足で行うべきです。
MTF分析をインジケーター化するにはポイントがありますので覚えておきましょう。
外部インジケーターの呼び出し方(iCustom関数)
外部インジケーターの呼び出したサインツールについて解説しています。
これを使えば購入したインジケーターをカスタマイズしたり自動売買化することも可能です。
バイナリーオプション向けサインツールの勝率表示をしてみよう
バイナリーオプション向けの勝率表示のコードについて解説しています。
バイナリーオプションで稼ぎまくりたい方は見てください。
ボタンクリックでRSIをオンオフするツール
ボタンクリックでRSIを表示非表示するコードです。
いろんなことに応用できるため覚えておくと非常に便利です。
よくあるエラーの解決方法
エラーが出て解決できなくて困ったなんてことはありませんか?
下記の動画ではよくあるエラーの解決方法について解説しています。
LINE登録でプログラミング講座を無料受講!
3.水平線にタッチした時に自動で知らせてくれるインジケーター
4.RSI、ストキャスティクス、CCIをミックスした逆張りサインインジケーター(勝率表示機能付き)
5.ローソク足が短期EMAに対して浮遊した時サインが出るインジケーター(勝率表示・背景色変更機能付き)