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

 
EVGENII SHELIPOV # :

Makar, kodda hangi yerden fonksiyona referans olacağını açıklayabilir misin?

1'den fazla sipariş varsa

 //+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
   {
//---
   if (CountTrade()> 1 ) TrailingGroupOrder();
   }
 
MakarFX # :

Pardon 4 yazdım...

5'te kontrol edildi! Her şey çalışıyor.

Teşekkürler. Çözümümün işe yaramaması çok garip. Bütün beyin bozuldu))

 
Andrey Sokolov # :

Teşekkürler. Çözümümün işe yaramaması çok garip.

Garip değil...

yolu sen yazmadın, işte senin kodun

   string src_path; 
   string dst_path; 
   StringConcatenate (src_path, "" , "//" ,name_file); 
   StringConcatenate (dst_path,name_folder, "//" ,name_file); 
   ResetLastError ();
   if ( FileMove (src_path, 0 ,dst_path, 0 )){

ve "src_path" ve "dst_path" neye eşittir?

 
MakarFX # :

1'den fazla sipariş varsa

Hayır Makar çalışmıyor

 
MakarFX # :

Garip değil...

yolu sen yazmadın, işte senin kodun

ve "src_path" ve "dst_path" neye eşittir?

https://www.mql5.com/ru/docs/files/filemove yardımından alınan aşağıdaki iki satırda yazılmıştır.

Ve mesele bu değil, bu kod MT4'te çalıştı ve MT5'te ilk ekran taşındı.

 
EVGENII SHELIPOV # :

Hayır Makar çalışmıyor

Bu olamaz... Bana tüm kodu PM'de ver
 
MakarFX # :
Bu olamaz... Bana tüm kodu PM'de ver

sana gönderdim

 
EVGENII SHELIPOV # :

sana gönderdim

cevaplandı
 
MakarFX # :
cevaplandı

Teşekkürler Makar daha fazla düşüneceğim

 
MakarFX # :
cevaplandı

İyi günler !!!

Tavsiyeniz üzerine, grup siparişlerinin takibini değiştirmek için bir komut göndermek için TrailingGroupOrder() işlevini ekleyebileceğiniz void OnTick() işlevinde bir yer buldum ve işte, grup siparişlerinin izi çalışmaya başladı. Ama sevinç uzun sürmedi. Yakından baktığımda, yalnızca minimum bilet içeren bir siparişin takip edildiğini gördüm.

 //+----------------------------------------------------------------------------+
//| Трейлинг стоп групповых ордеров                                            |
//+----------------------------------------------------------------------------+
void TrailingGroupOrder()
{
     for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
    {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
       {
       if (OrderType() == OP_BUY && Bid - GetAveragePrice() > TrailingStopGroupOrder* Point )
        {
         if (Bid - GetAveragePrice() > TrailingStopGroupOrder* Point || OrderStopLoss() == 0 )
         {
         if (OrderStopLoss() < Bid - (TrailingStep + TrailingStopGroupOrder )* Point || OrderStopLoss() == 0 )
          {
           if (!OrderModify( OrderTicket() , OrderOpenPrice(), NormalizeDouble (Bid - TrailingStopGroupOrder* Point , Digits ), tp, 0 ))
                     Print ( "Ошибка модификации групповых ордеров на покупку!" );
          }
         }
        }
         if (OrderType() == OP_SELL && GetAveragePrice() - Ask > TrailingStopGroupOrder* Point )
         {
         if (GetAveragePrice() - Ask > TrailingStopGroupOrder* Point || OrderStopLoss() == 0 )
           {
             if (OrderStopLoss() > Ask + (TrailingStep + TrailingStopGroupOrder)* Point || OrderStopLoss() == 0 )
              {
               if (!OrderModify( OrderTicket() , OrderOpenPrice(), NormalizeDouble (Ask + TrailingStopGroupOrder* Point , Digits ), tp, 0 ))
                     Print ( "Ошибка модификации групповых ордеров на продажу!" );
              }
           }
         }
      } 
    }
}

Sorunun, hepsini birden değil, yalnızca ilk (minimum) sırayı değiştirmekte olduğunu yüksek bir olasılıkla varsayabilirim.

Makar, ızgaradaki tüm siparişlerin bir kerede değiştirilmesi için nasıl yapacağımı söyle????