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

 
Artyom Trishkin görünürlüğü için bayraklar vardır. Gizlemeniz ve göstermeniz gerekiyor.

Birkaç gün önce onlara bu konuda yazdım. Ama kim iyi tavsiyeleri dinler ki?

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

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

Mihail Matkovskij , 2021.12.03 22:27

Grafikten gizleyebilirsiniz ve ardından . Bir nesne nasıl gizlenir ve doğru bir şekilde gösterilir, bu forumda yazılmıştır. Veya CHARTEVENT_OBJECT_CLICK'i takip edin - mükemmel çözüm!


Ayrıca, bence yorumlar gereksiz mi?... :)
 
Mihail Matkovskij # :
Daha kompakt versiyon:

Ben bir programcı değilim ve stilleri bilmiyorum (elimden geldiğince yazıyorum)

Michael Matkovskij :

Ama işlevinizin evrensel olduğunu iddia ediyor gibisiniz?... O zaman çok önemli bir ayrıntıyı unuttunuz:

const - Ne olduğunu bilmiyorum ama onsuz harika çalışıyor.


Michael Matkovskij :

Kontrol etmek için basit bir komut dosyası yazamayacak kadar tembel misiniz? TAMAM. senin için yaptım

Garip...

bu işlev "-n" de false döndürür

Ben bir programcı veya öğretmen değilim. Sormak ve cevaplamak için buradayım (eğer biliyorsam). Ben amları ölçmüyorum.

Değerinizi göstermek istiyorsanız, hataları kabul etmeyi veya düzeltmeyi öğrenin.

 
Mihail Matkovskij # :

Onlara birkaç gün önce bu konuda yazdım. Ama iyi tavsiyeleri kim dinler ki? ...

Ayrıca daha aktif insanların daha sık dinlediğini fark ettim. Bu durumda Makar. Sonuç olarak, en basit görev birkaç gün boyunca çözülmedi.

 
Alexey Viktorov # :

Ayrıca daha aktif insanların daha sık dinlediğini fark ettim. Bu durumda Makar. Sonuç olarak, en basit görev birkaç gün boyunca çözülmedi.

Alexey, sorun uzun zaman önce çözüldü, kişi bu seçeneğin neden çalışmadığını anlamak istedi.
 
MakarFX # :


const - Ne olduğunu bilmiyorum ama onsuz harika çalışıyor.

const, değerin fonksiyon içinde değişmeyeceğinin garantisidir.

Garip...

bu fonksiyon false döndürür

Bence, zaten her şeyi çiğnedim ve raflara koydum. Sorun nedir?

Ben bir programcı veya öğretmen değilim. Sormak ve cevaplamak için buradayım (eğer biliyorsam). Ben amları ölçmüyorum.

Değerinizi göstermek istiyorsanız, hataları kabul etmeyi veya düzeltmeyi öğrenin.

Ben de soruları cevaplıyorum. Ve iyi yazılmış bir kodun nasıl görünmesi gerektiğini aktarmaya çalışıyorum. Ve benimle CSF'den mi bahsediyorsun? Sanırım sen ve Nerd Trader beni yanlış anlıyorsunuz. Yukarıda benim için programlamayı bilmenin öneminin benim için değil, asıl şey olduğunu söylemiştim!

Prensip olarak, hiç kimse size isteğiniz dışında öğretmeyecek. Ama sizin için yazılan kod beğenmediğiniz, uymadığınız veya anlamadığınız diğer forum üyeleri için faydalı olabilir. Yani kodu beğenmiyorsanız kullanmayın. Beğendiğinizi kullanın.

 
MakarFX # :
Alexey, sorun uzun zaman önce çözüldü, kişi bu seçeneğin neden çalışmadığını anlamak istedi.

Her şey düzgün çalışıyor ve hepsi kafa   burada doğru seçeneği yanlış olanla kıyaslamak yerine kandırıyorlar. :)

 
законопослушный гражданин # :

açık

söyle lütfen, işlevin son kapatılan siparişin lotunu döndürdüğünü doğru anlıyorum, ancak hesap tüm kapatılan siparişler listesinin başından itibaren tutuluyor

 double GetLotSize()
  {
   double Ls= 0 ;
   datetime t= 0 ;
   int i=OrdersHistoryTotal();
   for ( int pos= 0 ; pos<i; pos++)
     {
       if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if (t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }

ve eğer böyle yazarsam. o zaman geri sayım listenin sonundan mı olacak?

 double GetLotSize()
  {
   double Ls= 0 ;
   datetime t= 0 ;
   int i=OrdersHistoryTotal();
   for ( int pos=0; pos>=i; pos--)
     {
       if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if (t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }
 
законопослушный гражданин # :

söyle lütfen, işlevin son kapatılan siparişin lotunu döndürdüğünü doğru anlıyorum, ancak hesap tüm kapatılan siparişler listesinin başından itibaren tutuluyor

ve eğer böyle yazarsam. o zaman geri sayım listenin sonundan mı olacak?

Evet
 
законопослушный гражданин # :

söyle lütfen, işlevin son kapatılan siparişin lotunu döndürdüğünü doğru anlıyorum, ancak hesap tüm kapatılan siparişler listesinin başından itibaren tutuluyor

ve eğer böyle yazarsam. o zaman geri sayım listenin sonundan mı olacak?

İkinci seçenek işe yaramaz. Listenin sonundan itibaren yineleme yapmak için aşağıdakileri yapın:

 double GetLotSize()
  {
   double Ls= 0 ;
   datetime t= 0 ;
   int total = OrdersHistoryTotal();
   for ( int i = total - 1 ; i >= 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY))
        {
         if (OrderSymbol()== _Symbol && OrderMagicNumber()==Magic)
           {
             if (OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if (t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }