1,000人限定!!企画に参加してEAをGetする公式ラインに登録して
プレゼントをもらう

EAやカスタムインジケーターを作るための専用のプログラミング言語『MQL言語』についてわかりやすく説明してみた

プログラミングの基本的な動きや知識がわかった上で、MQL言語について学んでいきましょう。

MQL言語とは

MQL言語はメタクォーツ言語で、

プログラミングトレーディングストラテジーのための組み込み言語となっています。

このMQL言語は、メタクォーツソフトウェア株式会社によって開発されました。

MQL言語で開発できるもの

MQL言語入門 カスタムインジケーター EA(エキスパートアドバイザー) スクリプト

MQL言語を活用して開発できるプログラムは大きく分けて3つになります。

  • カスタムインジケーター
  • EA (Expert Advisor)
  • スクリプト

その中でもカスタムインジケーターとEA (エキスパートアドバイザー)が、

非常に多く開発されているプログラムです。

【MQL言語入門】MQLプログラミングで開発できる3つのシステムについてまとめてみた
MQL言語で開発できること MQL言語で開発できることは大きく分けて以下の3つになります。 カスタムインジケーター EA(エキスパートアドバイザー) スクリプト その中でもカスタムインジケーターとEA(エキスパ...

カスタムインジケーター

カスタムインジケーターはチャート上に様々な情報を表示するプログラムになります。

MetaTrader(メタトレーダー)には、一般的なインジケーターも標準搭載されていますが、

MQL言語を活用することで、標準搭載されているインジケーターの機能を拡張したり、

新しいオリジナルなインジケーターを開発することも可能になります。

チャートへの表示に特化しているので売買を行うことはできないです。

EA (エキスパートアドバイザー)

EA (エキスパートアドバイザー)は指定された条件に従い自動的に売買を行うプログラムです。

売買の条件は自由にプログラムでカスタマイズ可能です。

また、カスタムインジケーターを売買条件として使用することも可能です。

ただし、売買を目的にしているプログラムなので、

カスタムインジケーターほどの自由度の高い多彩な表示を行うことができないです。

スクリプト(Script)

スクリプトは、チャートに設定した際に一回だけ処理を行うプログラムです。

カスタムインジケーターやEA (エキスパートアドバイザー)などは新しい価格を受信するたびに

継続して動作するプログラムですが、スクリプトは継続して動作を行うことはなく、

設定された際に一回限り動作する仕組みになっています。

スクリプトは、裁量トレードの補助をするような機能で活用されます。

MQL言語のメリット・デメリット

MQL言語のメリット・デメリットについてご紹介します。

メリット
  • 自分で思いつくことは何でも実現可能
  • 自分がプログラムの中身を全て理解しているので安心
  • プログラムの知識が上がる
  • 市販で売られているEAの中身が理解できる
デメリット
  • 勝てるシステムを作るのが難しい
  • 作成に時間がかかる
  • プログラムの不具合による損失リスクもある

メリット1:自分で自由で思いつくことなら何でも実現できる

メリットの1つ目は、自分で自由で思いつくことなら何でも実現することが可能です。

どんな手法やロジックを使ってEAを作るのかなどを自分の頭で考えて作成することができます。

MQL言語をマスターできれば、FXやバイナリーオプションなどで利用する

カスタムインジケーターやEA(エキスパートアドバイザー)を作成できるようになります。

メリット2:自分がプログラムの中身を全て理解しているので安心

メリットの2つ目は、自分がプログラムの中身を全て理解しているので安心できるということです。

通常プログラムのソースコードを見てもどんな動きをするのかは開発者自身しかわかりませんが、

自分でMQL言語でプログラムを作っていけば、どのように動くのか理解することが可能です。

メリット3:プログラムの知識が上がる

メリットの3つ目は、プログラムの知識が上がるということです。

MQL言語をマスターすれば、プログラミングが上達するので他の言語でもその知識を活用することが可能です。

メリット4:市販で売られているEAの中身が理解できる

自作EAのメリットの4つ目は、市販で売られているEAの中身が理解できるということです。

自分で一からEAを作っていれば、

どのように動いているのかなどをある程度理解できるようになるので、

市販のEAのロジックも感覚的に理解できてしまいます。

デメリット1:勝てるシステムを作るのが難しい

デメリットの1つ目は、勝てるシステムを作るのは非常に難しいと言うことです。

もちろんMQL言語を学ぶ主な目的は勝ちたいと思っている人がほとんどですが、

勝てるシステムを作るためには非常に難易度が高く、結局自分でできないから諦めてしまう人がほとんどです。

デメリット2:作成に時間がかかる

デメリットの2つ目は、どうしても作成に時間がかかるということです。

どうしても自分で一から作ろうとなると非常に時間が必要になるので根気のいる作業になります。

デメリット3:プログラムの不具合による損失リスクもある

デメリットの3つ目は、プログラムの不具合による損失が出ることもあるということです。

やはりプログラミングを始めたばかりだとどうしても不具合が発生しがちなので、

実際に稼働してみて使ってみたら暴走モード突入してお金が吹っ飛んだということもあります。

MQL4とMQL5の違い

MQL4とMQL5の違いについて説明します。

MQL4
  • 古い
  • MT4に対応
  • C言語ベース
  • 日本語解説が多い
  • コードが短い
  • バックテストや最適化が遅い
  • バッファの最大8個
MQL5
  • 最新版
  • MT5に対応
  • C++言語ベース
  • 日本語解説が少ない
  • MQL4よりコードが長くなる
  • バックテストや最適化が早い
  • バッファの最大500個

MQL5はMQL4の進化版ですし世界の流れはMQL5です。

MQL5ではC++言語を使用しており、MQL4で使用されているC言語の拡張版です。

そしてバッファが8個しか使えないという成約がMQL4にはあります。

ただしこれは、配列データをシフトさせる動きを記載しておけば良いので、

工夫すれば問題ありません。

これだけ見るとMQL5の方が良いのではないか?と思う人もいると思いますが、

現状、日本ではMQL5の解説が少なくMQL4が主体です。

また、MQL5だとソースコードがMQL4よりも長くなることがあるので、

プログラミング初心者やMQL言語を触ったことがない人は、

まずはMQL4で基礎を学んだ方が良いと思います。

ちなみにMQL4で書いたプログラムのソースコードはMQL5への変換が可能です。

【MQL言語入門】MQL4とMQL5の違いや移植方法についてまとめてみた
MQL4とMQL5 MQL言語にはMQL4とMQL5の2つのタイプが存在しています。 MQL4:MT4に対応している MQL5:MT5に対応している MQL4とMQL5はそれぞれ似ていますが厳密には互換性がありません...

mq4ファイルとex4ファイル

mq4ファイルとex4ファイルの違いはシンプルに中のソースコートが見れるかどうかの違いになります。

mq4ファイル
テキストエディタで開くことができるファイル。
ex4ファイル
バイナリーデータで、中のインジケーターのプログラムを見ることができないファイル。

ですので、基本的に販売などする時はex4ファイルで渡すことが大切です。

もし、ソースコードを共有しているのであればmq4ファイルを使いましょう。

MQL言語のエディタ

エディタとはデータの作成や編集を行うためのソフトウェアになります。

MQL言語の開発には通常、MT4に標準搭載されているMetaEditor(メタエディタ)という

エディタが用いられる事が多いです。

【MQL言語入門】MT4に標準搭載されている『メタエディタ(MetaEditor)』についてわかりやすく説明してみた
メタエディタ(MetaEditor) メタエディタ(MetaEditor)とはMT4標準搭載されているエディタになります。 メタエディタ(MetaEditor)を活用することで、 カスタムインジケーター EA ...

MetaEditor(メタエディタ)以外で開発したいという方は、

Visual Studio Code(VSCode)や

【MQL言語入門】Visual Studio Code(VSCode)でMQLプログラミングの開発環境を設定する方法を徹底解説してみた
Visual Studio Code(VSCode)とは Visual Studio Code(VSCode)はMicrosoftが開発している Windows OS Linux OS Mac OS に対応して...

Sublime Text 3で開発するのも良いです。

【MQL言語入門】Sublime Text 3でMQLプログラミングの開発環境を設定する方法を徹底解説してみた
 Sublime Text 3とは Sublime Text 3とはテキストエディタになります。 テキストエディタとは、文字だけで構成されたファイルを作成、編集、保存ができるソフトウェアのことです。 Sublime Textの特徴...

MQLプログラミングの開発環境

MQLプログラミングの開発環境について説明します。

【MQL言語入門】MQLプログラミングをする上での開発環境についてわかりやすく説明してみた
MQLプログラミングをする上で必要なもの MQLプログラミングをする上で必要なものですが、4つあれば始めることができます。 インターネット環境 PC MetaTrader4 エディタ では、それぞ...

MQL言語の勉強方法

MQL言語の勉強方法について説明します。

【MQL言語入門】爆速で成長するMQLプログラミング初心者にオススメの勉強方法についてまとめてみた
MQLプログラミング初心者は勉強の仕方がわからない MQLプログラミング初心者は勉強の仕方がわからない人も多いです。 私ところに来る質問で一番多いのが、 プログラミング初心者は何から勉強を始めたらよいですか?という質問です。 ...

MQL言語のオススメの本

MQL言語を学ぶためにオススメの本は以下の記事を参照してください。

【MQL言語入門】MQLプログラミングをゼロから本気で学ぶためにオススメの本6選
MQLプログラミングをゼロから本気で学ぶためにオススメの本6選 MQL言語を学ぼとしてもどの本を読んだらいいか初心者にはわからないですよね。 今回は、MQLプログラミングをゼロから本気で学ぶためにオススメの本6選をご紹介します。 ...

MQL4プログラムで知っておきたい知識

MQL4プログラムで知っておきたい知識について説明します。

プロパティの定義

プロパティとは、MQLの設定に関する定義でソースコードの先頭に記述します。

プロパティは様々な種類があり、作成するプログラムによっては、定義が必要なプロパティもあります。

【MQL言語入門】様々な情報を表示することが可能な『プロパティ(#property)』について徹底解説してみた
プロパティ プロパティとはMQL4プログラムの設定に関する定義で、通常はソースコードの先頭に記述します。 #propertyはプリプロセッサ指令の1つであり、コンパイル前にプリプロセッサによって処理されます。 プロパティでEA...

パラメーターの定義

パラメーターはMQLプログラムを使用するユーザーが後から自由にカスタマイズ可能な項目になります。

inputと記載している変数はパラメーター扱いになります。

プログラムをチャートに設定した際に表示される

ウィンドウのパラメーター入力タブで項目の設定内容を変更することが可能です。

【MQL言語入門】利用者が自由に設定や変更するための『パラメーター』についてわかりやすく説明してみた
パラメーター MT4を利用する際にインジケーターのパラメーターやEAなどのロット数やマジックナンバーなど、 利用者が自由に設定や変更したい数値があります。 これらの数値を変数として宣言することで外部パラメーターとして利用するこ...

イベントハンドラの定義

イベントハンドラとは、特定の条件を満たすことで呼ばれる関数で、

MQLプログラミングは主にイベントハイドラの関数内に記述することになります。

つまり、プログラムのコアの部分です。

プログラムの種類によっては必要なイベントハイドラの種類が異なるので、

作成する内容に合わせてソースコードを内に処理を記述しましょう。

【MQL言語入門】特定の条件を満たすことで呼ばれる『イベントハンドラ関数』について徹底解説してみた
イベントハンドラ イベントハンドラとは特定の条件を満たすことで呼ばれる関数のことです。 MQL4のプログラムは主にこのイベントハンドラの関数内に記述することになります。 プログラムの種類によって必要なイベントハンドラの種類が異...

コンパイル

MQL言語入門 コンパイル

コンパイルとは、プログラミング言語で書かれたソースコードを

コンピュータ上で実行可能な形式に変換することです。

簡単に言えばPCに分かりやすい形に翻訳する作業です。

【MQL言語入門】ソースコードをコンピューター上で実行可能な形式に翻訳する『コンパイル』について徹底解説してみた
コンパイル コンパイルとはプログラミング言語で書かれたソースコードを コンピューター上で実行可能な形式に変換することです。 コンパイルを行うソフトウェアをコンパイラと呼び、 変換されるプログラミング言語をコンパイ...

デバッグ

MQL言語入門 デバッグ

コンパイルが正しく成功すれば問題ないですが、不具合があるとエラーが表示されます。

そのエラーを取り除く作業をデバッグと言います。

【MQL言語入門】バグの原因を突きとめる『デバッグ』について徹底解説してみた
デバッグとは デバッグとはバグと呼ばれるプログラムや関数の間違いを発見して排除する作業です。 バグフィックスとも呼ばれることがあります。 デバッグ(debug)のbugは英語で欠陥を意味しており、直訳すると欠陥を取り除...

Point変数

PointとはMQLでの注文する際の最小単位になります。

トレードの世界ではPips扱います。

従来は通貨ペアは小数点以下2桁・4桁業者しかなかったのでPips表記で良かったのですが、

最近では、少数点以下3桁・5桁業者があるのでPoint変数を活用する必要があります。

【MQL言語入門】通貨の最小価格単位を表す変数『Point』についてわかりやすく説明してみた
Point MQL4で注文する際にPointを使います。 MQLにはPipsという概念が存在しません。ですのでMQLでは直接価格を指定したり、 Pointという値を活用します。 PointとPipsの違いについて Poin...

時刻関数

時刻関数は時間に関する関数になります。時間はインジケーターやEAなどで活用されることが多いです。

【MQL言語入門】日付と時間を扱う『時刻関数』についてわかりやすく説明してみた
時刻関数 今回は日付と時間を扱う時刻の関数系をご紹介したいと思います。 DayOfWeek() DayOfWeekは、現在の曜日の関数になります。 int DayOfWeek();//1:月曜日、2:火曜日....) Year()...

enum

enumは列挙型と呼ばれており、いくつかの定数をひとまとめにすることができる優れものです。

enumはタイムフレームなどでよく使用されるので、

MTF(マルチタイムフレーム)系のインジケーターやEAを作成する際に重宝されます。

【MQL言語入門】定数をひとまとめにすることができる『Enum(列挙型)』についてわかりやすく説明してみた
Enum(列挙型) Enum(列挙型)とは、複数の定数をひとつにまとめておくことができる型のことです。 定数をひとまとめにすることができる優れものです。 Enumで定義する定数のことを列挙子と呼びます。 Enumの特徴 E...

まとめ

今回は、MQL言語について詳しく紹介しました。

少し難しい内容もあったと思いますが振り返り何度も見直して理解してから次に進みましょう。

1,000人限定でFXの自動売買のEAを無料で配布中!!

FX-EA System Projectでは、

【1,000人限定で無料でFXの自動売買のEAを配布中】

です!!

・毎日チャートを見てるのに全く稼げなかった

・コンサルや塾に入ったけど全く稼げなかった

・裁量トレードは難しくて挫折した

・ツールやシステムを購入したが全く稼げなかった

・時間がなくて裁量トレードを行える時間がない

・自動で楽に稼ぎたい

という風に思っている方はこの企画はおすすめです。

フォワードテスト・バックテストを

しっかり行ったパフォーマンスの良いEAを提供中です!!

また、どんどん新しいEAも随時無料配布します!!

人数限定なので早いものがちです!!

もしFX-EA System Projectに興味があれば

是非参加してください。

\記事が役に立ったらシェアしてね/
FX-EA System Projectをフォローする
FX-EA System Project Creator
タイトルとURLをコピーしました