거래 중 거래 - 페이지 5

 
Anatoli Kazharski :
예, 그런 것입니다. 아직 테스트하지 않았을 뿐입니다.

노력하다...

추가됨

case TRADE_TRANSACTION_DEAL_ADD :
   if (trans.order != my_order_ticket)
  {
     if (trans.symbol== Symbol ())
    {
       if (проверяем магик)
      {    
         //Сработал SL или TP
      }
    }
  }
break ;
 
prostotrader :

이 방법에 무엇이 문제였습니까?

case TRADE_TRANSACTION_DEAL_ADD :
   if (trans.order != my_order_ticket)
  {
   //Сработал SL или TP
  }
break ;

그리고 마지막으로 알려진 SL 및 TP 위치가 거래 가격 과 일치하지 않을 수 있으며 비교할 대상이 없으며 정확히 무엇이 작동했는지 결정할 수 없다는 사실!

그리고 당신은 내 코드를보고 공유하기를 좋아하지 않지만 다른 사람들을 즐겁게 볼 것입니다 ...

항상 작동하는 것은 아닙니다.

int     G_LastTicket  = 0 ;   //Последний известный тикет
double G_LastSLlevel = 0.0 ; //Последний известный уровень SL
double G_LastTPlevel = 0.0 ; //Последний известный уровень TP
//——————————————————————————————————————————————————————————————————————————————
void    OnTradeTransaction ( const MqlTradeTransaction &trans,   // структура торговой транзакции
                           const MqlTradeRequest      &request, // структура запроса
                           const MqlTradeResult       &result)   // структура ответа
{
   if (trans.type == TRADE_TRANSACTION_DEAL_ADD )
  {
     if (PositionsAny (G_Symbol))
    {
      G_LastSLlevel = GetSLlevel (G_Symbol);
      G_LastTPlevel = GetTPlevel (G_Symbol);
       Print ( "SLlevel: " + G_LastSLlevel);
       Print ( "TPlevel: " + G_LastTPlevel);
    }
    
     if (trans.deal != G_LastTicket)
    {
       if (trans.price == G_LastSLlevel)
         Print ( "Сработал SL" );
        
       if (trans.price == G_LastTPlevel)
         Print ( "Сработал TP" );
    }
  }
}
 
prostotrader :
노력하다...
물론 어떻게든 노력하겠습니다. 고맙습니다. 현재 다른 작업으로 바쁘다.
 
prostotrader :

이 방법에 무엇이 문제였습니까?

my_order_ticket 을 저장해야 합니다.
 
fxsaber :
my_order_ticket 을 저장해야 합니다.

당신은 그것이 무엇에 대해 알고 있습니까?

my_order_ticket - 이 주문은 귀하가 해당 직책 의 수명 동안에 있는 경우 라이브입니다.

추가로 주문과 함께 작동합니다(당신은 그것들을 보관할 의무가 있습니다).

 
fxsaber :
my_order_ticket 을 저장해야 합니다.
뿐만 아니라 .
 
Anatoli Kazharski :
물론 어떻게든 노력하겠습니다. 고맙습니다. 현재 다른 작업으로 바쁘다.
행복한 코드!
 
Andrey Dik :
뿐만 아니라 .

예, 실제로 현재 환경을 직접 유지 및 저장하고 OnTradeTransaction이 문제를 일으키는 것과 비교하는 것이 좋습니다.

이것은 해결책이 아닙니다.

 
fxsaber :

예, 실제로 현재 환경을 직접 유지 및 저장하고 OnTradeTransaction이 문제를 일으키는 것과 비교하는 것이 좋습니다.

이것은 해결책이 아닙니다.

당신은 스레드를 밀접하게 따르지 않고 있습니다. :)

토픽 스타터는 원래 다음과 같이 썼습니다.

" OnTradeTransaction ()에서 SL/TP가 작동했는지 어떻게 알 수 있습니까? "

해결책은 무엇이어야 합니까?

위치 자체를 제외하고는 아무것도 기억하지 않고 아무것도 확인하지 않을 수 있습니다.

다른 주문으로 작업하지 않았습니다.

case TRADE_TRANSACTION_DEAL_ADD :
   if (! PositionSelect ( Symbol ())
  {
   //Сработал SL или TP

  }
break ;
 
prostotrader :

당신은 스레드를 밀접하게 따르지 않고 있습니다. :)

토픽 스타터는 원래 다음과 같이 썼습니다.

당신은 매우 부주의합니다. 나는 주제를 시작하는 사람이 아닙니다.

다음과 같은 코드를 표시하시겠습니까?

//——————————————————————————————————————————————————————————————————————————————
void    OnTradeTransaction ( const MqlTradeTransaction &trans,   // структура торговой транзакции
                           const MqlTradeRequest      &request, // структура запроса
                           const MqlTradeResult       &result)   // структура ответа
{
  
}  

글쎄, 그것은 무엇입니까 - 그가 그것을 좋아하지 않는다면 누가 직접 추가해야합니까? 직업이 있습니다! 그래서 무엇?