EAを最初にドロップしたチャートのみで動作させる方法

 

EAを「1つのインスタンス」のみで動作させる必要があるのですが。I.e.初めてどのチャートにも添付して、動作します。その後、偶然または意図的に別のチャートに再度添付すると、2番目の添付はすでに実行中であることを認識し、何もしないはずです。

グローバル 変数にラベルを残すのは、おそらくうまくいかないでしょう。2つのEAを添付して、そのテキストを再コンパイルした場合、このグローバル変数が作成できるinitで、どちらが先に動作するのか不明です。

誰が何を提案できるのか?この方法について、何かご意見はありますか?

 

まあ再コンパイルすればいいんだけど、端末の再起動はどうするんだろう...。

なぜなら、グローバル変数を ファイルに書き込んだ状態でターミナルがクラッシュすると、すべてがクラッシュしてしまうからです。

あるいは、何かのハンドルを握っておくという方法もあります。

 

TheXpert:

なにごとも

それが問題だ :(
 
が、ただ、チャートに2回EAを連動させるのは、実現不可能なのでしょうか?
 
Techno:
が、EAとチャートを2回リンクさせないようにすればいいだけなのですが、無理でしょうか?

私も他の人も、偶然にせよ故意にせよ、それをしないという保証が必要なのです ;)

想像してみてください、EAが「外部」コマンドを受信して注文を出す。 たとえ1つの余分なコピーがあっても、(理論的には)1つの余分な注文です。

 
ForexTools:
それが問題だ :(

いいえ、それは実装の詳細で、主な問題は再起動と再コンパイルです。

あ、トピックがあったので確認なのですが、EAを再起動し再コンパイルすると、クラッシュする前なら、例えば0で割ると復活するのでしょうか?

そうでなければ、それはそれでいいのです。

 
TheXpert:

いいえ、それは実装の詳細で、主な問題は再読み込みと再コンパイルです。


再コンパイルは問題ないはずです。
 
PapaYozh:

再コンパイル時には問題が発生しないはずです。

EAを3つコピーして、リコンパイルして、コマンドをターミナルに送ったら、EAが初期化され始めた。どのような順番で再初期化するのでしょうか?
 
ForexTools:

EAを3つコピーして、リコンパイルし、ターミナルにコマンドを送り、EAを初期化する。どのような順番で再初期化するのでしょうか?
ということで、片方がトレードしていたことが判明したのですが、再起動後はリーダーの権利がもう片方に移り、先方はこの権利を失うことになるので、同じであっても何が違うのでしょうか? 肝心の片方がトレードしていたということなのですが。グローバル変数を 使う、それだけです。inite関数で、sleep()に各EAのランダムな期待値を書き、最初に起きた人がグローバル変数をカウントして削除し、deinitで再び復元します。最初にカウントして削除したものが動作します。要するに、sleep()のために乱数を生成するのです
 
ForexTools:

EAを3つコピーして、リコンパイルし、ターミナルにコマンドを送り、EAを初期化する。どのような順番で再初期化するのでしょうか?

そして、同じグラフを持つことを否定しないのですか?I.e. 同じシンボル、同じ期間の2つのチャートでEAを起動すると処理されるのでしょうか?
 
Techno:
その後、一人が取引したことが判明しましたが、リロード後、もう一人はリードの権利を得て、最初の一人はこの権利を失うことになり、同じであれば、どんな違いがあるのでしょうか。グローバル変数を使う、それだけです。inite関数で、sleep()に各EAのランダムな期待値を書き、最初に起きた人がグローバル変数をカウントして削除し、deinitで再び復元します。最初にカウントして削除したものが動作します。要するに、sleep()のために乱数を生成するのです

ところで、そうなんです。2つのEAが許容できない場合、どちらのEAが先に始まるかは問題ではありません。
理由: