【保存版】MQL言語入門まとめ|EA・インジケーターの作り方

MQL言語まとめ

 

せっかくMT4(MetaTrader4)を使うのなら、あなたオリジナルのEA(Expert Advisor)やインジケーターを自作してみませんか。

 

この記事では、初心者向けに、MQL言語を使ったプログラミングについて解説します。

「プログラミングなんて自分にはとても無理だ」と思われるかもしれませんが、そんなことはありません。実は超簡単なんです。アラフィフのおっさんが言うんだから間違いありません。

なぜ超簡単なのかというと、ここで作るどのプログラムも、基本的に、すでに出来上がっているサンプルEAのソースコードの一部を書き換えるだけだからです。

ホントに超簡単ですので、ぜひ挑戦してみてください。

 

MQL言語とは

MQL言語(Meta Quotes Language)とは、MetaTrader4で使用されるプログラム言語です。

MQL言語のベースはC言語です。

MetaTrader4で使用されるEAやインジケーターは、このMQL言語で書かれています。

 

基礎編~プログラミングの基本~

まずは、プログラミングの基礎を理解しましょう。

ここの内容をきちんとインプットできれば、以降のアウトプットがスムーズにできます。

 

変数と配列

変数はデータを入れる箱のことで、配列は整列された複数の変数の箱のことです。

MQL言語入門|変数と配列を使いこなそう!
MQL言語入門として、変数と配列について解説します。変数や配列を使えば、複雑な計算式を何度も書く必要がなくなるので、プログラムを読みやすくし、処理も速まります。EAやインジケーターを思いどおりに自作するために、ぜひ使いこなせるようになってください。

 

if文とfor文

if文は条件分岐を処理する構文、for文はループ処理する構文です。

MQL言語入門|if文とfor文を使いこなそう!
MT4をこれから始めようとする方を対象に、MQL言語入門として、if文とfor文について解説します。if文とfor文は、思いどおりにEAやインジケーターを自作するために、ぜひ使いこなしたい構文です。難しそうに思うかもしれませんが、そんなことありません。

 

OrderSend()とOrderClose()

OrderSend関数は新規注文を行い、OrderClose関数は決済注文を行います。

どちらもMQL言語独自の関数であり、EA作りには必須の関数だと言えます。

MQL言語入門|OrderSend()とOrderClose()を使いこなそう!
OrderSend()は新規注文を行う関数です。OrderClose()は保有ポジションの決済注文を行う関数です。どちらもEA作りでは必ず使う関数です。あなたもこれらの関数を使いこなして、勝てるシステムトレーダーになりましょう。

 

よく使う用語だけに絞った手軽に見れるリファレンス

よく使う用語だけ集めました。

EAやインジケーターを自作するときに、きっと役立つと思います。

MQL言語入門|お手軽リファレンス
MQL言語入門用に、よく使う用語だけを集めて、手軽に見れるリファレンスを作りました。EAやインジケーターを自作するときに、きっと役立つと思います。コメントの記述方法、データ型(変数の宣言)、定義済み変数・配列、口座情報関数、取引関数、テクニカル指標、カスタム指標

 

実践編~EAやインジケーターの自作~

 

サンプルEAを使ってオリジナルEAを自作しよう

MT4のサンプルEAの一部をササっと書き換えて、MACDとスローストキャスティックスの2つのインジケーターで売買判断を行うオリジナルEAを作ります。

完成品をダウンロードできます。

MQL言語入門|オリジナルEAの超簡単な自作方法
オリジナルEAの超簡単な自作方法を解説します。Dr.田平のMACDとスローストキャスティックスを組み合わせた戦略をEA化します。完成品のダウンロードもできます。なぜ超簡単なのかというと、サンプルEAのソースコードの一部を書き換えるだけだからです。

 

サンプルインジケーターを使ってカスタムインジケーターを自作しよう

MT4のサンプルインジケーターの一部をササっと書き換えて、カスタムインジケーター「HiLoバンド」を作ります。

「HiLoバンド」とは、チャート上に、過去n日間の高値・安値のラインを描き、レジスタンスやサポートを確認したり、高値・安値のブレイクアウトを判断するテクニカル指標です。

完成品をダウンロードできます。

MQL言語入門|カスタムインジケーターの超簡単な自作方法
カスタムインジケーター「HiLoBand.mq4」の超簡単な自作方法を解説します。完成品のダウンロードもできます。MT4をこれから始めようとする初心者を対象にしています。なぜ超簡単なのかというと、既存のソースコードの一部を書き換えるだけだからです。

 

カスタムインジケーターをEA化してみよう

前回作ったカスタムインジケーター「HiLoバンド」を使って、ブレイクアウト戦略をEA化します。

ブレイクアウト戦略とは、過去一定期間の高値・安値を突破したことをシグナルとする有名な投資手法です。

完成品をダウンロードできます。

MQL言語入門|カスタムインジケーターをEA化する超簡単な方法|BO戦略
カスタムインジケーター「HiLoBand.mq4」を使って、ブレイクアウト戦略をEA化する方法を解説します。完成品のダウンロードもできます。いつもどおりの超簡単な自作方法です。この記事を通じて、カスタムインジケーターをEA化する方法を理解してください。。

 

応用編~さまざまな機能を追加~

 

自作EAにトレーリングストップを実装してみよう

トレーリングストップは、価格の動きにロスカットラインを追跡させていく投資手法です。

損失を抑えつつ、利益を伸ばせる有効な手仕舞い方法として人気があります。

MQL言語入門|自作EAに簡単に実装できるトレーリングストップ
MT4のサンプルEA「MACD Sample.mq4」を使ってトレーリングストップのソースコードを解説します。仕組みさえわかれば、自作EAに簡単に実装できるようになります。ぜひあなたの勝てるEA作りに役立ててください。

 

