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

【MQL入門】初心者でもわかる!!MQL言語の実践知識についてまとめてみた

MQL 入門FXのEA自作

初心者でもわかる!!MQL言語の実践知識についてまとめてみました。

MQL言語の実践知識

MQL 入門

MQL言語の実践知識になります。

プログラミングをある程度理解した上でMQL言語を知るとそこまで難しく感じないと思います。

では見ていきましょう。

【MQL入門】初心者でもわかる!!MQL言語の基礎知識についてまとめてみた
初心者でもわかる!!MQL言語の基礎知識についてまとめてみました。

MT4とMT5どちらで開発するべきか

MQL 入門

MT4とMT5どちらで開発するべきかですが、まずはMT4とMT5の違いを見ましょう。

ツール名メリットデメリット
MT4利用している業者が多い
市販のプログラムを購入しやすい
検証速度が遅い
テストの精度が悪い
MT5検証速度が速い
テストの精度が良い
MT4からの移行が難しい
国内業者を利用できない

個人的にはMT5がオススメです。ただMT4でも問題ないので好きな方を選びましょう。

EAは4つの大枠で構成されている

MQL 入門

EAは「事前判定」,「Entry判定」,「Exit判定」,「注文」の4つの大枠で構成されています。

4つの大枠でどのような機能や条件でEAを作りたいかを考えていくことで、

プログラミングに落とし込みやすくなります。それぞれについてご紹介します。

・事前判定
・Entry判定
・Exit判定
・注文方式

事前判定

事前判定とは、プログラムを動かす際に一定条件を満たした場合のみ後続処理を実行します。

例えば、証拠金が一定以上の場合のみ動くというような条件を加えたりします。

Entry判定

Entry判定は、エントリーを行うための条件判定です。

ローソク足や各指標による判定だったり、曜日や時間帯などのフィルターを考えます。

Exit判定

Exit判定は、決済を行うための条件判定です。

ローソク足やテクニカルよる判定だったり、

固定pipsによる判定、トレーリングストップによる判定などを考えます。

注文方式

注文方式とは、「成行、指値、逆指値」などを指定します。

イベントごとに呼ばれる特殊関数

イベントごとに呼ばれる特殊関数についてご紹介します。

・OnInit():初期化処理関数
・OnDeinit():終了処理関数
・OnTick():メイン処理関数
・OnTimer():タイマー処理関数

・OnTester():テスト処理関数

OnInit()

OnInit()は初期化処理関数です。

プログラム実行時に一度だけ呼び出される関数になります。

OnDeinit()

OnDeinit()は終了処理関数です。

プログラムをチャートから削除したタイミングで一度だけ呼び出される関数になります。

OnTick()

OnTick()はメイン処理関数です。

価格が更新されるたび度に呼び出される関数です。

EAのエントリーやエグジットの条件などの各種命令の処理を記述します。

OnTimer()

OnTimer()はタイマー処理関数です。

一定時間経過ごとに呼び出される関数になります。

OnTester()

OnTester()はテスト処理関数です。

バックテストや最適化を行う場合に呼び出される関数になります。

テクニカル指標の取得方法

テクニカル指標の取得方法ですが、MQLコミュニティに使用できるテクニカル指標は載っています。

テクニカル指標一覧はこちら

今回はiMA(移動平均線)をベースに見てみましょう。

iMAという関数に必要な引数を渡せば移動平均線の値が取得できます。

ちなみにiMAの中身は以下のようになっています。

double iMA(

string symbol, // symbol

int timeframe, // timeframe

int ma_period, // MA averaging period

int ma_shift, // MA shift

int ma_method, // averaging method

int applied_price, // applied price

int shift // shift

);

これを例えば以下のように取得することができます。

double ma1 = iMA(NULL, 0, 13, 0, MODE_SMA, PRICE_CLOSE, 1);

iMAはどのような引数を渡すことで、どんな値が取得できるかについては以下の表にまとめました。

項目名説明
symbolシンボル名通貨ペア
NULLにするとプログラムが適用されている
チャートのシンボル名
timeframe時間枠5分足なら5、1時間足なら60、etc
0にするとプログラムが適用されているチャートのタイムフレーム
ma_period移動平均線の期間25期間, 100期間, etc
ma_shift移動平均線を基準から
ずらす期間
後ほど記載
ma_method移動平均線の計算方法単純移動平均線(SMA)
指数平滑移動平均線(EMA)
修正移動平均線(MMA)
加重移動平均線(WMA)
applied_price適用価格(どの価格を元に計算するか)終値, 始値, 高値, 安値, etc
shiftいくつ前の値を取得するか1本前, 2本前, etc

