OnTicaretİşlem - sayfa 5

 
Anatoli Kazharski :
Evet böyle bir şey. Sadece henüz test etmedim.

Denemek...

Katma

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

Bu yöntemde yanlış olan neydi?

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

Ve bilinen son SL ve TP pozisyonlarının işlem fiyatıyla örtüşmeyebileceği ve karşılaştırılacak hiçbir şey olmayacağı ve tam olarak neyin işe yaradığını belirlemek mümkün olmayacak!

Ve sen, ben senin kodlarına bakarım, paylaşmayı sevmem, başkalarınınkini zevkle izlerim...

Bu her zaman işe yaramaz:

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 :
Denemek...
Bir şekilde deneyeceğim elbette. Teşekkür ederim. Şu anda diğer görevlerle meşgul.
 
prostotrader :

Bu yöntemde yanlış olan neydi?

my_order_ticket'i saklamak gerekli
 
fxsaber :
my_order_ticket'i saklamak gerekli

Ne hakkında olduğunu biliyor musun?

my_order_ticket - pozisyonun ömrü boyunca iseniz bu sipariş yayında

ayrıca siparişlerle çalışın (bunları saklamak zorundasınız).

 
fxsaber :
my_order_ticket'i saklamak gerekli
Ve sadece .
 
Anatoli Kazharski :
Bir şekilde deneyeceğim elbette. Teşekkür ederim. Şu anda diğer görevlerle meşgul.
Mutlu kod!
 
Andrey Dik :
Ve sadece .

Evet, aslında, OnTradeTransaction sorunlarıyla karşılaştırarak mevcut ortamı kendiniz korumanız ve saklamanız önerilir.

Bu bir çözüm değil.

 
fxsaber :

Evet, aslında, OnTradeTransaction sorunlarıyla karşılaştırarak mevcut ortamı kendiniz korumanız ve saklamanız önerilir.

Bu bir çözüm değil.

Konuyu yakından takip etmiyorsunuz. :)

Konu başlatıcı başlangıçta şunları yazdı:

" OnTradeTransaction'da () SL/TP'nin işe yaradığını nasıl öğrenebilirim? "

Çözüm ne olmalı?

Pozisyonun kendisi dışında hiçbir şeyi hatırlamamak ve hiçbir şeyi kontrol etmemek mümkündür.

Diğer siparişlerle işlem yapmadınız

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

  }
break ;
 
prostotrader :

Sadece konuyu yakından takip etmiyorsun. :)

Konu başlatıcı başlangıçta şunları yazdı:

Çok dikkatsizsin, konu başlatıcı değilim.

Bunun gibi bir kod gösterir misiniz:

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

Peki, nedir - kim kendisi eklemeli, beğenmezse - bir iş var! Ne olmuş?