MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 323

 

나는 그것을 내 카운터로 알아내려고 노력하고 있고, 수업에서 그것을 다시 씁니다. 그러나 여전히 작동하는 병렬 기능을 표시하는 것은 불가능합니다. 나는 m_pause가 어떻게든 다르게 선언되어야 한다고 생각합니다. 제대로 하는 방법?


 #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 :

나는 그것을 내 카운터로 알아내려고 노력하고 있고, 수업에서 그것을 다시 씁니다. 그러나 여전히 실행 중인 병렬 기능을 표시할 수 없습니다. 나는 m_pause가 어떻게든 다르게 선언되어야 한다고 생각합니다. 제대로 하는 방법?


타이머를 확인해야 합니다.

그리고 각각 고유한 카운터를 위한 두 개의 CCounter 개체가 있어야 합니다.

 
Artyom Trishkin :

타이머를 확인해야 합니다.

고맙긴 한데 왜 타이머를 확인해야 하는지 이해가 안 가나요? 각 틱 에 대해 EA는 CCounter를 호출하고 "count++" 틱을 계산합니다.

 
Nauris Zukas :

고맙긴 한데 왜 타이머를 확인해야 하는지 이해가 안 가나요? 각 틱 에 대해 EA는 CCounter를 호출하고 "count++" 틱을 계산합니다.

타이머가 아니라...

 
Artyom Trishkin :

그리고 각각 고유한 카운터를 위한 두 개의 CCounter 개체가 있어야 합니다.

"두 개의 CCounter 개체"가 의미하는 바를 이해하지 못했습니다. https://www.mql5.com/ru/articles/351 기사를 읽었습니다. "로드 후 클래스는 객체가 됩니다." 각 카운터에 대해 수업을 복사해야 합니까? 그래서 다른 이름을 가진 동일한 사본이 나타납니다. 클래스 없이 무엇을 할 수 있습니까? 목표는 클래스를 사용하여 복사를 제거하는 것이 었습니다. 클래스가 100개 이상이 필요하기 때문입니다. 그들은 수업을 사용하여 이것을 할 수 있다고 나에게 썼고, 그래서 나는 수업을 만지작거리기 시작했습니다. 아니면 "두 개의 CCounter 개체"에 대해 이해하지 못한 것이 있습니까?

비탈리 무지첸코 2017.09.26 15:43 KO
나우리스 주카스 :

그런 단순한 장소에 갇힌 것 같습니다. 전역 int checkcount=0 은 어떻습니까? 정수 수 = 0; 여러 counter() 함수 를 병렬로 실행하려는 경우?

클래스를 사용하거나 다른 이름으로 함수의 복사본을 만드십시오.

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

"두 개의 CCounter 개체"가 의미하는 바를 이해하지 못했습니다. https://www.mql5.com/ru/articles/351 기사를 읽었는데 "로드 후 클래스가 객체가 됩니다"라고 나와 있습니다. 각 카운터에 대해 수업을 복사해야 합니까? 그래서 다른 이름을 가진 동일한 사본이 나타납니다. 클래스 없이 무엇을 할 수 있습니까? 목표는 클래스를 사용하여 복사를 제거하는 것이 었습니다. 클래스가 100개 이상이 필요하기 때문입니다. 그들은 수업을 사용하여 이것을 할 수 있다고 나에게 썼고, 그래서 나는 수업을 만지작거리기 시작했습니다. 아니면 "두 개의 CCounter 개체"에 대해 이해하지 못한 것이 있습니까?

비탈리 무지첸코 2017.09.26 15:43 KO

클래스를 사용하거나 다른 이름으로 함수의 복사본을 만드십시오.

필요한 만큼 클래스 객체를 생성하면 됩니다. 그리고 각각을 계산에 사용하십시오.
CArrayObj가 도와드립니다.
 
Artyom Trishkin :
필요한 만큼 클래스 객체를 생성하면 됩니다. 그리고 각각을 계산에 사용하십시오.
CArrayObj가 도와드립니다.

고마워, 나는 CArrayObj가 어떤 종류의 짐승인지 읽고 알아 내려고 노력할 것입니다. :)

 

모든 미결 주문의 가격에서 1차원 배열을 만드는 방법은 무엇입니까? 이것은 아마도 당신에게 매우 간단한 질문일 것입니다. 그러나 말씀해 주십시오)

 
vikzip :

모든 미결 주문의 가격에서 1차원 배열을 만드는 방법은 무엇입니까?

모든 주문을 반복하고 배열에 공개 가격 을 씁니다.

 
Alexey Viktorov :

모든 주문을 반복하고 배열에 공개 가격 을 씁니다.


고맙습니다!