Açık ticareti kontrol etme sorunları - sayfa 7

 
dazamate :
Evet, yorumunuzu tekrar okudum ve yaptığım şey yanlış.
barın açılış saatini bana vermeyecek mi Time[0] kullanmam gerekecek mi?


Evet veya . . . .

tradeopened = TimeHour ( TimeCurrent ());
 
OrderDelete ( OrderTicket ( ) );  

Bu Raptor'u düzeltti.


---------> http://clip2net.com/s/14aYs

 
dazamate :

Bu Raptor'u düzeltti.


---------> http://clip2net.com/s/14aYs

LOL, yardımcı olmaktan mutluluk duyuyorum. . . :-)
 

Dostum çok yardımcı oldun sonunda stratejiyi ayarlamaya başlayabileceğim bir duruma sahibim. Çok teşekkür ederim ama son söylediğimi duyduğundan şüpheliyim haha


Ayrıca WHRoeder'a da çok teşekkürler
 

sooo..bittiğini düşündün lol


Stoploss'u hareketli bir ortalama değerinden takip edecek bazı kodlar ekledim. Kod, alım satım işlemlerinde iyi çalışır, ancak alım satım işlemlerinde çalışmaz. Ben bir şey göremiyorum, belki siz anlarsınız.


 // Trailing Stop Code 

   if (Tradeopen()==true && emastoptrail==TRUE)                                  // Trades are open and Trailing stop feature is turned on
    {
       for ( int tnumber2 = OrdersTotal ()- 1 ; tnumber2 >= 0 ; tnumber2--)                   //scan through open orders
       {
         if ( OrderSelect (tnumber2, SELECT_BY_POS) && 
             OrderMagicNumber ()==Mnumber3)                                                 // The orders magic number is the same as the magic number used the profit trade
            {                                          
          
             if ( OrderType ()==OP_BUY && ( iMA ( Symbol (), 60 , ematrailperiod, 0 , 1 , 0 , 1 ) > OrderStopLoss () ))       // The stop loss is less than the moving average value
          
               {
                 OrderModify ( OrderTicket (), OrderOpenPrice (), iMA ( Symbol (), 60 , ematrailperiod, 0 , 1 , 0 , 1 ), OrderTakeProfit (), 0 );   // Modify Stop to MA value
               }
            
             if ( OrderType ()==OP_SELL && ( iMA ( Symbol (), 60 , ematrailperiod, 0 , 1 , 0 , 1 ) < OrderStopLoss () ))       // The stop loss is more than the moving average value
          
               {
                 OrderModify ( OrderTicket (), OrderOpenPrice (), iMA ( Symbol (), 60 , ematrailperiod, 0 , 1 , 0 , 1 ), OrderTakeProfit (), 0 );   // Modify Stop to MA value
               }
            }
       }
     }
 

Peki, sondaki durdurma kodu sorun olmayabilir. Belirli bir süre sonra bekleyen siparişleri silen kodda bir sorun var...


 // DELETE PENDING ORDERS THAT HAVE NOT BEEN TRIGGERED WITHIN ' int = pendinglimit'

   if (( iBarShift ( Symbol (), 60 ,tradeopened)>pendinglimit) && Tradeopen()==true)               // Check to see if pending orders have expired
     {
         for ( int tnumber = OrdersTotal ()- 1 ; tnumber >= 0 ; tnumber--)                   //scan through open orders
        {
           if ( OrderSelect (tnumber, SELECT_BY_POS) &&   
             (( OrderType ()==OP_BUYSTOP)|| ( OrderType ()== OP_SELLSTOP)) &&               // The order selected is either a pending buy on stop order or a buy on sell order
             (( OrderMagicNumber ()== Mnumber1) || ( OrderMagicNumber ()==Mnumber3)))       // The orders magic number is the same as the magic number used in this ea
          
               {
                 OrderDelete ( OrderTicket ( ) );                                             // Delete it
               }
        }
       
     }

Her işlem açıldıktan sonra bunu da çalıştırıyorum...

tradeopened = TimeHour ( TimeCurrent ());

yorum yapıyorum...

( iBarShift ( Symbol (), 60 ,tradeopened)

ve 1000'den başlıyor ve her yeni çubuğu saymaya devam ediyor ve koştuğumda sıfırlanmıyor ...

tradeopened = TimeHour ( TimeCurrent ());


Bu, bekleyen emirleri silme kontrolünü her zaman doğru yapar ve işlem bir sonraki çubukta tetiklenmezse, bekleyen emir hemen silinir -__-

Ahhh YARDIM

 

Sanırım düzeltmiş olabilirim....

İşlemi silmek için bir kontrol daha, beklemedeki bir emrin açılabileceği izin verilen maksimum süreyi geriye kaydırmak ve işlemin açıldığı zamanla eşleşip eşleşmediğini görmek için değiştirdim :)

   for ( int tnumber = OrdersTotal ()- 1 ; tnumber >= 0 ; tnumber--)                   //scan through open orders
        {
           if ( OrderSelect (tnumber, SELECT_BY_POS) &&   
             (( OrderType ()==OP_BUYSTOP)|| ( OrderType ()== OP_SELLSTOP)) &&               // The order selected is either a pending buy on stop order or a buy on sell order
             (( OrderMagicNumber ()== Mnumber1) || ( OrderMagicNumber ()==Mnumber3)) &&       // The orders magic number is the same as the magic number used in this ea
              ( iTime (   Symbol (), 60 , pendinglimit) == tradeopened))
               {
                 OrderDelete ( OrderTicket () );                                             // Delete it
               }
        }
 
dazamate :

Sanırım düzeltmiş olabilirim....

İşlemi silmek için bir kontrol daha, beklemedeki bir emrin açılabileceği izin verilen maksimum süreyi geriye kaydırmak ve işlemin açıldığı zamanla eşleşip eşleşmediğini görmek için değiştirdim :)

Neredeyse hayal ettiğim gibi bir şeye sahipsin. . . .

Tradeopened değişkeninizi kullanırken bir sorun var. . . açık işlemler varsa ve EA kapanırsa, o değişkendeki bilgileri kaybedersiniz. . . neden onu OrderOpenTime () ile değiştirip böyle bir şey yapmıyorsunuz? . .

 for ( int tnumber = OrdersTotal ()- 1 ; tnumber >= 0 ; tnumber--)                   //scan through open orders
        {
           if ( OrderSelect (tnumber, SELECT_BY_POS) &&   
             (( OrderType ()==OP_BUYSTOP)|| ( OrderType ()== OP_SELLSTOP)) &&               // The order selected is either a pending buy on stop order or a buy on sell order
             (( OrderMagicNumber ()== Mnumber1) || ( OrderMagicNumber ()==Mnumber3)) &&       // The orders magic number is the same as the magic number used in this ea

              ( iBarShift ( OrderSymbol (), PERIOD_H1 , OrderOpenTime ()) - pendinglimit) <= 0 ));     //  <----------- this . . .

               {
                 OrderDelete ( OrderTicket () );                                             // Delete it
               }
        }
 
Tek sorun, daha önce ibarshift işlevini kullanıyordum ve bir nedenden dolayı 1000+ çıktı veriyordu.
 

Ayrıca raptor beynini seçmem gerekiyor .... tekrar :)


Hareketli bir ortalama değerini dereceye çevirmenin bir yolu var mı? Şimdi sadece herhangi bir matematik forumu bulabilecek miyim diye araştırıyorum. Bu şekilde, yan pazar tespiti ve yukarı ve aşağı trendleri netleştirmek kolay olacaktır.