自作EAにnバーストップを実装してみよう

nバーストップは、過去nバーの期間の高値または安値超えを基準にストップロスオーダーを設定します。

直近の価格変動を重視した手仕舞い方法で、広く使われています。

MQL言語入門|自作EAに簡単に実装できるnバーストップ
MT4のサンプルEA「MACD Sample.mq4」のソースコードの一部を書き換えて「nバーストップ」を実装します。仕組みさえわかれば、自作EAに簡単に実装できます。ぜひあなたの勝てるEA作りに役立ててください。

 

自作EAにATRストップを実装してみよう

ATRとは平均的な1日の値幅のことです。

ATRストップとは、トレーリングストップのトレール幅をATRで算出する投資手法です。

システムトレーダーのバイブル『魔術師たちの心理学―トレードで生計を立てる秘訣と心構え』でも、ATRを使ったストップロスの設定が推奨されています。

MQL言語入門|自作EAに簡単に実装できるATRストップ
MT4のサンプルEA「MACD Sample.mq4」のソースコードの一部を書き換えて「ATRストップ」を自作します。仕組みさえわかれば、自作EAに簡単に実装できます。ぜひあなたの勝てるEA作りに役立ててください。

 

自作EAに複利システムを実装してみよう

複利とは、トレードで得た利益を再び投資することにより、利息が利息を生んで大きくふくらんでいく効果のことです。

リスクは大きいですが、うまく活用できれば、資金効率が上がり、グラフ上、二次曲線を描いて資金が増えていきます。

MQL言語入門|自作EAに簡単に実装できる複利システム
MT4のサンプルEA「MACD Sample.mq4」のソースコードの一部を書き換えて「複利システム」を実装させます。仕組みさえわかれば、自作EAに簡単に実装できます。ぜひあなたの勝てるEA作りに役立ててください。

 

自作EAに新規注文の時間制限機能を実装してみよう

「この時間帯のトレードは避けたい」とかその逆とか、考えることもあると思います。

時間や曜日を指定し、そのときだけ取引しない、または取引する機能をEAに実装する方法を解説します。

MQL言語入門|自作EAに簡単に実装できる新規注文の時間制限機能
例えば、雇用統計発表時は取引しない、アジア時間は値動きが小さいので取引しない、ある曜日だけ取引したいなど。時間や曜日を指定し、そのときだけ新規注文しない、または新規注文する機能をプログラムし、EAに実装する方法を解説します。

 

EA自作の落とし穴

EAの自作にはバックテストが不可欠です。

EAの有用性を確認するためやパラメーターを最適化するために、バックテストは正しく行いましょう。

間違ったバックテスト結果に騙されないようにしましょう。

 

コントロールポイントでバックテストをやってはダメ

バックテストは「全ティック」で行った結果でなければ信頼できません。

時間がかかっても「全ティック」でやりましょう。

MT4のバックテストは「コントロールポイント」でやってはダメ!
今回わかったことは、「全ティック」以外の方法で行ったバックテストは信頼できない、です。少なくとも、ティック単位で条件分岐して命令を出すようなEAでは、「コントロールポイント」では何の確認もできません。バックテストは「全ティック」をおすすめします。

 

カーブフィッティングに気を付けよう

バックテストではカーブフィッティングに注意しましょう。カーブフィッティングされたシステムは、過去にだけ合うように出来てしまっているので、未来に全く通用しません。

EAのバックテストではカーブフィッティングに気を付けよう!
バックテストする際には、カーブフィッティングに注意しましょう。システムの最適化をやりすぎるとカーブフィッティングしてしまいます。カーブフィッティングされたシステムは、過去の相場の動きにだけ合うように出来てしまっているので、未来の相場にまったく通用しません。

 

まとめ

以上、初心者向けに、MQL言語を使ったプログラミングについて解説しました。

せっかくMT4(MetaTrader4)を使っているんですから、ぜひあなたオリジナルのEAやインジケーターを自作してみましょう。

すでに出来上がっているサンプルEAのソースコードの一部を書き換えるだけで、こんなにいろいろ出来ます。

アイディア次第では、ものすごいEAを自作できるかもしれませんよ。

 

もし、あなたが本格的にMQL言語を使いこなしたいと考えているなら、以下の書籍がおすすめです。私も読みましたが、実践的な内容をわかりやすく説明しています。

FXメタトレーダー実践プログラミング (現代の錬金術師シリーズ)

 

こちらの記事では、デモ口座の開設方法から、バックテスト、EA(Expert Advisor)やインジケーターの作り方まで解説しています。

【保存版】最強FXツールMT4のはじめ方のまとめ
MT4は、無料なのに、簡単にプロ並みの分析ができる高性能なFX取引システムです。高度なチャート分析も、売買ルールの検証も、シストレだって簡単にできます。しかも、たったの5分で使い始めることができます。あなたもぜひMT4を入手し、使いこなして勝てるトレーダーになりましょう。

おすすめFX業者

もしあなたがリアル口座でMT4の稼働をお考えなら「XMTrading」がおすすめです。 XMは、豊富な入出金方法、24時間日本語サポート、レバレッジ888倍など有利な取引条件、お得なボーナスなどにより、海外FX業者の中で日本人の口座開設数No.1です。

XMの口座開設はこちらから

MT4でシストレ

●免責及び注意事項●
当サイトの全てのコンテンツは管理人自身による情報の提供を目的としており、決して投資行動を勧誘・助言するものではありません。
投資商品、売買価格決定等の投資行動につきましては、ご自身の判断と責任に基づいて行われるようお願いいたします。
また、個々の取引において生じたいかなる損失についても、本ブログサイトおよびその管理者は一切の責任を負いかねます。

Startup!

コメント