OnTradeTransaction 기능에 대한 질문 - 페이지 3

 
Mikalas :

:)

1. 요새의 예

2. 중단점을 설정할 수 없습니까?

3. 줄을 통해 메시지를 읽는 것 같습니다 :)

아니요, 다음 줄을 통해 작성하는 같습니다.

 void OnTick ()
{
   MqlTick a_tick; //Зачем этот зазор ниже?
                                           
   if ( SymbolInfoTick ( _Symbol , a_tick ) )
  {
    PlaceOrder( _Symbol , a_tick.ask, 1 , false );   //Устанавливаем ордер
  }     
}

:)) 중단점을 설정했지만 여전히 이해하지 못했습니다. 죄송합니다. 귀하의 코드는 추악합니다. 먼저 주문이 전송된 다음 OnTradeTransaction 및 CheckOrder()에서 의미 없는 검사가 수행됩니다. 체크 오더에서는 볼륨도 계산됩니다.

서로 고문하지 맙시다. 최소한 코드에 대한 간단한 주석(작성자가 말하고 싶었던 것, 그가 달성하려고 했던 목표)을 제공하고 저는 그것을 피상적이지 않은 분석을 하려고 노력할 것입니다. 지금과 같은 형태로 다시 호출하고 싶지 않습니다.

 
Mikalas :

:)

다음을 해보자.

내가 당신에게 질문을 하고 당신이 대답할 것입니다, 알겠죠?

...

하자!
미칼라스 :

질문 1. TradeTransaction 이벤트가 도착하지 않았거나 사용되지 않은 경우 Order Ticket(OrderSendAsync 명령을 전송하여)을 어떻게 알 수 있습니까?

나는 TrackingHistoryOrders 함수를 통해 주문 티켓을 찾습니다. 왜냐하면 조만간 주문이 실행될 것이고 이 함수가 분석할 주문 내역 에 들어갈 것이기 때문입니다.

 
C-4 :

당신이 줄을 통해 쓰는 것 같습니다 :

중단점을 넣었지만 여전히 이해하지 못했습니다. 죄송합니다. 하지만 귀하의 코드는 추악합니다. 먼저 주문이 전송된 다음 OnTradeTransaction 및 CheckOrder()에서 의미 없는 검사가 수행됩니다. 체크 오더에서는 볼륨도 계산됩니다.

서로 고문하지 맙시다. 최소한 코드에 대한 간단한 주석(작성자가 말하고 싶었던 것, 그가 달성하려고 했던 목표)을 제공하고 저는 그것을 피상적이지 않은 분석을 하려고 노력할 것입니다. 지금과 같은 형태로 다시 호출하고 싶지 않습니다.

:) :) :)

나는 더 이상 젊은이가 아니며(9년 전 사진) 더 나은 인식을 위해 코드에 "틈"을 만드는 것이 더 편리합니다.

또한 100자의 행과 열을 함께 쓰지 않을 때 많은 사람들 이 코드를 읽는 것이 더 편리합니다.

"추한"은 당신이 당신의 방법을 발명하는 데 시간을 투자했기 때문에 당신의 의견에 있습니다

OrderSendAsync 명령의 주문을 추적하므로 귀하의 코드와 다른 코드 = 못생긴 것 같습니다! :)

원리는 매우 간단하며 이 문제에 대한 토론에 참여했기 때문에 알고 있습니다.

문제에 대한 솔루션은 Yurich 가 제안했으며 OrderSendAsync 명령의 각 순서에 대해

자체 Magic이 있는 경우 이 주문은 TradeTransaction 이벤트가 오지 않았다면 (마법으로) 찾기가 매우 쉽습니다.

각 기호에 대해 매직 번호 범위 가 할당됩니다(예: AUDUSD의 경우 1010000에서 1019999까지).

EURUSD의 경우 1020000 ~ 1029999

