【初心者向け】MT4のマジックナンバーとは?EA開発者がわかりやすく解説

「マジックナンバーってなんですか?」「マジックナンバーは変更してもいいですか?」「自動売買のパフォーマンスに影響しますか?」これらの質問に対する回答です。


  • あの・・・

  • なんだい?

  • 自動売買ツールを複数設定する時、マジックナンバーを別々に設定するんですか?

  • はい、そうです。

  • どんな値でもいいですか?

  • ほかの値とかぶらない0以外の数値をご入力ください。

  • マジックナンバーを変更すると、影響ありますか?

  • はい、あります。

  • マジックナンバーってなんですか?

  • チケットの管理番号です。



ありがたいことに僕が開発した自動売買ツールのご利用者様が増え、このやりとりを何度も繰り返してきたので、そろそろ記事化します。


  • あ、一般的な質問についてはグーグルで検索してくれるとかなり助かりますのでお願いします。


さて、自動売買ツールを利用していてすべての自動売買ツールのパラメタに表示される「マジックナンバー」という項目ですが、自動売買ツールによっては「マジック」という表現もされたりします。同様に、海外製の自動売買ツールには「magic_number」や「magic」という表現が多いと思います。

MT4のマジックナンバーとは?

そもそもマジックナンバーですが、これは一体なんなんでしょうか?
すこし難しい言葉を使うと、識別子です。
Wikipediaを見てましょう。

マジックナンバー
プログラムにおけるマジックナンバーとは、何らかの識別子もしくは定数として用いられる、プログラムのソースコード中に書かれた具体的な数値である。

これじゃよくわかんないですね。
自動売買ツールを稼働させるプラットホームはMT4を利用していますが、この場合においてわかりやすく言うと、チケット(ポジション)の発行者番号です。

マジックナンバー=チケット発行者番号

たとえば一つの口座で自動売買ツールを稼働させているとします。
この時、この口座で裁量(手動)でエントリーした場合、チケット発行者番号という概念がないとプログラムの記述の仕方によっては、自動売買ツールがポジションを持っているんだなと認識して、保有しているポジションをクローズしてしまうことが起こりえます。
このように、誰がこのポジションを発注しているのかを自動売買ツールが知っておくためのチケット発行者番号です。
マジックナンバーは自動取引システムを正常に稼働させるうえでとても大切な識別子です。

マジックナンバーにはなんの値を設定すればいいの?

以上の理由で、マジックナンバーはなんらかの数字を入力すればいいんだなとご理解いただけたと思います。
ただし、注意すべきことがひとつあり、マジックナンバーに「0」は入力しないでください。
理由は、「0」のマジックナンバーは、裁量エントリーが持つ発行者番号だからです。

マジックナンバーに入力してはいけない値

仮にマジックナンバーに「0」の値を入力してしまうと、先ほど説明したように自動売買ツールによっては裁量エントリーのポジションを決済してしまう可能性があります。
なので、マジックナンバーには「正の整数(1以上の整数)」を入力してください。

まとめ|EA(自動売買ツール)のマジックナンバー設定もこれでバッチリ!

複数の自動売買ツールを稼働させる場合のマジックナンバーにおいても、それぞれ異なるマジックナンバーをご入力ください。あくまでもポジションを管理するための識別子なので、同一口座においてのみ異なるマジックナンバーを設定する必要があると言うことですね。
以上、上記で説明した仕様についてご理解いただければ、もうマジックナンバーの設定について迷うことはなくなりますね。