quote from new dictionary === プログラムの取引コンテキストで起動され、エキスパートやスクリプトから取引操作を行うスレッドが1つだけ存在する。したがって、このコンテキストがEAのトレード操作によって占有されている場合、エラー146(ERR_TRADE_CONTEXT_BUSY)により、他のEAやスクリプトはその時点でトレード関数を呼び出すことができません。IsTradeAllowed()関数を使用して、取引操作の実行可能性を検出する必要があります。取引コンテキストへのアクセスを明確に分離するために、GlobalVariableSetOnCondition()関数を 使用して値を変更する必要があるグローバル変数に基づくセマフォを使用することができます。 === 複数のEA(またはEAとスクリプト)を同時に取引することはできません。 エラー番号6の枝に、セマフォを使った対処例があります。
1.マーケットメーカーの介入なしに、自動的に注文の相互決済が行われるのですか?
2.未決済注文の変更は、マーケットメーカーが介入することなく自動的に行われますか?
3.待機中の注文の 削除や変更は、マーケットメーカーの介入なしに自動的に行われるのですか?
2.注文の変更は(許容された距離が尊重される場合)マーケットメーカーからの介入なしに自動的に行われるのですか?
3.保留中の注文の削除や変更は、マーケットメーカーが介入することなく自動的に行われますか?
自動処理は可能ですが、当社のデモサーバーでも自動処理が無効になり、手動で確認が行われることがあります。
明確な回答ありがとうございました。
TrailingStopの自動プルアップも同様と考えるべきでしょうか?
マーケットメーカーの場合、コントロールする影響力の形成源(EAかMTか)に違いは全くないのでしょうか?
2)配列の要素に アクセスするのが比較的遅い。面倒な構造か何かで高速化するしかないのでしょうか?
いつもありがとうございます。よりクリアになりました。
Myxu さん、
ArrayCopy()を使ってみてください。
一つのウィンドウでExpert Advisorとスクリプトが同時に動作している場合、約同時にサーバーに修正命令を出します。
- EAは時刻t_oにBuyを修正、Sovet=OrderModify(...)
- スクリプトは時刻t_o +1msにBuyLimitを修正、Script=OrderModify(...)
さらにイベント:
-修正(どれかは分からない)命令の実行に成功するとサーバーはTRUEを返す、
(変数のどちらが値TRUEを 取得 - Sovet or Script ?)
and after 1ms ...。
-serverは、オーダー
の変更(どれかわからない)の実行に成功するとFALSEを返す。 質問
1.サーバーへのリクエストは、名前が付けられており、サーバーからのレスポンスは混ざり合うことなく、それぞれが独自のOrderModify()に返されると考えてよいのでしょうか。
2.そうでない場合、サーバーの応答を区別するためのルーチンの方法はありますか?(前の注文の返答を受けてから次の注文を作るというやり方以外) ?
(他にも似たような質問があります。肝心なことでなければ、MQL4フォーラムで回答してください。質問はそちらと重複していますし、可能であればそちらで議論していただくと、コードを提示するのに便利なので).
===
プログラムの取引コンテキストで起動され、エキスパートやスクリプトから取引操作を行うスレッドが1つだけ存在する。したがって、このコンテキストがEAのトレード操作によって占有されている場合、エラー146(ERR_TRADE_CONTEXT_BUSY)により、他のEAやスクリプトはその時点でトレード関数を呼び出すことができません。IsTradeAllowed()関数を使用して、取引操作の実行可能性を検出する必要があります。取引コンテキストへのアクセスを明確に分離するために、GlobalVariableSetOnCondition()関数を 使用して値を変更する必要があるグローバル変数に基づくセマフォを使用することができます。
===
複数のEA(またはEAとスクリプト)を同時に取引することはできません。 エラー番号6の枝に、セマフォを使った対処例があります。
お返事ありがとうございます。非常に重要な情報です。あるものが明確になる。
しかし、まだ疑問もあります。
というのは事実なのでしょうか?
以下のスキームに従って1つのEAやスクリプトの注文を実行するか?:
);
と考えていいのでしょうか。- 最初の例では、OrderModify(..number2)は、OrderModify(..number1)へのサーバー応答を受け取った後、
代入演算子 a=が 実行されるまで実行を開始しないでしょうか。- 2番目の例では、OrderModify(..number2)はサーバーからのOrderModify(..number1)への応答を待たずにすぐに実行を開始するのでしょうか。