MT4のプログラミング言語MQL4とは?EAやインジケーター開発の基本や基礎用語をご紹介!

 

本日はMQL4プログラミングについて記事を書きました。

 

MQLプログラミングとはFXなどのツールで使われる言語なのですが、詳しく知らないという方も多いと思います。

 

プログラミングと聞くと

「難しそう・・・」

と思う方も多いかもしれませんが、基本的なことから1つ1つ覚えていけばそんなに難しいことではありません。

 

そのためまずは基本的なことを今回はまとめてお話していきます。

 

MQLプログラミングを覚えるメリットや、作成できるもの、基礎的な用語なども解説しておりますので最後までご覧ください。

 

MT4プログラミング(MQL4)とは?

 

MQL4プログラミングとは、MetaTrader4(MT4)上で動作するツールを作成する際に必要なプログラミング言語になります。

 

簡単に言うと、MT4上で動くインジケーターや自動売買などはすべてMQL4プログラミングを使って作られています。

 

RSI,移動平均線,ストキャスティクスなどもMQL4を使って作られています。

 

いわゆる投資をする人専門のプログラミング言語ということになります。

 

MT4には標準でMeta Editorというツールを作成する用のエディターが標準でついており、簡単に始めることができます。

 

MQLプログラミングを覚えることにより、トレードの効率化や自動化、ツール開発の仕事でビジネスができたりと大きな可能性がある言語だと思っています。

 

MQLプログラミングを覚えて、トレードを効率化、自動化することができれば、あなたの収入がダイレクトに変わりますのでとても夢があります。

 

いいツールを開発してそれを自分で活用することで、あなたの収入が増える可能性は無限大です。

 

javaやpython,Rubyなどほかの言語と比べたらメジャーな言語ではないですが、ダイレクトにお金に結び付く言語だというのがMQL4の最大の特徴です。

 

またMQLを覚えることでバックテストもとることができます。

 

あなたも取引をする際にルールを作っていると思いますが、ルール通りに取引をしたら期待値はどれくらいあるのか知っていますか?

 

自分の取引ポイントの勝率や期待値を知っておくことはとても大事なことです。

 

しかし、手動でバックテストを取ろうとすると過去数年分のチャートを見ながら自分の目で見ていたらキリがありません。

 

確かに自分の目で過去検証をするメリットはたくさんあります。

 

プログラミングを覚えてバックテストを取れるようになれば、数分で数年分のバックテストができてしまうためとても効率化になります。

 

いろいろな設定値や利確損切幅などでどんな結果が出るのかなど、たくさんのデータをとることができます。

 

バックテストを取ることで今までの売買手法だと優位性が低く資金がマイナスになってしまうなんてこともありますし、新たな手法に気づく場合もあります。

 

自分の売買手法をプログラムしようとすると、細かいことまで考える必要があるため本当にたくさんの気づきがあります。

 

そのためMQLプログラミングを覚えることで、自分のトレードスキルもアップしますし、トレードの効率化、自動化によって収入を無限に増やす可能性を秘めているプログラミング言語になります。

 

MT4プログラミング(MQL4)で作成できるものについて

MQL4プログラミングで作成できるものについて解説してきましょう。

 

大きく作れるものは

●インジケーター
EA

の2つです。

 

もう少し深掘りしていきましょう。

 

インジケーター(Indicator)

 

インジケーターとは簡単に言うと、テクニカル分析ツールのことを言います。

 

例えば、移動平均線やボリンジャーバンド、サインツールや自動でラインを引くツール、その他の便利ツールなどはすべてインジケーターになります。

 

すべては作業効率化のためにあるものになります。

 

例えば、移動平均線を手動で出そうと思ったら過去○○本分の終値を足して期間で割る。

これを毎足ごとに行います。

 

これを自分で計算することもできますが、大変ですよね?

 

これらの作業をすべてプログラムが代わりにやってくれるのです。

 

これがインジケーターの役割になります。

 

インジケーターはすべてMQLプログラミングを覚えることで作成できます。

 

