MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 133

 
Herkese merhaba. Bana bu kodu nasıl değiştireceğimi söyle for(int i=OrdersTotal()-1;i>=0;i--){
Şu anda son açılanları kapatıyor. Ve tam tersine, ilklerin önce kapanması gerekiyor!
 
Rustam Bikbulatov :
Herkese merhaba. Bana bu kodu nasıl değiştireceğimi söyle for(int i=OrdersTotal()-1;i>=0;i--){
Şu anda son açılanları kapatıyor. Ve tam tersine, ilklerin önce kapanması gerekiyor!
for ( int i= 0 ; i< OrdersTotal (); i++)
 
Rustam Bikbulatov :
Herkese merhaba. Bana bu kodu nasıl değiştireceğimi söyle for(int i=OrdersTotal()-1;i>=0;i--){
Şu anda son açılanları kapatıyor. Ve tam tersine, ilklerin önce kapanması gerekiyor!
for ( int i = 0 ; i < OrdersTotal (); i++ )
   {
     if ( /*Функция закрытия. Если вернула истину*/ )
       i--;
   }

Böyle deneyin. Yorum yerine, siparişi kapatma işlevi. İşlevselliği kontrol etmedi. Ve burada, sanırım, sayıyı her seferinde tam olarak sayma işlevini çağırmak gerekecek, çünkü sipariş sayısı azalacaktır.

Bu seçeneği de deneyebilirsiniz:

while ( OrdersTotal () > 0 )
   /*Функция закрытия ордера*/
 
Vitaly Muzichenko :
for ( int i= 0 ; i< OrdersTotal (); i++)
bir şekilde garip bir şekilde kapanır)
 
Rustam Bikbulatov :
bir şekilde garip bir şekilde kapanır)
doğru - hangi siparişlerin kapatılacağını hatırlamak, bu listeyi ihtiyacınıza göre sıralamak ve bu sırayla kapatmaktır.

doğru değil, ama şu ana kadar (bazı yapılara kadar) işe yarıyor: i'nin başarılı bir şekilde kapanması üzerine--



 
Rustam Bikbulatov :
Herkese merhaba. Bana bu kodu nasıl değiştireceğimi söyle for(int i=OrdersTotal()-1;i>=0;i--){
Şu anda son açılanları kapatıyor. Ve tam tersine, ilklerin önce kapanması gerekir !

//+------------------------------------------------------------------+
//|           Закрыть все позиции начиная с первых                   |
//+------------------------------------------------------------------+

double CloseOrders()

{
   for ( int i= 0 ; i< OrdersTotal (); )
  {
     if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES ))
     break ;
    
     if ( OrderMagicNumber () != mn)
     break ;
    
     int type   = OrderType ();

     bool result = false ;
    
     switch (type)
    {
       //Close opened long positions
       case OP_BUY        : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), Slippage, CloseColor );
                           break ;
      
       //Close opened short positions
       case OP_SELL       : result = OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), Slippage, CloseColor );
                           break ;
    }
    
     if (result == false )
    {
       Print ( "Order " , OrderTicket () , " failed to close. Error:" , GetLastError () );
      i++;
    }  
  }
return ( True );
}
// End
 
Rustam Bikbulatov :
bir şekilde garip bir şekilde kapanır)
Bir bütün olarak sunduğum varyant, kapanış için saçma.
Eskiden yeniye kapatılması gerekenlerden bahsediyorsanız, ızgarayı kapatıyorsunuz demektir. Şebekeler konusunda biraz deneyimim olduğu için, sadece pozisyonun eski konumuna göre değil, lot büyüklüğüne göre seçim yapmanız gerektiğini ve daha büyük bir lottan daha küçük bir lota kapatmanız gerektiğini güvenle söyleyebilirim. Şebeke tek lot ise kapanışta sıra farkı yoktur. Kapatmak için hazır işlevleri kullanın ve daha önce icat edilmiş olanı icat etmeyin)
 
Çok teşekkürler çocuklar! Ben zaten anladım!!!
 
Vitaly Muzichenko :
Bir bütün olarak sunduğum varyant, kapanış için saçma.
Eskiden yeniye kapatılması gerekenlerden bahsediyorsanız, ızgarayı kapatıyorsunuz demektir. Şebekeler konusunda biraz deneyimim olduğu için, sadece pozisyonun eski konumuna göre değil, lot büyüklüğüne göre seçim yapmanız gerektiğini ve daha büyük bir lottan daha küçük bir lota kapatmanız gerektiğini güvenle söyleyebilirim. Şebeke tek lot ise kapanışta sıra farkı yoktur. Kapatmak için hazır işlevleri kullanın ve daha önce icat edilmiş olanı icat etmeyin)
Pekala. Haklısın!
 
Beyler geliştirdi! Hepinize iyi günler. Oluştururken bir uzman şablonu (komut dosyası) oluşturma sorusuyla ilgileniyorum. Bu bir yerde düzenlenebilir mi ve nasıl yapılır?