MQL4で原理的に解決可能なタスクですか?

 

タスクは次のとおりです。1つのターミナルに、9種類のペアと、それぞれで動作する8つのEAがあり、それぞれが9番目のペアで取引することが許可されています。私の「管理」EAでは、取引EAのコピーが同時に注文を開くことができるか、いくつのペアとそれぞれ監視しています。すべてのExpert Advisorは、1つのGLobal変数に従います。私は、すでに開いた注文の「マジックナンバー」を読み取り、取引を禁止する制御グローバル変数の値を設定する他のEAの新しい注文を開くことを許可しない単純なループを書きました。

これが「シナリオのもと」でのあるべき姿なのです。実際にはそんなことはないのですが。問題は、私の「管理する」EAが取引を禁止するグローバル変数の値を 設定する時間があるまで、作業用EAが許容される2ペアではなく6ペアで注文を 開く時間があることです。 アルゴリズムは正しく動作します。最初にEAマネージャを起動してから取引EAを取引させると、2つ 以上のEA(2ペア)が開きません(EAマネージャが設定したグローバル変数によって禁止されます)。

MQL4で優先順位を設定し、最初にEAのコードが実行され、次に他のすべてのEAが実行されるようにすることは可能でしょうか?

start()をループさせようとしたのですが、何か間違ったことをしたのか、端末はハングアップするものの、何も起こりません。

初心者のプロに役立つ

 
Zakyza:

MQL4で、EAコードが最初に実行され、その後他のEAがすべて実行されるような優先順位のシステムを設定することは可能ですか?

何か間違えたのか、start()をループしてみましたが、端末が停止するだけで何も出ません。

プロ初心者のために、教えてほしいことがあります。

可能なんです。例えば、端末の変数をひとつ増やすことで、本人だけが管理でき、他の人には仕事の許可証になる。

すでに実装されているものを提案したと理解しています。どうやら、正しくできていないようです。

管理アドバイザーが端末変数を変更する時間がない場合、奴隷は取引できないようにする必要があります。

 
この機能を見て ください。MQL4で唯一、カーネルレベルを扱う(アトミックアクセスを提供する)関数です。役立つはずです。
 
tara:
可能です。例えば、自分だけがコントロールできる別の端末変数を追加することで、他の人にとってはそれが仕事の許可になる。


EAマネージャがグローバル変数の 所望の値を設定する時間がない
 
Zakyza:

EAマネージャがグローバル変数に正しい値を設定する時間がない

まあ、奴隷が目を覚ますまで呼吸する権利を与える必要はないんだけどね。
 
Zhunko:
この機能を見て ください。MQL4で唯一、カーネルレベルを扱う(アトミックアクセスを提供する)関数です。役立つはずです。

ありがとうございます!お役に立てれば幸いです!何となく見落としていました。「一つのクライアント端末で複数のExpert Advisorが同時に動作している場合、セマフォの整理に使用できる」-これは希望になります ただし EAがすでに取引に入った後、最終ターンで私のEAのstart()から GlobalVariableSetOnConditionが 呼ばれた場合、どんな違いが 出るかは分かりませんが。
 
tara:

まあ、奴隷が目を覚ますまで呼吸する権利を与える必要はないんだけどね。

どのように整理しているのですか?奴隷に手動で取引させるという選択肢はない。
 
奴隷参議院議員が盗人参議院議員なら、来るところを間違えたな。
 
なぜ盗まれたのか?EAの作者自身が無償で提供しているもので、私は数枚を実行し、グローバル変数で 整理したいだけなのです。なぜ、そんなことを言うのですか?
 
私が言ったのは、「もし」です。
 
tara:
私が言ったのは、「もし」です。

なるほど。いいえ、盗まれてはいません。