MT5とスピードの関係 - ページ 31

 
fxsaber:

このEAを現在のポジションや注文がない口座で実行した場合。

で、EAで開いたポジションを手動で決済すると、ヘッジに3つのオープンポジションが 存在することになります(正味3倍量のポジションで)。


これは正しい動作なのでしょうか?私はおそらく、Terminalを正しく理解していないのだと思います。それなら、はっきり言ってください。

まずはヘルプを読んでみてください。

https://www.mql5.com/ru/docs/event_handlers/ontrade

ご注意ください。

Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction(). В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.

簡単に言うと、OnTrade()ハンドラを個々の取引ごとに呼び出すことができます。ポジションを決済した結果、いくつかの個別の取引が発生することがあります。

これは簡単に確認できます。例のOnTrade()にPrint()を追加するだけです。

さらに、前回のテストでは、OrderSendAsync()を通してオーダーチケットを知ることを無駄に期待していることに注意を喚起したいと思います。

Документация по MQL5: Обработка событий / OnTrade
Документация по MQL5: Обработка событий / OnTrade
  • www.mql5.com
//|                                               OnTrade_Sample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Anton:

さらに、私はあなたの前のテストによると、あなたはOrderSendAsync()を介して注文チケットを見つけるために無駄な期待をしていることに注意を払いたい。

どこにもないようです。OnTradeでHistorySelectのみ 遅延する。

 
fxsaber:

どこにもないようです。OnTradeのHistorySelectのラグのみ表示されます。

if (PositionSelectByTicket(Result.order)) // Если позиция открыта - закрываем.
 
Anton:

まず、ファクトシートを読むことです。

https://www.mql5.com/ru/docs/event_handlers/ontrade

ご注意ください。

Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction(). В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.

簡単に言うと、OnTrade()ハンドラは、個々の取引ごとに呼び出すことができます。ポジションを決済した結果、いくつかの個別の取引が発生することがあります。

これは簡単に確認できます。例のOnTrade()にPrint()を追加するだけです。

もちろん、プリントも作りました。質問は、OnTradeコールの数ではなく、オープンポジションの数についてでした。

最初のOnTradeの後、成行注文が発注されます。次のOnTradeでは、この成行注文は条件によってさらに注文を開くことができないようにしなければなりません。しかし、次のOnTradeでは、OrdersTotal() + PositionTotal()の合計もゼロになる。これでいいのでしょうか?

 
Anton:

ありがとうございます、コピペ作品は見てませんでした。

 
fxsaber:

どこにもないようです。OnTradeのHistorySelectのラグのみ表示されます。

注文 選択のキャッシュは今日も改善され、数時間後にはベータ版となる予定です。

 
Renat Fatkhullin:

注文 選択のキャッシュは今日も改善され、数時間後にはベータ版となる予定です。

HistorySelectのことでしょうか?自動リンクだけでは、OrderSelectにつながらない。

 
Nelson Wanyama:

なぜmt5には'Commissions'タブがないのか、何か心当たりはありますか?取引終了後にのみ表示されます。

なぜmt5には'Commissions'タブがないのですか?取引終了後にのみ表示されます。


 
fxsaber:

もちろん、プリントアウトはしました。質問は、OnTradeコールの数ではなく、オープンポジションの数についてでした。

最初のOnTradeの後、成行注文が発注されます。次のOnTradeでは、この成行注文は条件によってさらに注文を開くことができないようにしなければなりません。しかし、次のOnTradeでは、OrdersTotal() + PositionTotal()の合計もゼロになる。これでいいのでしょうか?

全てはヘルプにありhttps://www.mql5.com/ru/docs/trading/ordersendasync

Успешное выполнение означает только факт отсылки, но не даёт никакой гарантии, что запрос дошел до торгового сервера и был принят для обработки.  Торговый сервер при обработке полученного запроса отправляет клиентскому терминалу ответное сообщение об изменении текущего состояния позиций, ордеров и сделок, которое приводит к генерации события Trade.
ですから、OrdersTotal()は間違いなくNULLになり得ます。PositionsTotal() も同様です。すべては取引、その種類と内容に依存します。
Документация по MQL5: Торговые функции / OrderSendAsync
Документация по MQL5: Торговые функции / OrderSendAsync
  • www.mql5.com
"и режим вывода сообщений в журнал "Эксперты". По умолчанию выводятся все детали.\r\n" //| Expert initialization function                                   | //| Expert deinitialization function                                 | //| TradeTransaction function                                        |...
 
Anton:

全てはヘルプに記載されています。https://www.mql5.com/ru/docs/trading/ordersendasync

Успешное выполнение означает только факт отсылки, но не даёт никакой гарантии, что запрос дошел до торгового сервера и был принят для обработки.
ですから、OrdersTotal()は確かにNULLになり得ます。PositionsTotal() も同様です。

https://www.mql5.com/ru/docs/constants/tradingconstants/orderproperties#enum_order_state

各注文には、その状態を表すステータスがあります。情報を取得するには、OrderGetInteger() またはHistoryOrderGetInteger() 関数に ORDER_STATE 修飾子を付けて使用します。有効な値はENUM_ORDER_STATE列挙に格納される。

enum_order_state

識別子

商品説明

注文状態開始

注文が正しいことを確認したが、ブローカーがまだ受理していない状態



OrderSendAsyncが成功した後、Started-stateは発生しないのでしょうか?