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

 

Sayacımla çözmeye çalışıyorum, derslerde yeniden yazıyorum. Ancak yine de çalışan paralel işlevleri görüntülemek mümkün değildir. m_pause'un bir şekilde farklı şekilde bildirilmesi gerektiğine inanıyorum. Nasıl doğru yapılır?


 #ifdef __MQL4__
#endif 
//+------------------------------------------------------------------+
//| Счётчик                                                          |
//+------------------------------------------------------------------+
class CCounter
  {
private :
   //--- Шаг счётчика
   int                count;
   //--- Счётчик 
   int                chekcount;
   //---      
   int                m_pause;

public :
   //--- Проверяет прохождение указанного временного интервала 
   int                CheckCounter( const int pause);

   void ZeroCounter( void ){count= 0 ;chekcount= 0 ;}
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CCounter::CheckCounter( const int pause)
  {
   m_pause=pause;
   count++;
   Print ( " Class    count= " ,count);
   Print ( " Class    pause= " ,pause);
   Print ( " Class    m_pause= " ,m_pause);

   if (count>=chekcount+m_pause)
     {
      chekcount=count;
     }
   return (chekcount);
  }
//+------------------------------------------------------------------+
 #include <Test_Class_Tmier_libr_1.mqh>
CCounter TC;

void OnTick()
  {
Print ( "0 TC.CheckCounter(10)= " ,TC.CheckCounter( 10 ));   
Print ( "1 TC.CheckCounter(15)= " ,TC.CheckCounter( 15 ));
}

 
Nauris Zukas :

Sayacımla çözmeye çalışıyorum, derslerde yeniden yazıyorum. Ancak yine de çalışan paralel işlevleri görüntülemek mümkün değildir. m_pause'un bir şekilde farklı şekilde bildirilmesi gerektiğine inanıyorum. Nasıl doğru yapılır?


Zamanlayıcının kontrol edilmesi gerekiyor.

Ve iki CCounter nesnesi olmalıdır - her biri kendi sayacı için.

 
Artyom Trishkin :

Zamanlayıcının kontrol edilmesi gerekiyor.

Teşekkürler, ama neden zamanlayıcıyı kontrol etmeniz gerektiğini anlamıyorum? Her tik için EA, CCunter'ı çağırır ve "count++" tiklerini sayar.

 
Nauris Zukas :

Teşekkürler, ama neden zamanlayıcıyı kontrol etmeniz gerektiğini anlamıyorum? Her tik için EA, CCunter'ı çağırır ve "count++" tiklerini sayar.

Yani bir zamanlayıcı değil...

 
Artyom Trishkin :

Ve iki CCounter nesnesi olmalıdır - her biri kendi sayacı için.

"İki CCounter nesnesi" ile ne demek istediğinizi anlamadım. https://www.mql5.com/ru/articles/351 adlı makaleyi okudum, "Yüklendikten sonra sınıf bir nesne haline geliyor" diyor. Görünüşe göre her sayaç için sınıfların kopyalarını almam gerekecek mi? Yani aynı kopyalar farklı isimlerle çıkıyor, sınıfsız ne yapabilirim? Amaç, yüzden fazlasına ihtiyacım olacağından, sınıfları kullanarak kopyalamaktan kurtulmaktı. Bana bunu bir sınıf kullanarak yapmanın mümkün olduğunu yazdılar, ben de sınıflarla uğraşmaya başladım. Ya da "iki CCounter nesnesi" hakkında bir şey anlamadım?

Vitaly Muzichenko 2017.09.26 15:43 TR
Nauris Zukas :

Sıkışmış, bana öyle geliyor ki, çok basit bir yerde. Peki ya global int checkcount=0; int sayı=0; birkaç counter() işlevini paralel olarak çalıştırmak istersem?

Sadece sınıfı kullanın veya farklı adlara sahip işlevlerin kopyalarını oluşturun.

Основы объектно-ориентированного программирования
Основы объектно-ориентированного программирования
  • 2011.12.06
  • Dmitry Fedoseev
  • www.mql5.com
На самом деле все намного проще. Чтобы пользоваться ООП вовсе не нужно знать, что означают эти слова - можно просто использовать предоставляемые ООП возможности, даже не зная как они называются. Но все же, надеюсь, в процессе прочтения статьи все желающие не только научатся использовать ООП в достаточной мере, но и разъяснят себе значения этих...
 
Nauris Zukas :

"İki CCounter nesnesi" ile ne demek istediğinizi anlamadım. https://www.mql5.com/ru/articles/351 adlı makaleyi okudum, "Yüklendikten sonra sınıf bir nesne haline geliyor" diyor. Görünüşe göre her sayaç için sınıfların kopyalarını almam gerekecek mi? Yani aynı kopyalar farklı isimlerle çıkıyor, sınıfsız ne yapabilirim? Amaç, yüzden fazlasına ihtiyacım olacağından, sınıfları kullanarak kopyalamaktan kurtulmaktı. Bana bunu bir sınıf kullanarak yapmanın mümkün olduğunu yazdılar, ben de sınıflarla uğraşmaya başladım. Ya da "iki CCounter nesnesi" hakkında bir şey anlamadım?

Vitaly Muzichenko 2017.09.26 15:43 TR

Sadece sınıfı kullanın veya farklı adlara sahip işlevlerin kopyalarını oluşturun.

Sadece ihtiyacınız olduğu kadar çok sınıf nesnesi oluşturun. Ve her birini hesaplamanız için kullanın.
Size yardımcı olmak için CarrayObj
 
Artyom Trishkin :
Sadece ihtiyacınız olduğu kadar çok sınıf nesnesi oluşturun. Ve hesaplamanız için her birini kullanın.
Size yardımcı olmak için CarrayObj

Teşekkürler, CarrayObj'ın ne tür bir canavar olduğunu okuyacağım ve anlamaya çalışacağım. :)

 

Tüm açık siparişlerin fiyatlarından tek boyutlu bir dizi nasıl oluşturulur? Bu muhtemelen sizin için çok basit bir soru, ama lütfen bana söyleyin)

 
vikzip :

Tüm açık siparişlerin fiyatlarından tek boyutlu bir dizi nasıl oluşturulur?

Tüm siparişler arasında dolaşın ve diziye açık fiyatlar yazın.

 
Alexey Viktorov :

Tüm siparişler arasında dolaşın ve diziye açık fiyatlar yazın.


Teşekkür ederim!