MT5でOrderSendを正しく動作させる方法 - ページ 7

 
fxsaber:

こういう例は、図星なんでしょうね。

Sleepを行わないと、OrderCloseの後に履歴が更新される時間がなく、OrderCommissionがOrderCloseが行われていないかのような値を返す事態がよく発生する。

これはスクリプトであり、Event-overはありえないことに注意してください。逃げ道は馬鹿なスリープしかない。

このスクリプトをSBで書き換えても、何も変わりません。

MT4とMT5を混同しないでください
 
prostotrader:
MT4とMT5を混同しないでください。

これとMT5

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006
 
fxsaber:

それとMT5

OP_BUY

MT5ではそのようなことはありません。

仕組みがまったく違うのです。

 
prostotrader:
OP_BUY

MT5ではそのようなことはありません。

仕組みがまったく違うのです。

MT5で上記のコードを実行するのではなく、無駄なおしゃべりに時間を費やしているのです。
 

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

ライブラリ:MT4Orders

fxsaber, 2016.11.14 13:33

// 13.11.2016:
//   Add: Полная синхронизация OrderSend, OrderModify, OrderClose, OrderDelete с торговым окружением (реал-тайм и история) - как в MT4.
//        Максимальное время синхронизации можно задать через MT4ORDERS::OrderSend_MaxPause в мкс. Среднее время синхронизации в MT5 ~1 мс.
 
fxsaber:
以上を踏まえて、Sleep(1)は各トレードの 後に入れるべきでしょうか?
 
Alexey Kozitsyn:
上記を踏まえて、Sleep(1)は各トレード 後に設定すべきでしょうか?
いいえ、同期時間はフローティングです。見る
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );
 
fxsaber:
いいえ、同期時間はフローティングです。参照
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );

実際には、Sleep(1)で十分な場合がほとんどです。

一般に、変更された取引環境そのものがまだ読み取れないのに、OrderSendから 変更された取引環境についての応答が来るのは非常に奇妙である。

 
Vasiliy Sokolov:

実務上、大半のケースでSleep(1)で十分です。

Sleep(0)で十分な場合もあります。しかし、すべてのケースに対応し、待ち時間を最小限にするための有効なソリューションが必要です。
 
fxsaber:
Sleep(0)でも十分な場合があります。しかし、すべてのケースに対応し、待ち時間を最小限にするための有効なソリューションが必要です。

なぜ、開発者が「風船さん」のバグを修正しなければならないのか?

で、しかもOrderSendAsync() がある。