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

この記事は約7分で読めます。

MQL4言語入門まとめ|EAやインジケーターの作り方

せっかくMT4(メタトレーダー4)を使うのなら、あなたオリジナルのEA(自動売買プログラム)やテクニカルインジケーターを自作してみませんか!?

 

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

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

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

ホントに超簡単ですので、ぜひ挑戦してみましょう♪

※2020年5月2日、窓埋めEAの記事を追加しました。

スポンサーリンク

MQL4言語とは?

MQL4言語(Meta Quotes Language 4)とは、MT4で使用されるプログラム言語で、ベースはC言語です。

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

 

スポンサーリンク

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

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

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

 

EAの基本構造と書き方

MT4のサンプルEAを使ってEAの基本構造と書き方を解説します。

EA自作は難しいものではありません。簡単ですから、ぜひ挑戦してみましょう♪

MQL4言語入門|EAの基本構造と書き方を理解しよう!
初心者向けにMQL4言語プログラミングを解説しています。今回は、MT4のサンプルEAを使ってEAの基本構造と書き方を解説します。EA自作はけして難しくはありません。一見難しそうに感じるかもしれませんが、超簡単なので、ぜひ挑戦してみましょう♪

 

変数と配列

変数と配列はあらゆるプログラム言語の基礎です。

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

MQL4言語入門|変数と配列を使いこなそう!
初心者がEA自作を目指すMQL4言語入門です。今回は、変数と配列を解説します。変数や配列を使えば、複雑な計算式を何度も書く必要がなくなるので、プログラムを読みやすくし、処理速度も速まります。簡単ですから、ぜひ使いこなせるようになりましょう。

 

if文とfor文

ともにプログラムの実行の流れを制御する構文です。

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

MQL4言語入門|if文とfor文を使いこなそう!
初心者がEA自作を目指すMQL4言語入門です。今回はif文とfor文を解説します。制御文であるif文とfor文は、思いどおりにEAやインジケーターを自作するために、ぜひ使いこなしたい構文です。実は超簡単ですから、ぜひ挑戦してみましょう。

 

OrderSend()とOrderClose()

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

どちらもMQL4言語独自の関数ですが、EA作りには必須の関数です。

MQL4言語入門|OrderSend()とOrderClose()を使いこなそう!
EA自作を目指すMQL4言語入門です。OrderSend()は新規注文を行う関数です。OrderClose()は保有ポジションの決済注文を行う関数です。どちらもEA作りでは必ず使う関数です。思いどおりに自作するために、ぜひ使いこなせるようになりましょう。

 

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

よく使うプログラミング用語だけ集めました。

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

MQL4言語入門|お手軽リファレンス
MQL4言語入門用に、よく使う用語だけを集めたお手軽リファレンスを作りました。EAやインジケーターを自作するときにきっと役立ちます。変数の宣言、定義済み変数・配列、口座情報、取引、テクニカル指標、カスタム指標、日付と時刻、変換などの各種関数など。

 

スポンサーリンク

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

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

 

リピート系注文をEA化してみよう

MT4のサンプルEAの一部をササっと書き換えて、人気のリピート系注文をEA化します。

トラリピなどの既存のサービスを使えばいいと思われるかもしれませんが、リピート系注文をMT4でするメリットはたくさんあります。

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

MQL4言語入門|リピート系注文をEA化する超簡単な方法①|買いのみ
リピート系注文をEA化する方法を解説します。サンプルEAのソースの一部を書き換えるだけの、いつもどおりの超簡単な方法です。実はリピート系注文とMT4は相性がいいので、ぜひあなたの勝てるEA作りに役立ててください。完成品を無料ダウンロードできます。
MQL4言語入門|リピート系注文をEA化する超簡単な方法②|売りのみ
前回の応用で”売りのみ”のリピート系注文をEA化する方法を解説します。もちろん、いつもどおり超簡単に自作できます。前回作ったEAのソースをほんの少し書き換えるだけです。ぜひあなたの勝てるEA作りに役立ててください。完成品を無料ダウンロードできます。
MQL4言語入門|リピート系注文をEA化する超簡単な方法③|ハーフ&ハーフ
リピート系注文を進化させたハーフ&ハーフをEA化する方法を解説します。買いと売りを織り交ぜたハーフ&ハーフなら、少ない資金で広い価格帯をカバーできます。もちろん超簡単に自作できます。既にあるEAのソースコードをほんの少し書き換えるだけですから。

 

窓埋めをEA化してみよう

MT4のサンプルEAの一部をササっと書き換えて、有名な窓埋めの手法をEA化します。

窓埋めは、前週金曜の終値と翌月曜朝の始値のギャップ(窓)を埋めようとする相場のパターンを利用してトレードする手法であり、勝てる手法として人気があります。

窓埋めはシストレ向きの手法であり、MT4とも非常に相性が良いです。

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

MT4言語入門|窓埋めEAの超簡単な自作方法
MQL4言語入門として、窓埋めEAの超簡単な自作方法を解説します。すでに出来上がっているサンプルEAのソースコードの一部を書き換えるだけの、いつもどおりの超簡単な自作方法です。EAの完成品を無料ダウンロードできます。ぜひ読んでいってください。

 

スポンサーリンク

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

 

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

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

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

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

 

スポンサーリンク

EA自作の落とし穴

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

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

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

 

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

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

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

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

 

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

バックテストではカーブフィッティングに注意しましょう。

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

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

 

スポンサーリンク

まとめ

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

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

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

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

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