Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction(). В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.
Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction(). В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.
Успешное выполнение означает только факт отсылки, но не даёт никакой гарантии, что запрос дошел до торгового сервера и был принят для обработки. Торговый сервер при обработке полученного запроса отправляет клиентскому терминалу ответное сообщение об изменении текущего состояния позиций, ордеров и сделок, которое приводит к генерации события Trade.
"и режим вывода сообщений в журнал "Эксперты". По умолчанию выводятся все детали.\r\n" //| Expert initialization function | //| Expert deinitialization function | //| TradeTransaction function |...
このEAを現在のポジションや注文がない口座で実行した場合。
で、EAで開いたポジションを手動で決済すると、ヘッジに3つのオープンポジションが 存在することになります(正味3倍量のポジションで)。
これは正しい動作なのでしょうか?私はおそらく、Terminalを正しく理解していないのだと思います。それなら、はっきり言ってください。
まずはヘルプを読んでみてください。
https://www.mql5.com/ru/docs/event_handlers/ontrade
ご注意ください。
簡単に言うと、OnTrade()ハンドラを個々の取引ごとに呼び出すことができます。ポジションを決済した結果、いくつかの個別の取引が発生することがあります。
これは簡単に確認できます。例のOnTrade()にPrint()を追加するだけです。
さらに、前回のテストでは、OrderSendAsync()を通してオーダーチケットを知ることを無駄に期待していることに注意を喚起したいと思います。
さらに、私はあなたの前のテストによると、あなたはOrderSendAsync()を介して注文チケットを見つけるために無駄な期待をしていることに注意を払いたい。
どこにもないようです。OnTradeでHistorySelectのみ 遅延する。
どこにもないようです。OnTradeのHistorySelectのラグのみ表示されます。
まず、ファクトシートを読むことです。
https://www.mql5.com/ru/docs/event_handlers/ontrade
ご注意ください。
簡単に言うと、OnTrade()ハンドラは、個々の取引ごとに呼び出すことができます。ポジションを決済した結果、いくつかの個別の取引が発生することがあります。
これは簡単に確認できます。例のOnTrade()にPrint()を追加するだけです。
もちろん、プリントも作りました。質問は、OnTradeコールの数ではなく、オープンポジションの数についてでした。
最初のOnTradeの後、成行注文が発注されます。次のOnTradeでは、この成行注文は条件によってさらに注文を開くことができないようにしなければなりません。しかし、次のOnTradeでは、OrdersTotal() + PositionTotal()の合計もゼロになる。これでいいのでしょうか?
ありがとうございます、コピペ作品は見てませんでした。
どこにもないようです。OnTradeのHistorySelectのラグのみ表示されます。
注文 選択のキャッシュは今日も改善され、数時間後にはベータ版となる予定です。
注文 選択のキャッシュは今日も改善され、数時間後にはベータ版となる予定です。
HistorySelectのことでしょうか?自動リンクだけでは、OrderSelectにつながらない。
なぜmt5には'Commissions'タブがないのか、何か心当たりはありますか?取引終了後にのみ表示されます。
なぜmt5には'Commissions'タブがないのですか?取引終了後にのみ表示されます。
もちろん、プリントアウトはしました。質問は、OnTradeコールの数ではなく、オープンポジションの数についてでした。
最初のOnTradeの後、成行注文が発注されます。次のOnTradeでは、この成行注文は条件によってさらに注文を開くことができないようにしなければなりません。しかし、次のOnTradeでは、OrdersTotal() + PositionTotal()の合計もゼロになる。これでいいのでしょうか?
全てはヘルプにありhttps://www.mql5.com/ru/docs/trading/ordersendasync
全てはヘルプに記載されています。https://www.mql5.com/ru/docs/trading/ordersendasync
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は発生しないのでしょうか?