[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 627

 
lottamer :

Zararı durdurmayı bir şekilde değiştirmek mümkün mü, ancak aynı zamanda bir satırda kâr al seçeneğine dokunmayın (bundan bahsetmeyin, yani daha önce diğer işlevler tarafından ayarlandığı gibi kalması gerekir)

OrderModify(OrderTicket(),0,stop_loss, ???, 0,CLR_NONE);

OrderModify(OrderTicket(),OrderLots( ),stop_loss,OrderTakeProfit( ), 0, CLR_NONE );

Dur, çok şey var - 0.

 
Aynı zamanda bu siparişin de OrderSelect tarafından önceden seçilmesi gerekir. Ve sonra zaten bu tırmık üzerine bastım, aksi takdirde çoğu zaman bilet herhangi bir şey olabilir.
 
Dimka-novitsek :
Aynı zamanda bu siparişin de OrderSelect tarafından önceden seçilmesi gerekir. Ve sonra zaten bu tırmık üzerine bastım, aksi takdirde çoğu zaman bilet herhangi bir şey olabilir.

Evet evet daha doğrusu bilet sizin belirttiğiniz bilet olacaktır ancak herhangi bir sipariş için OrderLots( ) ve OrderTakeProfit( ) değerlerini döndürebilir.
 

Günaydın!

Kategorik olarak çözemiyorum - takip eden durdurma koşulları çalışmıyor.

 //***************************************   
 
 bool nahodka= false ;
  
 if ( OrderSelect (tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
 if (OrderTakeProfit( )- 3 * Point <profit&&OrderTakeProfit( )+ 3 * Point >profit) nahodka= true ;     // Находим ордер, сработавший именно по тейкпрофиту 
   
 if (nahodka){ if ( OrderSelect (tucket,SELECT_BY_TICKET)){
 if (OrderStopLoss( )<Bid-treylingstop* Point ){ Print ( "втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop* Point , OrderTakeProfit(), 0 , CLR_NONE );}}}
 if (BUY == 0 ) {perenos= false ;srabotka= false ;nahodka= false ;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL

Bu yüzden sipariş hemen seçiliyor, henüz tarihe geçmemişken, ki bunu hiç anlamıyorum !!

 //***************************************   
 
  nahodka= false ;
 
 for (i= 0 ; i<=OrdersHistoryTotal(); i++) {
 if (! OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue ;
 if (OrderSymbol()!= Symbol ()) continue ; 
 if (OrderMagicNumber() != 450 ) continue ; 
 if (tocket==OrderTicket()) 
 if (OrderTakeProfit( )- 3 * Point <profitsell&&OrderTakeProfit( )+ 3 * Point >profitsell) nahodka= true ;}
     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if (nahodka){ if ( OrderSelect (tecket,SELECT_BY_TICKET)){
 if (OrderStopLoss( )>Bid+treylingstop* Point ){ Print ( "четвёртаямодифи    " );
 OrderModify(  tecket, OrderOpenPrice(), Bid+treylingstop* Point , OrderTakeProfit(), 0 , CLR_NONE );}}}
 for ( i = OrdersTotal () - 1 ; i >= 0 ; i--)

Ve şimdi durum daha iyi! Bu tür çan ve ıslıklarla, düzen en azından zaten tarihteyken seçilir.

Ancak beş veya onda bir, nahodka doğru olarak değerlendirilmez ve başka bir değişiklik yapılmaz!!

 
Evet, aynen!!
 

Örneğin, satın almayı nasıl değiştirmediği burada anlatılmaktadır - ve bu bir ayna durumudur ve ayrıca her zaman çalışmaz.

İşte burası.

 //***************************************   
 
 bool nahodka= false ;
 
 for (i= 0 ; i<=OrdersHistoryTotal(); i++) {
 if (! OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) continue ;
 if (OrderSymbol()!= Symbol ()) continue ; 
 if (OrderMagicNumber() != 450 ) continue ; Print ( " tacket " ,tacket, "  OrderTicket() " ,OrderTicket(), "    profit " , profit, "    OrderTakeProfit( ) " ,OrderTakeProfit( ) );
 if (tacket==OrderTicket()) { Print ( "tacket==OrderTicket()    " );
 if (OrderTakeProfit( )- 3 * Point <profit&&OrderTakeProfit( )+ 3 * Point >profit) nahodka= true ;}}     // Находим ордер, сработавший именно по тейкпрофиту 
 
 
  
 if (nahodka){ if ( OrderSelect (tucket,SELECT_BY_TICKET)){
 if (OrderStopLoss( )<Bid-treylingstop* Point ){ Print ( "втораямодифи    " );
 OrderModify(  tucket, OrderOpenPrice(), Bid-treylingstop* Point , OrderTakeProfit(), 0 , CLR_NONE );}}}
 if (BUY == 0 ) {perenos= false ;srabotka= false ;nahodka= false ;} 
 
 
 //*************************************** 
 
 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 
               
               //SELL
 
Dimka-novitsek :

Günaydın!

Kategorik olarak çözemiyorum - takip eden durdurma koşulları çalışmıyor.

Bu yüzden sipariş hemen seçiliyor, henüz tarihe geçmemişken, ki bunu hiç anlamıyorum !!

Ve şimdi durum daha iyi! Bu tür çan ve ıslıklarla, düzen en azından zaten tarihteyken seçilir.

Ama beş veya onda bir, nahodka doğru olarak değerlendirilmez ve başka bir değişiklik olmaz!!


if(OrderClosePrice()==OrderTakeProfit())nahodka=true; denediniz mi?
 
Dimka-novitsek :

Günaydın!

Kategorik olarak çözemiyorum - takip eden durdurma koşulları çalışmıyor.

Bu yüzden sipariş hemen seçiliyor, henüz tarihe geçmemişken, ki bunu hiç anlamıyorum !!

Ve böylece durum zaten daha iyi!! Bu tür çan ve ıslıklarla, düzen en azından zaten tarihteyken seçilir.

Ancak beş veya onda bir, nahodka doğru olarak değerlendirilmez ve başka bir değişiklik yapılmaz!!

Biletle sipariş seçerken , çekme dikkate alınmaz. Bu nedenle MODE_HISTORY yazmak tamamen yararsızdır. Biletle bir sipariş seçtikten sonra, kapanış saatini de kontrol etmek gerekir OrderCloseTime() - sıfırdan büyükse, sipariş kapatılır ve geçmişten seçilir, SIFIR ise sipariş hala içindedir. piyasa ve piyasa pozisyonları listesinden seçilir.

Hatlarınızda bu kontrol yok:

 if ( OrderSelect (tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
if (OrderTakeProfit( )- 3 * Point <profit&&OrderTakeProfit( )+ 3 * Point >profit) nahodka= true ;     // Находим ордер, сработавший именно по тейкпрофиту 

Küçük başla:

 if ( OrderSelect (tacket, SELECT_BY_TICKET)) {
   if (OrderCloseTime()> 0 ) {                         // Убедились, что ордер выбран из истории
       // Тут ищете далее то, что вам необходимо ... а закрылся ли он по тейку ...
      }
   }

ve mutlu olacaksın...

 
Dimka-novitsek :

Günaydın!

Kategorik olarak çözemiyorum - takip eden durdurma koşulları çalışmıyor.

Bu yüzden sipariş hemen seçiliyor, henüz tarihe geçmemişken, ki bunu hiç anlamıyorum !!

Ve şimdi durum daha iyi! Bu tür çan ve ıslıklarla, düzen en azından zaten tarihteyken seçilir.

Ancak beş veya onda bir, nahodka doğru olarak değerlendirilmez ve başka bir değişiklik yapılmaz!!

! - Ticket'ı adlandırma beceriniz: tecket, tocket, tucket, vb. vb. Bu isimlerle kafanız karışmıyor mu?! Size tavsiyem kafa karışıklığından sakının, bunu yapmayın. Lochbranding bu ilke üzerine kurulmuştur, örneğin: ADIDAS ve ADITAS...

Ayrıca, bu kadar çok sayıda bayrağa gerek yoktur, örneğin:

     if ( OrderSelect (ticket, SELECT_BY_TICKET))
     {
         //---- Проверяем закрыт этот ордер или нет
         if (OrderCloseTime > 0 )
         {
             //---- Находим ордер, сработавший именно по тейкпрофиту 
             if ( NormalizeDouble (OrderTakeProfit()- OrderClosePrice()), Digits ) == 0.0 )
             {
                 if ( OrderSelect (tucket, SELECT_BY_TICKET))
                 {
                     double ld_SL = NormalizeDouble (Bid - treylingstop * Point , Digits );
                     if ( NormalizeDouble (ld_SL - OrderStopLoss(), Digits ) > 0.0 )
                     {
                         Print ( "втораямодифи    " );
                         OrderModify (tucket, OrderOpenPrice(), ld_SL, OrderTakeProfit(), 0 , CLR_NONE );
                     }
                 }
             }
         }
     }
Bu, kodunuza dayalı kolay bir doğaçlamadır.
 
Teşekkürler!!!!!!!