MQL5에서 함께 배우고 쓰기 - 페이지 34

 
Yedelkin :

다음은 이해할 수 없는 결과를 생성하는 간단한 스크립트입니다.

누군가 이유가 무엇인지 설명할 수 있습니까? 숫자 254를 uchar 유형으로 명시적으로 캐스팅하면 의도한 대로 작동합니다.

메시지를 보내주셔서 감사합니다. 살펴보겠습니다.
 
Rosh :
메시지를 보내주셔서 감사합니다. 살펴보겠습니다.

ushort와 같은 이야기:

 void OnStart ()
  {
   for ( ushort i= 32760 ;i< 32775 ;i++)
     {
       switch (i> USHORT_MAX - 2 )
        {
         case    true :   Print ( __FILE__ , " " , __FUNCTION__ , ": " ,i, ">(USHORT_MAX-2) - true" );   break ;
         case    false :   Print ( __FILE__ , " " , __FUNCTION__ , ": " ,i, ">(USHORT_MAX-2) - false" );   break ;
        }
     }
  }
 

그리고 조건이 시작될 때 Mouzon이 켜지도록 하려면 어떻게 해야 합니까? 허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허허. 그래서 나는 생각했다 - Mouzon이 필요할 때 끼어들게 한 다음 나 자신))

도움말을 봤는데 잘 안 찾거나 다른 건 못 찾았어요))

 
기능을 봐 소리를 재생 ()
 
Rosh :
기능을 봐 소리를 재생 ()

큰 감사를 드린다)
 

견적 추적에 대한 질문입니다.

OrderSend() 함수에 대한 설명은 "시장가 주문을 할 때 OrderSend() 메소드의 성공적인 완료가 항상 트랜잭션의 성공적인 완료를 의미하지는 않습니다. 확인이 필요합니다 ... retcode의 값" . 저것들. 결론은 OrderSend()==true를 사용하면 여전히 requote를 얻을 수 있다고 제안합니다. 좋은.

그러나 " 거래 요청 결과 구조 " 섹션에 대한 예("결과 처리와 함께 거래 요청 보내기")에서 requote 메시지는 OrderSend() ==false인 경우에만 확인됩니다.

따라서 어떤 경우에 requotes를 추적합니까? OrderSend() 함수에서 반환된 모든 값에 대해 또는 OrderSend() ==false인 경우에만?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура результата торгового запроса - Документация по MQL5
 
Yedelkin :

견적 추적에 대한 질문입니다.

OrderSend() 함수에 대한 설명은 "시장가 주문을 할 때 OrderSend() 메서드의 성공적인 완료가 항상 성공적인 거래를 의미하지는 않습니다.

OrderSend()의 성공적인 실행은 요청의 유효성이 검사되고 실행을 위해 대기 중임을 의미합니다. 그러나 추가 운명은 보장되지 않습니다. 예를 들어 채우기 정책에 따라 처리 중에 주문이 취소될 수 있습니다.

그러나 일반적으로 requote가 있는 경우 OrderSend()는 확실히 실패했습니다.

 
Rosh :

OrderSend()의 성공적인 실행은 요청의 유효성이 검사되고 실행을 위해 대기 중임을 의미합니다. 그러나 추가 운명은 보장되지 않습니다. 예를 들어 채우기 정책에 따라 처리 중에 주문이 취소될 수 있습니다.

그러나 일반적으로 requote가 있는 경우 OrderSend()는 확실히 실패했습니다.

다시 말해서, requote 는 요청이 처음에 유효성 검사를 통과하지 못했다는 것을 의미합니까?
 
Yedelkin :
다시 말해서, requote는 요청이 처음에 유효성 검사를 통과하지 못했다는 것을 의미합니까?

예, 요청에 선언된 가격이 적합하지 않으며 MqlTradeResult 서버 응답 구조에서 얻을 수 있는 새 가격을 고려하라는 제안을 받았습니다.

 struct MqlTradeResult
  {
   uint      retcode;           // Код результата операции
   ulong     deal;             // Тикет сделки, если она совершена
   ulong     order;             // Тикет ордера, если он выставлен
   double    volume;           // Объем сделки, подтверждённый брокером
   double    price;             // Цена в сделке, подтверждённая брокером
   double    bid;               // Текущая рыночная цена предложения (цены реквота)
   double    ask;               // Текущая рыночная цена спроса (цены реквота)
   string    comment;           // Комментарий брокера к операции (по умолчанию заполняется расшифровкой)
  };

 
Rosh :

예, 요청에 선언된 가격이 적합하지 않으며 MqlTradeResult 서버 응답 구조에서 얻을 수 있는 새 가격을 고려하라는 제안을 받았습니다.

확인!

제가 너무 생각을 많이 하고 있는 것 같습니다만, 또 다른 질문이 있습니다. 시장가 주문 요청을 보내기 전에 (포지션을 열기 위해) 거래 티켓을 재설정합니다. 나는 result.deal=0을 한다. 서버가 MqlTradeResult 응답 구조에서 제로 거래 티켓을 반환하는 것이 가능하지만 동시에 거래가 조금 늦게 완료되고 포지션이 열릴 것입니까? 아니면 서버가 제로 트레이드 티켓을 반환하면 이 요청에 따라 포지션을 열 수 없고 앞으로 열지 않을 것이라고 보장합니까?