MetaTrader4(MT4)/MetaTrader5(MT5)でインディケータを作成するには、メタエディターと呼ばれるプログラミングツールを利用し、MT4/MT5専用のプログラミング言語であるMQL4/MQL5を使って、プログラムを記述します。
ここでは、MT4/MT5でインディケータを作成する方法について説明します。
MT4/MT5それぞれの説明は、タブ切替でご確認いただけます。
メニューバーの「ツール」をクリックし、「メタエディター」を選択します。
メタエディターが起動するので、メニューバーから「新規作成」ボタンをクリックします。
「カスタムインディケータ」を選択し、「次へ」ボタンをクリックします。
作成するインディケータの名称・著作者・表示させるリンク、また必要に応じてパラメータを設定し、「次へ」ボタンをクリックします。名前以外の項目は空にしても問題ありません。
また、これ以降に入力・設定する内容は、後からコード上で追加・変更・削除を行うことが可能です。
番号 |
項目名 |
説明 |
---|---|---|
1 |
名前 |
作成するインディケータの名称を指定します。 |
2 |
著作者 |
作成するインディケータの著作者を記載します。 |
3 |
リンク |
表示させるリンクを入力します。 |
登録した名称・著作者・リンクの情報は、インディケータの設定画面に表示されます。
使用するイベントハンドラ(特定のタイミングで自動的に実行される関数)を設定します。
番号 |
項目名 |
説明 |
---|---|---|
1 |
OnCalculate |
OnCalculate(...,open,high,low,close)は、ティックが更新された時に実行されます。時刻・始値・高値・安値・終値、ティックボリューム・ボリューム・スプレッドといった値を使用して、ティック更新時に実行するプログラムを記述できます。 |
2 |
OnCalculate |
OnCalculate(...,prices)は、ティックが更新されたときに実行されます。インディケータの設定画面において、「パラメータ」タブの「適用価格」でユーザーが選択した価格を使用して、ティック更新時のプログラムを記述できます。 |
3 |
OnTimer |
OnTimerは、指定した時間ごとに動作する関数です。時間は後から、コード上で指定・変更できます。 |
4 |
OnChartEvent |
OnChartEventは、チャートでのイベントを処理する関数です。チャート上でオブジェクトの作成・削除・移動・編集など、イベントが発生する際に実行されます。 |
インディケータをサブウインドウに表示する場合は、「サブウインドウに表示」のチェックボックスにチェックを入れます。サブウインドウの最小値と最大値を設定する場合は、「最小値」「最大値」のチェックボックスにチェックを入れ、最小値と最大値を指定します。
インディケータにオブジェクトを使用する場合は、「追加」ボタンをクリックします。「ラベル」にオブジェクトの名称を入力し、「タイプ」でオブジェクトの種類を、「カラー」でオブジェクトの色を指定してください。設定が完了したら、「完了」ボタンをクリックします。
MQL4言語でプログラムを記述します。
プログラムを記述し終えたら、ツールバーの「コンパイル」ボタンをクリックします。
コンパイルが完了すると、「ナビゲータ」欄に作成したインディケータが反映されます。
メタエディターを閉じてMT4に戻り、「ナビゲータ」に作成したインディケータが反映されていることを確認します。
メニューバーの「ツール」をクリックし、「MetaQuotes 言語エディタ」を選択します。
メタエディターが起動します。メニューバーの「新規作成」ボタンをクリックします。
「カスタムインディケータ」を選択し、「次へ」ボタンをクリックします。
作成するインディケータの名称・著作者・表示させるリンク、また必要に応じてパラメータを設定し、「次へ」ボタンをクリックします。名前以外の項目は空にしても問題ありません。
また、これ以降に入力・設定する内容は、後からコード上で追加・変更・削除を行うことが可能です。
番号 |
項目名 |
説明 |
---|---|---|
1 |
名前 |
作成するインディケータの名称を指定します。 |
2 |
著作者 |
作成するインディケータの著作者を記載します。 |
3 |
リンク |
表示させるリンクを入力します。 |
登録した名称・著作者・リンクの情報は、インディケータの設定画面に表示されます。
使用するイベントハンドラ(特定のタイミングで自動的に実行される関数)を設定します。
番号 |
項目名 |
説明 |
---|---|---|
1 |
OnCalculate |
OnCalculate(...,open,high,low,close)は、ティックが更新された時に実行されます。時刻・始値・高値・安値・終値、ティックボリューム・ボリューム・スプレッドといった値を使用して、ティック更新時に実行するプログラムを記述できます。 |
2 |
OnCalculate |
OnCalculate(...,prices)は、ティックが更新されたときに実行されます。インディケータの設定画面において、「パラメータ」タブの「適用価格」でユーザーが選択した価格を使用して、ティック更新時のプログラムを記述できます。 |
3 |
OnTimer |
OnTimerは、指定した時間ごとに動作する関数です。時間は後から、コード上で指定・変更できます。 |
4 |
OnChartEvent |
OnChartEventは、チャートでのイベントを処理する関数です。チャート上でオブジェクトの作成・削除・移動・編集など、イベントが発生する際に実行されます。 |
インディケータをサブウインドウに表示する場合は、「サブウインドウに表示」のチェックボックスにチェックを入れます。サブウインドウの最小値と最大値を設定する場合は、「最小値」「最大値」のチェックボックスにチェックを入れ、最小値と最大値を指定します。
インディケータにオブジェクトを使用する場合は、「追加」ボタンをクリックします。「ラベル」にオブジェクトの名称を入力し、「タイプ」でオブジェクトの種類を、「カラー」でオブジェクトの色を指定してください。設定が完了したら、「完了」ボタンをクリックします。
MQL5言語でプログラムを記述します。
プログラムを記述し終えたら、ツールバーの「コンパイル」ボタンをクリックします。
コンパイルが完了すると、「ナビゲータ」欄に作成したインディケータが反映されます。
メタエディターを閉じてMT5に戻り、「ナビゲータ」に作成したインディケータが反映されていることを確認します。
作成日
:
2021.04.08
最終更新
:
2025.04.28
免責事項:Disclaimer
当サイトの、各コンテンツに掲載の内容は、情報の提供のみを目的としており、投資に関する何らかの勧誘を意図するものではありません。
これらの情報は、当社が独自に収集し、可能な限り正確な情報を元に配信しておりますが、その内容および情報の正確性、完全性または適時性について、当社は保証を行うものでも責任を持つものでもありません。投資にあたっての最終判断は、お客様ご自身でなさるようお願いいたします。
本コンテンツは、当社が独自に制作し当サイトに掲載しているものであり、掲載内容の一部または、全部の無断転用は禁止しております。掲載記事を二次利用する場合は、必ず当社までご連絡ください。