マジックナンバーとは

マジックナンバーとは、それぞれのEAにつけられる認識番号です。

通常は、上の画像のように、EAごとに外部パラメーターで利用者が好きなようにマジックナンバーを設定することできます。

本日は、なぜ、このマジックナンバーがEAで必要になるのかをご説明いたします。

 

今仮に、「A」「B」二つの異なるロジックをもつEAがあるとします。

 

そして、同一のMT4のUSDJPYのチャートを2つ立ち上げて、それぞれにこの2つのEAを別々にセットしたとします。

 

この場合、もしもマジックナンバーが無いと、たとえば、一方のEAにおいて成行き決済の条件を満たしたときに、同じUSDJPYの他方のEAが発注したポジションまでも決済されてしまいます。

 

これを「EA同士の相互干渉」といい、本来異なるロジックをもつ2つのEAが互いに影響を与え合ってしまい、トレードがめちゃくちゃになってしまうわけです。

そこで、

 

◆「A」というEAに「1番」というマジックナンバーを

◆「B」というEAに「2番」というマジックナンバーを

 

れれぞれつけたとします。

 

すると、「A」から発注されたポジションにも「1番」というマジックナンバーが付けられ、「B」から発注されたポジションにも「2番」というマジックナンバーが付けられることになります。

 

そして、「A」で決済条件が満たされたときは、「1番」のマジックナンバーを持つポジションだけが決済対象となり、「B」で決済条件が満たされたときは、「2番」のマジックナンバーを持つポジションだけが決済対象となり、二つのEAは相互干渉することなく、それぞれ独立にロジックを実現してくれることになるわけです。

実際に、このマジックナンバーをプログラム中でどのように用いるかについては、特別な場合を除いて、あるEAをMT4にセットしたときに、

 

①そのEAがセットされたチャートの通貨ペアと同じであること

②そのEAにつけられたマジックナンバーと同じであること

 

①かつ②を満たすポジションだけを、そのEAがMT4のトレーディングプールから探し出してきて、決済等の対象とします。

 

従って、たとえば、あるEAを作成したとして、そのEAを、

 

①マジックナンバーを1番」としてUSDJPY(時間軸問わず)にセット

②マジックナンバーを2番」としてEURJPY(時間軸問わず)にセット

 

した場合、「相互干渉」は発生せずに、それぞれ正常に稼働します。

 

①マジックナンバーを「1番」としてUSDJPY(時間軸問わず)にセット

②マジックナンバーを「1番」としてEURJPY(時間軸問わず)にセット

 

この場合も、「相互干渉」は発生せずに、それぞれ正常に稼働します。

 

①マジックナンバーを「1番」としてUSDJPY(時間軸問わず)にセット

②マジックナンバーを「2番」としてUSDJPY(時間軸問わず)にセット

 

この場合も、「相互干渉」は発生せずに、それぞれ正常に稼働します。

 

しかし、

 

①マジックナンバーを「1番」としてUSDJPY(時間軸問わず)にセット

②マジックナンバーを「1番」としてUSDJPY(時間軸問わず)にセット

 

この場合には、「相互干渉」が発生し、トレードがめちゃくちゃになります。

 

参考までにどうぞ。