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

 
MakarFX # :

Lütfen bana nasıl doğru yapacağımı söyle

eklemek istediğim tüm öğeleri girmeyin, sadece 5 öğe belirtin

 #property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        " https://www.mql5.com "
#property version    "1.00"
#property strict
int Label1Buffer[];
int Label2Buffer[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   int i= 0 ,
       f= 0 ,
       limit= 9 ;
   ArrayResize (Label1Buffer,limit);
   ArrayResize (Label2Buffer,limit);
   for (i=limit- 1 ; i>= 0 ; i--)
     {
Label1Buffer[i]= 3 ;
 if (i<= 4 ) f+=Label1Buffer[i];
Label2Buffer[i]= f;
       Print (Label2Buffer[i]);
     }
Print ( "   !  " ,Label2Buffer[ 0 ]);
  }
//+------------------------------------------------------------------+
 
Galim_V # :

Hayır bu değil. Bunu yaparken

   for (i=limit;i>= 0 ;i--)
     {
      Label1Buffer[i] = MathRand ();
      tmp = 0.0 ; 
       for ( int a=Input1; a> 0 ; a--)
        {
         tmp +=  Label1Buffer[i+a];
        } 
      Label2Buffer[i] = tmp;
     }
 
iHigh (NULL,PERIOD_H1,i) ve double H= iHigh(NULL,PERIOD_H1,i); - Aynı şey değil mi?

Nedense while döngüsünden sonra farklı sonuçlar veriyorlar.

Sürekli olarak uzun bir iHigh(NULL,PERIOD_H1,i) satırı yazmak için değil , onu bir değişkene dönüştürmek için optimize etmek istedim. Döngüdeki bir değişkene değiştirdim, sonuç farklıydı.
 
Ivan Butko iHigh (NULL,PERIOD_H1,i) ve double H= iHigh(NULL,PERIOD_H1,i); - Aynı şey değil mi?

Nedense while döngüsünden sonra farklı sonuçlar veriyorlar.

Sürekli olarak uzun bir iHigh(NULL,PERIOD_H1,i) satırı yazmak için değil , onu bir değişkene dönüştürmek için optimize etmek istedim. Döngüdeki bir değişkene değiştirdim, sonuç farklıydı.

hangi bağlamda bakıldığına bağlı olarak.

Eğer while döngünüz i ile oynuyorsa, iHigh (NULL,PERIOD_H1,i) ve H farklı olacaktır.. Çünkü H, başka bir i'nin verilerini depolar.

 
Nikolay Ivanov iHigh (NULL,PERIOD_H1,i) ve H farklı olacaktır.. Çünkü H, başka bir i'nin verilerini depolar.

Evet haklısın i ile oynanıyor. teşekkür ederim demek istiyorum

 
Hikayeyi kesmenin bir yolu var mı? Yükleyince yüklenmesi 20 yıl sürüyor ama 2-3 yıl öncesine ihtiyacınız var...
 
Ivan Butko # :
Hikayeyi kesmenin bir yolu var mı? Yükleyince yüklenmesi 20 yıl sürüyor ama 2-3 yıl öncesine ihtiyacınız var...

Gereksiz verileri seçmek ve silmek için "Shift" tuşunu kullanın

 
MakarFX # :

Gereksiz verileri seçmek ve silmek için "Shift" tuşunu kullanın

Sayesinde

 
Tünaydın.
 void CloseAll()
{
   for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
   {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
         {
             if (OrderType() == OP_BUY)
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Bid, Slippage))
               Print ( " Не удалось закрыть ордер на покупку!" );
            }
             if (OrderType() == OP_SELL) 
            {
               if (!OrderClose(OrderTicket(),OrderLots(), Ask, Slippage))
               Print ( " Не удалось закрыть ордер на продажу!" );
            }
         }
      }
   }
}
Tüm siparişleri kapatmak için bu kodu kullanıyorum. Ama fark ettim ki birçoğu varsa, hepsi kapalı değil. İlk kez olmasa bile her şeyi kapatmak için ne eklenebilir. Mümkünse, sadece bir örnek.
 

tekrar günaydın)

İkinci soru:
Siparişleri kısmen kapatmak istiyorum. Ancak, siparişlerin kısmen kapanmasıyla ilgili bir sorun var, anladığım kadarıyla sipariş bileti değişiyor ve bundan sonuncular ilk oluyor ve benim için asıl şey açılış emrini korumak. Sonuncuları en sonda tutmak için. Siparişi nasıl takip edebilirim. Açılış fiyatı değişir mi? Mümkünse örneklerle)
Şimdiden teşekkürler