テクニカル指標の関数を使う上の注意点

MQL 入門

テクニカル指標の関数を使う上の注意点は主に3つです。

・引数と引数の間には「,(カンマ)」を入れること

・引数に変数を入れる場合は変数の型を同じにすること

・引数の順番を間違えないこと

関数に頻繁に出てくる引数

MQL 入門

関数に頻繁に出てくる引数についてご紹介したいと思います。

・string symbol:通貨ペア
・int timeframe:時間足
・int applied_price:インジケーターの数値
・int shift:インジケーターの時間をシフト

string symbol

string symbolは「通貨ペア」のことです。

大抵のインジケーターの関数はこれが1番最初にあります。

現在システムを動かしているチャートの通貨ペアの場合は「NULL」と入力しましょう。

int timeframe

int timeframeは、「時間足のこと」です。

大抵のインジケーターの関数は2番目にあります。

現在のシステムで動いている時間足で良い場合は「0」と入力しましょう。

基本的には0で良いです。

もし、個別に時間足を選択したい場合は、1分足であれば1を15分足なら15を入力します。

数字で入力する場合は、1時間足以上の場合も分で入力します。

一時間足なら60、日足なら1440になります。

int applied_price

int applied_priceは「インジケーターなどの時間足の

始値・高値・安値・終値などのどれを使って計算するかを設定する引数」です。

それぞれについては以下の表にまとめておきました。

内容説明
PRICE_CLOSE終値
PRICE_OPEN始値
PRICE_HIGH高値
PRICE_LOW安値
PRICE_MEDIAN(高値+安値)/2
PRICE_TYPICAL(高値+安値+終値)/3
PRICE_WEIGHTED(高値+安値+終値+始値)/4

int shift

int shiftは「インジケーターの時間をシフトする引数」です。

0であれば現在の値、1なら一つ前の足の値になります。

1時間足であれば、1と入力すれば1時間前の値になります。

.mq4ファイルと.ex4ファイルの違い

MQL 入門

.mq4と.ex4というファイルが2つあります。

それぞれの違いについてご紹介したいと思います。

mq4ファイル:人が読める形でプログラムの中身が書かれているファイル
ex4ファイル:コンピュータだけが読み取ることができるファイル

.mq4ファイル

.mq4とは「人が読める形でプログラムの中身が書かれているファイル」です。

自身が使う分には構わないと思いますが、

他の人に配布する際にプログラムの中身が見られたくない場合は渡してはいけないです。

.ex4ファイル

.ex4とは「人間は読むことができずコンピュータだけが読み取ることができるファイル」です。

プログラムは見られたくない場合は.ex4にしましょう。

また、.ex4だけでもバックテストやリアル口座での運用が可能になっています。

MQL言語のEA作成の流れ

MQL 入門

MQL言語でどのようにEAを作成するのかの大まかな流れについてご紹介したいと思います。

次回から実際にプログラミングを体験するので事前に流れを掴んでおいてください。

Step1:MetaTrader4をダウンロード
Step2:MetaEditor起動
Step3:プログラミング
Step4:コンパイル
Step5:バックテスト(パラメタ最適化)

Step1:MetaTrader4をダウンロード

MetaTrader4をダウンロードしましょう。

これがなければEAやインジケーター作成はできないです。

Step2:MetaEditor起動

MT4を起動した後にMetaEditorを開きましょう。

MetaEditorはMQLのプログラミングをする開発ツールになります。

Step3:プログラミング

実際にMQL言語を使ってプログラミングをします。

Step4:コンパイル

コンパイルとは、

「プログラムのソースコードをコンピューターが実行可能な機械語に翻訳する」ことです。

簡単に言えば、MQLは日本人で、PCはアメリカ人だったとしたら

コンパイルは、日本語を英語に要約してくれる翻訳さんです。

Step5:バックテスト(パラメタ最適化)

できたEAをバックテストします。

バックテストとは過去のチャートに対してEAの成績を評価するテストになります。

バックテストで良い結果が出ればある程度信頼できるEAだと言えます。

まとめ

今回の回で一応座学的なことは終了です。

次回からは実践的に手を動かしてプログラミングを体験してみましょう。

【MQL入門】初心者でもわかる!!MQL言語を活用してEAをプログラミングする方法についてまとめてみた
初心者でもわかる!! MQL言語を活用してEAをプログラミングする方法についてまとめてみました。
1,000人限定でFXの自動売買のEAを無料で配布中!!

FX-EA System Projectでは、

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

です!!

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

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

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

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

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

・自動で楽に稼ぎたい

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

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

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

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

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

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

是非参加してください。

FXのEA自作
masayaをフォローする
fx-ea-system-project

コメント

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