チャート毎に異なるMagicNumber を割り当てる?

元ネタは、ここなのですが、
・端末内のチャートごとにユニーク
に挑戦してみました。


あるEA(00.mq4)を、2枚のGBPUSD,5分足チャートで同一パラメータで同時に動かす状況を考えると、通貨ペア名+時間足でMagicNumber を生成する手法は使えません。そこで考えたのが、グローバル環境変数に発行した連番を記録してゆく方法。

↑無設定でEAをドロップしただけで、チャート毎に異なる番号が振られるようにできました。

↑グローバル環境変数には使われている番号名が残ります。


問題は…、MT4 を再起動した場合に元々使用していた番号をどうやって知るか?です。
static な変数は、再起動で失われますし、チャート設定やパラメータが同一の環境では、外部ファイルに記録することも出来ません。(同じ設定では、同じファイルに記録することになるので..。)


パズル好きな人は、続きを見る前に、どうやれば良いのか考えてみてください。。



いろいろ考えた結果、文字オブジェクトにテキスト情報としてチャートに記録するようにしました。
現実的な解法かどうかは分かりませんが、、これなら MT4再起動でも消えませんし、チャート毎に記憶できます。



…実際、チャート間でMagicNumber の重複を避けたかったら、チャート上にMagicNumber をでかでかと表示させて注意喚起するとか、EA起動時に使用中のMagicNumber に重複がないかチェックして警告するような仕組みを導入した方が良いのではと思います。。^^;