이러한 고유 번호는 시간이 지남에 따라 반복될 수 있습니다.

 if ( mem_magic >= ( magic_number + 9999 ) ) mem_magic = magic_number;   //Переполнение, начинаем сначала

, 다른 주문을 "적중"하지 않기 위해 변수(datetime mem_time;)가 있습니다.

주문 날짜와 시간을 저장하여 정확하고 거의 즉시 주문을 찾을 수 있습니다.

계속하시겠습니까?

 
C-4 :
하자!

나는 TrackingHistoryOrders 함수를 통해 주문 티켓을 찾습니다. 왜냐하면 조만간 주문이 실행될 것이고 이 함수가 분석할 주문 내역 에 들어갈 것이기 때문입니다.

좋습니다. 하지만 늦지 않고 일찍 필요합니다(주문은 하루 동안 "중단"될 수 있으며 기록에 남지 않음)

수정하고 싶어요!

삭제하고 싶어요!

 

전체 희극과 많은 보조 코드가 이 문구에서 나옵니다. 또한 서버에서 터미널로 배달하는 동안 트랜잭션이 손실될 수 있습니다.

누구든지 상황을 설명 할 수 있습니까? 특히 개인 거래를 잃을 수 있는 사람은 누구입니까(거래소가 종료되고 브로커가 닫히고 MQ MT5 서버가 엉망이 됨)?

MQ가 트랜잭션 전달을 보장하지 않는 이유는 무엇입니까?

 
Serj_Che :

전체 희극과 많은 보조 코드가 이 문구에서 나옵니다. 또한 서버에서 터미널로 배달하는 동안 트랜잭션이 손실될 수 있습니다.

누구든지 상황을 설명 할 수 있습니까? 특히 개인 거래를 잃을 수 있는 사람은 누구입니까(거래소는 실패하고 브로커는 폐쇄됨)?

MQ가 트랜잭션 전달을 보장하지 않는 이유는 무엇입니까?

네 누구에게나 이득이 되는건 아니고 그냥 MQ의 '손이 닿지 않는다' 해서 한번에 다 하는건데 프로젝트가 많긴 하지만

재능있는 프로그래머가 거의 없으므로 시간이 부족합니다 ...

물론 그렇게 할 것입니다. (그들은 추적 메커니즘 자체를 제외하고 이미 이것에 대한 모든 것을 가지고 있습니다).

 
Vasily, 티켓이 없는 경우 OrderSendAsync 주문을 어떻게 수정(삭제)할 수 있습니까?
 
Mikalas :

네, 누구에게나 이득이 되는 것은 아니고, MQ의 '손이 닿지 않는다'는 것만으로 모든 것을 한 번에 하는 것이지만, 프로젝트가 많지만

재능있는 프로그래머가 거의 없으므로 시간이 부족합니다 ...

물론 그렇게 할 것입니다. (그들은 추적 메커니즘 자체를 제외하고 이미 이것에 대한 모든 것을 가지고 있습니다).

내가 이해하는 한, 교환은 모든 것을 제공합니다. 또한 일반 중개인이 무언가를 잃는 것은 이치에 맞지 않습니다.

MQ처럼 보입니다. MQ MetaTrader5의 경우 거래소와의 통합도 우선순위가 아닙니다.

 
Serj_Che :

내가 이해하는 한, 교환은 모든 것을 제공합니다. 또한 일반 중개인이 무언가를 잃는 것은 이치에 맞지 않습니다.

MQ처럼 보입니다. MQ MetaTrader5의 경우 거래소와의 통합도 우선순위가 아닙니다.

예, 이것은 거래소에 주방이 없고(커미션만) FOREX에는 수백만 명의 MMM 추종자가 있기 때문입니다.

100달러가 있을 수 있지만 여러분! 엄청난 돈, 계산할 것이 있습니다! :)

 

바실리, 답이 있을까?

나는 아니라고 생각한다.

내가이 겄어?