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

 

Her şey normal olarak seçildi, ancak hatalar bir şekilde garip, hala test cihazıyla çözemiyorum.

Aynı anda 0.3 numaralı lotun kapatıldığını ve 0.7 numaralı lotun satıldığını söylüyor. Test eden kişi, anlaşmanın bir bölümünün kapanışını böyle mi gösteriyor? Ve işlemin bir kısmının kapanmasından sonra 0.16, 0.24, 0.12 lotları kapatılır ve açılır.

   for (Counter1= 0 ;Counter1< OrdersTotal ();Counter1++)
     {
     if ( OrderSelect (Counter1,SELECT_BY_POS,MODE_TRADES) == false) break ;
     if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber)
       {
       if ( OrderType () == OP_BUY)
         {
         
         BuyOpened = 1 ;
         if ((Bid - OrderOpenPrice ()) / Point >= TrailingLevel1 && (Bid - OrderOpenPrice ()) / Point < TrailingLevel2)
           {
           // Перенести в безубыток
           }
         }
       if ( OrderType () == OP_SELL)
         {
         TrailingPrice1 = OrderOpenPrice () - TrailingLevel1* Point ;
         MyOrderStopLoss1 = NormalizeDouble ( OrderStopLoss (), 4 );
         MyOrderStopLoss1 = OrderOpenPrice () - BreakEven* Point ;
         SellOpened = 1 ;
         if (( OrderOpenPrice () - Ask) / Point >= TrailingLevel1 && ( OrderOpenPrice () - Ask) / Point < TrailingLevel2 && OrderStopLoss () != MyOrderStopLoss1)
           {
           ClosingLot = OrderLots () / 100 * ClosingPercent;
           ClosingLot = NormalizeDouble (ClosingLot, 3 );
           OrderClose ( OrderTicket (),ClosingLot,Ask,Slippage, Yellow );
           OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - BreakEven* Point , OrderTakeProfit (), OrderExpiration (), Black );
           }
         }
       }
     }
 
sss2019 :

Her şey normal olarak seçildi, ancak hatalar bir şekilde garip, hala test cihazıyla çözemiyorum.

Aynı anda 0.3 numaralı lotun kapatıldığını ve 0.7 numaralı lotun satıldığını söylüyor. Test eden kişi, anlaşmanın bir bölümünün kapanışını böyle mi gösteriyor? Ve işlemin bir kısmının kapanmasından sonra 0.16, 0.24, 0.12 lotları kapatılır ve açılır.

evet, parçanın kapanışı bu şekilde görüntülenir - önce her şey kapanır, sonra parça açılır


hemen 2 soru:

1) Neyin daha fazla kapanmayacağını nereden biliyorsun?

bu fonksiyon için bir sonraki tikteki koşul tekrar yerine getirilecektir.

2) yanılmıyorsam, kısmi kapanıştan sonra siparişin bileti değişir, yani

 OrderClose ( OrderTicket (),ClosingLot,Ask,Slippage, Yellow );
           OrderModify ( OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - BreakEven* Point , OrderTakeProfit (), OrderExpiration (), Black );
           

ikinci satırda değişiklik olmayacak


3) Normalleştirmeyi unutmayın...

 
ilunga :

evet, parçanın kapanışı bu şekilde görüntülenir - önce her şey kapanır, sonra parça açılır


hemen 2 soru:

1) Neyin daha fazla kapanmayacağını nereden biliyorsun?

bu fonksiyon için bir sonraki tikteki koşul tekrar yerine getirilecektir.

2) yanılmıyorsam, kısmi kapanıştan sonra siparişin bileti değişir, yani

ikinci satırda değişiklik olmayacak


3) Normalleştirmeyi unutmayın...


Bilet gerçekten değişiyor mu? Muhtemelen bu ve tüm hatalar üzerinde. O zaman, siparişi manuel olarak değiştirirken bilet neden değişmiyor:? Biletin değişip değişmediğini tam olarak bilmem gerekiyor.
 


Gerçekten değişti, çok teşekkür ederim
 
Bir döviz çiftinden herhangi bir fiyat aldığınızda, onunla daha fazla çalışmak için normalleştirmeniz gerektiğini duydum, örneğin, fiyat bir tür minimumdan alınır ve onu stop loss değeri için ikame etmek için ihtiyacı vardır. normalleştirmek için, bu gerçekten böyle mi?
 
sss2019 :
Bir döviz çiftinden herhangi bir fiyat aldığınızda, onunla daha fazla çalışmak için normalleştirmeniz gerektiğini duydum, örneğin, fiyat bir tür düşükten alınır ve onu stop loss değeri için ikame etmek için ihtiyacı vardır. normalleştirmek için, bu gerçekten böyle mi?

Evet. ama demek istediğim normalleştirme, Ordersend/OrderModify/ ... 'da ikame sırasında bu işlevlerden önce onunla çalışabilir ve işlemler gerçekleştirebilirsiniz.
 
sergeev :

Evet. ama demek istediğim normalleştirme, Ordersend / OrderModify / ... 'da ikame sırasında bu işlevlerden önce onunla çalışabilir ve işlem yapabilirsiniz.

Ve kaç basamağa normalleştirilmelidir? Varsayılan olarak, fiyatın ondalık noktadan sonra 4 hanesi var gibi görünüyor, beş haneli DC'ler için bile, en azından Low[0] ve High[0] değerlerinin ondalık noktadan sonra her zaman sadece 4 hanesi var, denedim Uyarı veya Yazdır yoluyla çıktı almak için,
 
sss2019 :

Ve kaç basamağa normalleştirilmelidir? Varsayılan olarak, fiyatın ondalık noktadan sonra 4 hanesi var gibi görünüyor, beş haneli DC'ler için bile, en azından Low[0] ve High[0] değerlerinin ondalık noktadan sonra her zaman sadece 4 hanesi var, denedim Uyarı veya Yazdırma yoluyla çıktı almak için,

Varsayılan olarak, Basamak fiyatının ondalık noktadan sonra basamakları vardır

ve Alert and Print çıktısı varsayılan olarak yalnızca 4. Daha fazla kullanım için DoubleToStr dizesi (çift değer, int basamak)

 

Ardından, bunun gibi bir takip eden durdurma uygulamasına yardımcı olun. satış emri

         if (( OrderOpenPrice () - Ask) / Point > Trailing) //Если прибыль в пунктах больше чем уровень трейлинг стопа
           {
           NewStopLoss = Ask + TrailingLevel2* Point ;
           double NewStopLoss2 = 9999 ;
           if (NewStopLoss2 > NewStopLoss)
             {
             NewStopLoss2 = NewStopLoss;
             }
           OrderModify ( OrderTicket (), OrderOpenPrice (),NewStopLoss2, OrderTakeProfit (), OrderExpiration (), Black );
           }

Sorun şu ki, stoploss sadece ileriye doğru hareket ettirilmeli, ama benim için aynı zamanda geri de hareket ediyor.

________________________________

Soru gitti, üzgünüm.

 
sss2019 :

Ardından, bunun gibi bir takip eden durdurma uygulamasına yardımcı olun. satış emri

Sorun şu ki, stoploss sadece ileriye doğru hareket ettirilmeli, ama benim için aynı zamanda geri de hareket ediyor.

 double NewStopLoss2 = 9999 ;
           if (NewStopLoss2 > NewStopLoss)
             {
             NewStopLoss2 = NewStopLoss;
             }

eşdeğerdir

NewStopLoss2 = NewStopLoss;