MT4/5でチャート毎にマジックナンバーを変える

皆さん、こんにちは。ずいぶん久しぶりの記事です。

MT4/MT5では、EAでマジックナンバーを設定することが多いです。

同じMT4に複数のチャートを開いてEAを動かす場合、通貨ペアが異なっていれば、特にマジックナンバーは同じでも構いません。ただし、同じ通貨ペアのチャートをいくつも開いて同じEAを動かす場合、それぞれマジックナンバーを変えておく必要があります。

もちろん input をつけてマジックナンバー変数を宣言しておけば、EAを挿入後にマジックナンバーを個別に変えることはできます。今回はこれを自動的に行いたいという人向けの記事です。(個人的に必要だったので作ったものですが)

使う関数は、ChartID(), ChartFirst(), ChartNext()です。

これらの関数は、もともとMQL5の関数でしたが、新MQL4になってMQL4でも使えるようになったものです。

ChartID()は、プログラムを挿入したチャートのIDを返す関数です。

ChartFirst()は、MT4で開いている最初のチャートのチャートIDを返す関数です。

ChartNext()は、前のチャートIDを引数として次のチャートのチャートIDを返す関数です。

簡単にやるには、チャートIDをそのままマジックナンバーにすればいいですが、チャートIDはかなり大きな整数値なので、もう少し簡単なマジックナンバーに置き換えてみます。

以下は、チャート毎に異なるマジックナンバーを返す簡単なスクリプトです。

マジックナンバーの初期値は100としており、チャートを探す度に1ずつ増やすので、それぞれのチャートで、100、101、102・・・とマジックナンバーが変わっていきます。

それだけなんですが、まま簡単にできたのでメモしておきます。特に調べてないので、既出かもしれませんが。



コメントは受け付けていません