OrderSendAsync() 함수 - 페이지 4

 

동료 여러분, 이 아이디어는 어떻습니까? 이러한 구조( MqlPacketTradeResult )에서 완료된 주문 수 등을 나타내는 필드를 지정할 수 있습니다.


 bool   OrderSendAsync(
   MqlPacketTradeRequest&   packet_request,       // пакетная структура запроса
   MqlPacketTradeResult&    packet_result         // пакетная структура ответа
   );
 
denkir :

동료 여러분, 이 아이디어는 어떻습니까? 이러한 구조( MqlPacketTradeResult )에서 완료된 주문 수 등을 나타내는 필드를 지정할 수 있습니다.

그러나 이를 위해서는 OrderSendAsync() 함수 내에서 서버의 응답을 기다려야 합니다. 그리고 OrderSendAsync() 함수 의 비동기는 무효가 될 것입니다. Renat은 이미 OrderSendAsync()가 트리거된 후 속임수를 시도할 수 있는 다른 기능이 있을 것이라고 약속했습니다.
 
Yedelkin :
Но для этого придётся дожидаться ответа от сервера в рамках функции OrderSendAsync(). И асинхронность функции OrderSendAsync() сойдёт на нет. Ренат же уже пообещал, что будут иные функции, с помощью которых можно попытаться похимичить после срабатывания OrderSendAsync().

예, 비동기에 대해 생각하지 않았습니다 ...

다음과 같이:

 bool   OrderSendAsync(
   MqlPacketTradeRequest&   packet_request,       // пакетная структура запроса
   );

bool   OrderReceiveAsync(
   MqlPacketTradeResult&    packet_result         // пакетная структура ответа
   );
 
denkir :

예, 비동기에 대해 생각하지 않았습니다 ...

다음과 같이:

비동기는 응답을 기다리지 않고 작업하는 것을 의미합니다. 목표물이 맞았는지 확인하지 않고 실행(OrderSenAsync)하고 실행했습니다. 시간이 없기 때문입니다.

간접적인 대답은 나중에 나온 소리(OnTrade)입니다. 이 샷이 목표물에 맞았거나 무언가가 방금 떨어졌을 수도 있습니다. 여기에서 원하는 경우 살펴보고 볼 수 있습니다(모든 주문, 거래, 위치 등 확인).

 
denkir :

예, 비동기에 대해 생각하지 않았습니다 ...

다음과 같이:

자, 그럼 이미 OrderSend Packet Async () , OrderReceive Packet Async :) 이미 존재하는 비동기 모드에서 단일 요청을 보내는 것이 가능한 상태로 남아 있고 나중에 이에 대한 정보를 검색할 수 있습니다.
 
Rosh :

간접적인 대답은 나중에 나온 소리(OnTrade)입니다. 이 샷이 목표물에 맞았거나 무언가가 방금 떨어졌을 수도 있습니다. 여기에서 원하는 경우 살펴보고 볼 수 있습니다(모든 주문, 거래, 위치 등 확인).

그래서 그는 OnTrade()에서 특정 OrderReceiveХХХ() 함수를 사용하여 들어오는 모든 Trade 이벤트에 응답하지 않고 비동기 대기열과 관련된 이벤트에만 응답할 수 있도록 제안합니다.
 
Rosh :

비동기는 응답을 기다리지 않고 작업하는 것을 의미합니다. 타겟이 맞았는지 확인하지 않고 실행(OrderSenAsync)하고 실행했습니다. 시간이 없기 때문입니다.

간접적인 대답은 나중에 나온 소리(OnTrade)입니다. 이 샷이 목표물에 맞았거나 무언가가 방금 떨어졌을 수도 있습니다. 여기에서 원하는 경우 살펴보고 볼 수 있습니다(모든 주문, 거래, 위치 등 확인).

비동기 모드에서 거래한 경험이 거의 없거나 그러한 작업에 대한 MT5 기능이 약하기 때문에 약간의 부정 행위를 하고 있습니다.

비동기는 비동기를 위해 필요하지 않습니다. 그리고 유익한 경우에만 사용됩니다. 예를 들어, 포트폴리오를 거래할 때, 예를 들어 포트폴리오를 지금 여기에서 사거나 재조정해야 할 때. 저것들. 한 번에 현재 가격에서 다른 기호에 대해 12개 또는 2개의 거래 주문 을 만드십시오.

그리고 당신이 설명한 방식으로 비동기를 처리한다면 아무도 이것을 하지 않을 것입니다. 그리고 현재 네트 위치에 따라 샷에 대한 반응을 평가합니다. 응답은 각 거래 주문에 대해 구체적이어야 합니다.

거부된 경우 - 이에 대한 소식을 받거나 다른 답변을 받아야 합니다. 레켓이 있었는지 아닌지 추측하는 대신에 넷 포지션이 1~2초도 변하지 않았기 때문이다.

이 토론의 첫 페이지에는 다이어그램과 들어오는 이벤트 메시지가 있습니다. 그들은 갑자기 나타나지 않았지만 비동기 모드에서 다년간의 경험을 가지고 있습니다. 따라서 혐오감없이 그러한 아키텍처에주의를 기울일 가치가 있습니다.

 
denkir :

동료 여러분, 이 아이디어는 어떻습니까? 이러한 구조( MqlPacketTradeResult )에서 완료된 주문 수 등을 나타내는 필드를 지정할 수 있습니다.

애플리케이션 배치에 항상 동일한 채워진 필드가 있다고 가정합니까?

동일한 응용 프로그램 팩인 IMHO는 데모용으로만 필요하며 다른 기호에 대한 응용 프로그램은 볼륨이 다르며 물론 작업에 다른 방향이 사용됩니다. 따라서 각 게스트를 개별적으로 확인해야 하므로 팩으로 보낼 필요가 없습니다.

그리고 당신이 제안하는 것은 단지 for 루프를 감싸는 것입니다.

 
Urain :

애플리케이션 배치에 항상 동일한 채워진 필드가 있다고 가정합니까?

동일한 응용 프로그램 팩인 IMHO는 데모용으로만 필요하며 다른 기호에 대한 응용 프로그램은 볼륨이 다르며 물론 작업에 다른 방향이 사용됩니다. 따라서 각 게스트를 개별적으로 확인해야 하므로 팩으로 보낼 필요가 없습니다.

그리고 당신이 제안하는 것은 단지 for 루프를 감싸는 것입니다.

그리고 주기적으로 각 요청 을 채우는 것을 방해하는 것은 무엇 입니까? 그런 다음 주기적으로 결과 를 처리합니까?
 
denkir :
그리고 주기적으로 각 요청 을 채우는 것을 방해하는 것은 무엇 입니까? 그런 다음 주기적으로 결과 를 처리합니까?

귀하의 제안이 기존 기능을 보완하기만 하면 아무 것도 하지 않습니다. 그렇지 않으면 간단한 MqlPacketTradeRequest 구조가 어떻게 ...

 bool   OrderSendAsync(
   MqlPacketTradeRequest&   packet_request,       // пакетная структура запроса
   MqlPacketTradeResult&    packet_result         // пакетная структура ответа
   );

... 다른 주문에 대한 요청을 보낼 수 있지만 MqlPacketTradeRequest 구조가 MqlTradeRequest 구조의 동적 배열 구조인 경우 간단한 요청 구조용으로 설계된 서버의 전체 논리가 손상될 수 있습니다.

다시 말해, 터미널 수준에서 이 패킷은 별도의 요청으로 분할되어야 하며, 이는 이 과부하를 도입하는 전체 포인트를 무효화합니다.

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