Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction() . В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.
간단히 말해서, OnTrade() 핸들러는 각 개별 거래에 대해 호출될 수 있습니다. 포지션을 청산한 결과 여러 개의 개별 거래가 발생할 수 있습니다.
이것은 확인하기 쉽습니다. 예제의 OnTrade()에 Print()를 추가하기만 하면 됩니다.
또한 이전 테스트에 따르면 OrderSendAsync()를 통해 주문 티켓을 찾을 것으로 기대한다는 점에 주의를 기울이고 싶습니다.
Обработчик OnTrade() вызывается после соответствующих вызовов OnTradeTransaction() . В общем случае нет точного соотношения по количеству вызовов OnTrade() и OnTradeTransaction(). Один вызов OnTrade() соответствует одному или нескольким вызовам OnTradeTransaction.
간단히 말해서, OnTrade() 핸들러는 각 개별 거래에 대해 호출될 수 있습니다. 포지션을 청산한 결과 여러 개의 개별 거래가 발생할 수 있습니다.
이것은 확인하기 쉽습니다. 예제의 OnTrade()에 Print()를 추가하기만 하면 됩니다.
물론 출력도 해봤습니다. 문제는 OnTrade에 대한 호출 수가 아니라 열린 포지션의 수였습니다.
첫 번째 OnTrade 이후 시장 주문이 이루어집니다. 다음 OnTrade에서 이 시장 주문은 조건에 따라 추가 주문을 허용하지 않아야 합니다. 그러나 후속 OnTrades에서도 OrdersTotal() + PositionsTotal()의 합은 0입니다. 맞나요?
Успешное выполнение означает только факт отсылки, но не даёт никакой гарантии, что запрос дошел до торгового сервера и был принят для обработки. Торговый сервер при обработке полученного запроса отправляет клиентскому терминалу ответное сообщение об изменении текущего состояния позиций, ордеров и сделок, которое приводит к генерации события Trade .
따라서 OrdersTotal()은 확실히 null일 수 있습니다. 뿐만 아니라 PositionsTotal(). 그것은 모두 거래, 유형 및 내용에 따라 다릅니다.
"и режим вывода сообщений в журнал "Эксперты". По умолчанию выводятся все детали.\r\n" //| Expert initialization function | //| Expert deinitialization function | //| TradeTransaction function |...
현재 포지션과 주문이 없는 계정에서 이 Expert Advisor를 실행하는 경우.
그런 다음 Expert Advisor가 오픈한 포지션을 손으로 닫으면 헤지에서 3개의 오픈 포지션 이 나타납니다(트리플 볼륨의 네팅 포지션에서).
이것이 올바른 행동입니까? 아마도 터미널이 어떻게 작동하는지 오해하고 있습니다. 그럼 설명 부탁드립니다.
먼저 도움말을 읽어야 합니다.
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에서 이 시장 주문은 조건에 따라 추가 주문을 허용하지 않아야 합니다. 그러나 후속 OnTrades에서도 OrdersTotal() + PositionsTotal()의 합은 0입니다. 맞나요?
덕분에 복사붙여넣기를 못 봤습니다.
어디에도 없는 것 같습니다. OnTrade의 HistorySelect 시차만 표시됩니다.
주문 선택 캐싱이 오늘 개선되었으며 몇 시간 내에 베타 버전이 제공될 예정입니다.
주문 선택 캐싱이 오늘 개선되었으며 몇 시간 내에 베타 버전이 제공될 예정입니다.
HistorySelect를 의미합니까? 자동 링크가 OrderSelect로 연결되지 않을 뿐입니다.
mt5에 '커미션' 탭이 없는 이유를 아십니까? 거래가 종료된 후에만 나타납니다.
mt5에 "커미션" 탭이 없는 이유를 아십니까? 거래가 완료된 후에만 나타납니다.
물론 출력도 해봤습니다. 문제는 OnTrade에 대한 호출 수가 아니라 열린 포지션의 수였습니다.
첫 번째 OnTrade 이후 시장 주문이 이루어집니다. 다음 OnTrade에서 이 시장 주문은 조건에 따라 추가 주문을 허용하지 않아야 합니다. 그러나 후속 OnTrades에서도 OrdersTotal() + PositionsTotal()의 합은 0입니다. 맞나요?
모든 것이 도움말에 있습니다: https://www.mql5.com/en/docs/trading/ordersendasync
모든 것이 도움말에 있습니다: https://www.mql5.com/en/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
식별자
설명
ORDER_STATE_STARTED
주문이 정확한지 확인했지만 브로커가 아직 수락하지 않았습니다.
성공적인 OrderSendAsync 후에 시작됨 상태가 발생하지 않습니까?