トレードの仕方はひとりひとり違うため、あなたのスタイルに合ったインジケーターを作れるようになればトレードがさらに楽になること間違いなしです。

 

【作成例①】

ボリンジャーバンドタッチの反発率を計測し、タッチしたらサイン+アラートで知らせてくれるインジケーター

 

 

【作成例②】

裁量補助用にボラ表示やLot計算をしてくれるインジケーター

 

 

このようにインジケーター開発ができたらあなたが「あったらいいな」と思うインジケーターを自分で開発できるようになるのです。

 

EA(Expert Advisor)

 

EAとはMT4上で動作する自動売買プログラムとなります。

 

EAとインジケーターの違いは、実際に売買をするかどうかになります。

 

インジケーターは売買をする処理ができないのに対してラインや矢印を表示できるのに対し、EAはラインを表示することはできませんが、売買をする処理ができるというのが特徴です。

 

自動売買といっても全自動で売買するものもあれば、ボタンなどを作成しボタンを押すことで決済できるなどの裁量補助ツールなども自動売買に入ります。

 

新規ポジションを持ったり、決済をしたり利確損切を変更したりと取引に関する処理を入れたい場合EAにする必要があります。

 

MQL4プログラミングを覚えて最終目標は、完全自動で利益を出し続ける自動売買を作ることを目標にする場合が多いですね。

 

 

こんな感じでバックテストで右肩上がりのEAの開発ができればできれば何にもしなくてもシステムが利益を出してくれるという理想的な投資ができます。

 

MT4プログラミング(MQL4)の基本的な用語について

 

MQLプログラミングを覚える際には基本的な用語を覚えましょう。

 

用語に関してはかなり多いのですべてを説明することはできないのですが、

「ここだけは押さえてほしい!」

ということをまとめましたのでぜひ覚えてください。

 

関数

 

関数とは、一定の処理をまとめたものになります。

 

例えばRSIの値を呼び出したい場合iRSI()という関数を利用したり、現在の時間を呼び出したい場合Time()という関数を使ったりと、MQL4では関数を使って様々な処理をしていくことになります。

 

そのため自分が作りたいインジケーターやツールを作る際、どんなツールを作りたいかをきちんと言語化して、関数を使って表していくという作業が非常に大事です。

 

MQL4プログラミングをする際に関数の理解は必須ですのでぜひ意味だけでも覚えておきましょう。

 

変数

 

変数とは数値などを名前を付けて保存をしておくことです。

 

例えばRSIの値を取得したい場合

iRSI(通貨ペア、時間軸、期間、適応価格、バーシフト)と取得できるのですが、いろいろな数値を呼び出すのに、この式を何度も書くとコードが長くなってしまいます。

 

そこで自分で文字列を作成しそこに数値を保存しておくといったイメージです。

 

例えばrsi1という変数を自分で作成し、

rsi1=iRSI();

と保存しておくことで、rsi1という文字の中にRSIの数値を入れておき後で使うことができます。

 

こうしておかないと、例えばRSIの期間を変えたい場合にiRSIという式を20回プログラムで使っていたとしたら、20個すべて設定値を変えなければいけません。

 

しかし、rsi1=iRSI();と保存しておけば、この1行だけ変更しておけばすべてのrsi1の設定値を変えることができるので非常に便利です。

 

変数もプログラミングをするうえで必須の用語になりますのでぜひ覚えておいてください。

 

if文

 

if文とはその名の通り「もし~ならば~」という表現をするのに使います。

 

例えば、RSIが70以上の時サインとしたければ、

if(RSI>=70){ サインを出す(関数を使う) }

といった感じで表します。

 

「もし~ならば~」という表現はとてもよく使いますので覚えておきましょう。

 

for文

 

for文とは、繰り返し処理のことを指します。

 

for(初期値;繰り返す条件;1回通った後にする処理)

と書くのが一般的です。

 

例えば、過去100本分のバーをチェックしていきたい時に

for(i=100;i>=0;i–){}

とすることでiが100から1ずつ減らしていって0以下になるまで繰り返し見ていくなどといったことができます。

 

