Fraktal Kopma-Sıkışmış - sayfa 3

 

OrderModify ve OrderSelect fonksiyonlarının her ikisinde de parametreleri boşuna değiştirdim...

Akış mantıklı görünüyor ve tüm parametreleri iki kez kontrol ettim.


Bu, backtest sırasında oluyor, ancak önemli değil.

 
//----------------------------------------------//
//-----------------EXITING ORDERS---------------//


for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--)
   {
     if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false )   break ;
     if (OrderMagicNumber()!=MagicNumber || OrderSymbol() != Symbol ()) continue ;
     double SL=OrderStopLoss();
     bool    result;
     int     error;
     //Different OrderTypes
     if (OrderType()==OP_BUY)
       {
         if (BreakEven > 0 ) 
          {
           if (Bid - OrderOpenPrice() >= Point * BreakEven * mypoint)   //make input for BreakEven    StopLoss)
              {                                                                   //and don't forget mypoint !!!
               if (OrderStopLoss() < OrderOpenPrice()) 
                 {
                  SL = OrderOpenPrice()+ Point ;
                 }
              }
          }
       }
     if (OrderType()==OP_SELL)              
       {
         //For you to do
          
              
               
                
               
                  
                   
             
             
       }
     if (SL != OrderStopLoss()) result=OrderModify(OrderTicket(),OrderOpenPrice(),SL,OrderTakeProfit(), 0 , CLR_NONE );
         if (result!=TRUE) { error= GetLastError (); Print ( "ModifyError = " ,OrderTicket(), "   " ,error);}       
   }

Kodlamayı okumayı kolaylaştırın

farkı kendi yazınızla görün bu daha kolay saymak {{{{{{{{{{{{{{{{ }}}}}}}}}}}}}}} )

 
ZacharyRC :

Hala zorluklar var. Nedenini bulmak için hatalar yaptım.


Dergi Bildirdi:

1) Hata 4051=Yanlış Parametre

2) Siparişi Değiştirmek için Geçersiz Bilet

 //----------------------------------------------//
//-----------------EXITING ORDERS---------------//


for ( int i= OrdersTotal ()- 1 ; i>= 0 ;i--)
   {
   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false )   break ;


   if (OrderMagicNumber()!=MagicNumber || OrderSymbol() != Symbol ()) continue ;

   if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) Print ( GetLastError (),i);
   if (OrderType()==OP_BUY)
      {
       if (Move.BE && StopLoss > 0 ) 
         {
         if (Bid - OrderOpenPrice() >= Point * StopLoss)
            {
             if (OrderStopLoss() < OrderOpenPrice() + Point * MoveStopTo) 
               {
               OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() + Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
               Print ( "Cant Modify Order" + GetLastError (),i);
               }
            } 
         }
      }
   else
      {
       if (Move.BE && StopLoss > 0 ) 
         {
         if (OrderOpenPrice() - Ask >= Point * StopLoss)
            {
             if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
               {
               OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
               Print ( "Cant Modify Order" + GetLastError (),i);
               }
            }
         }
      }
   }

Bir Satın Alma için SL nasıl Açık fiyatın üzerinde olabilir? OrderOpenPrice() + Nokta * MoveStopTo

 
deVries :

SATIN AL için Değiştirme başarılı olduktan ve ticaret kârlı olduktan sonra OrderOpenPrice() üzerinde OrderStopLoss()'a sahip olmak mümkündür
ÇOK KOMİK . . . ayy <kırmızı suratlı gülen>
 
RaptorUK :
ÇOK KOMİK . . . ayy <kırmızı suratlı gülen>


Yazımı sil kusura bakmayın
 
ZacharyRC :

Hala zorluklar var. Nedenini bulmak için hatalar yaptım.


Dergi Bildirdi:

1) Hata 4051=Yanlış Parametre

2) Siparişi Değiştirmek için Geçersiz Bilet

Tamam, hata mesajlarınız sahte olabilir. . .

 if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== true ) Print ( GetLastError (),i);


               OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
               Print ( "Cant Modify Order" + GetLastError (),i);

OrderSelect() çalışıyorsa neden GetLastError()'u çağırıyorsunuz ? size bir hata gösteriyorsa, bunun nedeni OrderSelect() olmayacaktır.

OrderModify() için aynı durum, eğer değişiklik çalışıyorsa hala GetLastError()'u çağırıyorsunuz, neden? sadece işlev başarısız olursa çağırın. . .

             if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
               {
               if (!OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red))
                   Print ( "Cant Modify Order, error# " + GetLastError (), " index " , i);
 
deVries :

Yazımı sil kusura bakmayın
Hayır, ben insanım, ben de hata yaparım, insanların bunu bilmesine aldırmıyorum :-)
 

AHHH bayılıyorum. Her iki noktanız da çok mantıklı.


{{{{}}}}}-Ayrıca çok daha kolay!

Hatalar yalnızca işlev başarısız olursa çağrılmalıdır.


İkinize de teşekkür ederim, umarım hafta sonlarınız güzel geçmiştir.

 
RaptorUK :

Bir Satın Alma için SL nasıl Açık fiyatın üzerinde olabilir? OrderOpenPrice() + Nokta * MoveStopTo


SL sıranın altındadır.



Satış bölümüne yönlendirme yapmadığınızdan emin misiniz?

 else {
 
     if (Move.BE && StopLoss > 0 ) {
               if (OrderOpenPrice() - Ask >= Point * StopLoss)
                {
                   if (OrderStopLoss() > OrderOpenPrice() - Point * MoveStopTo)
                   {
                  OrderModify(OrderTicket(),OrderOpenPrice(), OrderOpenPrice() - Point * MoveStopTo, OrderTakeProfit(), 0 , Red);
                   Print ( "Cant Modify Order" + GetLastError (),i);
}
 
RaptorUK :
ÇOK KOMİK . . . ayy <kırmızı suratlı gülen>

Benim açımdan bir hataydı.