for文もよく使うので覚えておきましょう

 

Start・OnCalculate

 

Start・OnCalculateは関数の一つで値動きが1回あるたびに{}中を1回通る関数になります。

 

この中にインジケーターのメイン処理を入れていくことになりますので覚えておきましょう。

 

OnInit・OnDeinit

 

OnInit・OnDeinitは関数の一種で

OnInitはインジケーターを挿入した時に一度通る関数

OnDeinitはインジケーターを削除した時に一度通る関数

になります。

 

こちらもツールを作成の際によく使う関数になります。

 

オーダー関数

 

オーダー関数とは、EAでのみ使うもので注文に関する処理をする関数になります。

 

新規注文や決済、注文変更、損益の取得など注文に関する処理はすべてオーダー関数というものを使います。

 

それぞれ種類がありますのでEA作成の際はオーダー関数を使って注文処理をすると覚えましょう。

 

バッファー

 

バッファーとは、インジケーターのみの機能でMT4上にラインや矢印などを表示するものになります。

 

これらはすべてOnInit関数内でSetIndexBuffer()という関数を使い設定をしてから表示をさせていきます。

 

インジケーターを作成する際には必須になりますね。

 

もっと覚えていただきたいことはたくさんありますが、上記の基本用語は必ず覚えておきましょう。

 

上記のことがある程度理解できていれば、インジケーターやEAは作成できます。

 

MT4プログラミング(MQL4)を学ぶ方法について

 

最後にMQL4プログラミングを学ぶ方法についてお話していきましょう。

 

結論から言いますと、私が運営している「キャンドルマツのYOUTUBE」を見てください。

 

 

動画でインジケーターやEAの作り方について解説しておりまして、実際にコードもすべてご紹介しております。

 

ですので動画を見てコードの意味を理解してパクっていただくだけでインジケーターが作れるようになります。

 

今まではMQLに関する情報が少なく本を読んだりして独学するしか方法はありませんでした。

 

しかし、もっとたくさんの投資家の人たちにMQLプログラミングを覚えてほしいという思いからYOUTUBEにてMQLプログラミング講座をすることにいたしました。

 

動画を見ればインジケーターやEAの作り方が分かりますし、プログラミング未経験者で作成したインジケーターの添削やサポートが必要な方に関しましては月額制のプログラミングスクールも運営しております。

 

MQLプログラミングを覚えることでトレードが有利になることは間違いないですので、まずはYOUTUBEを見て実際にインジケーターやEAを作成してみてください。

 

まとめ

 

MQL4プログラミングはメジャーな言語ではありませんが、ダイレクトにお金を生むことができる唯一のプログラミング言語だと思っています。

 

トレードの効率化、自動化ができるため、FXなど為替をやっている方全員におすすめできるプログラミング言語になりますので、ぜひ自分のオリジナルのツールを作成してみましょう。

 

MQL4は複雑な言語ではないため完全初心者の方でも1~3ヶ月程で基本的なインジケーターやEAは作成できるようになります。

 

もし完全プログラミング初心者の方でMQLを学んでみたいという方には、プログラミングスクールにて1からサポートいたしますのでぜひ下のページをご覧ください。

 

難しいイメージがあると思いますが、スクール内では

サンプルコードを見ながら講義を見る→実際に書いてみる→わからないことは質問するを繰り返すことで完全初心者の方でもプログラミングが覚えられるようになっています。

弊さいとが独自に開発した「FXオリジナルインジケーター」を無料でプレゼント!

インターネット上に存在しないインジケーター、他では高額な金額で販売されているようなインジケーターも無料で配布する期間限定のプレゼント企画!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUTこの記事をかいた人

初めまして、バカポンドです! FX TRADEでは、主にFXに関する情報を発信しており、投資に興味を持っている人、あるいは、既に投資を始めているユーザーのためになるコンテンツを作成しています。また、オリジナルで開発したインジケーターや自動売買ツールなども提供してますので、是非活用してみてください。どうぞよろしくお願い致します!