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

 
Alexandr Sokolov :

정규화 후에도 여전히 비정규화 값을 얻습니다 - MQL5

가장 불리한 1e-05, 어떻게해야합니까?

DoubleToString (....)이 도움이 될 것입니다.

 

상위 클래스에서 요소의 값을 가져오는 방법이 있습니까?


코드:

 class B
  {
   int x
   int                GetA()
     { ????  }
  };

class A
  {
   int                a;
   B                 b;
public :
  };


클래스 A 안에 있는 클래스 B의 요소. B 안에 있는 동안 (클래스 A에서) 의 값을 어떻게 얻을 수 있습니까?

 
Sergey Likho :

상위 클래스에서 요소의 값을 가져오는 방법이 있습니까?


코드:


클래스 A 안에 있는 클래스 B의 요소. B 안에 있는 동안 (클래스 A에서) 의 값을 어떻게 얻을 수 있습니까?

클래스 B는 클래스 A에 대해 아무것도 모릅니다.
상속해야 합니다. 그런 다음 자식 클래스에서 부모 클래스의 메서드를 호출할 수 있습니다. 컨텍스트 확인 연산자를 사용하는 것이 더 좋습니다. ::
 
Sergey Likho :

상위 클래스에서 요소의 값을 가져오는 방법이 있습니까?


코드:


클래스 A 안에 있는 클래스 B의 요소. B 안에 있는 동안 (클래스 A에서) 의 값을 어떻게 얻을 수 있습니까?

 class A;

class B
  {
   A*  ptr;
   int x;
public :
   B( int mX,A* mPtr):ptr(mPtr),x(mX){}
   void    Print () { Alert ( "From B\na=" ,ptr.Get(), "\nx=" ,x);}
  };

class A
  {
   int                a;
   B*                b;
public :
   A( int mA, int mB):a(mA),b( new B(mB,& this )){}
  ~A() {delete b;}
   void    PrintB() {b. Print ();}
   void    PrintA() { Alert ( "From A\na=" ,a);}
   int     Get()   { return a;}
  };
  
void OnStart (){
   A a( 8 , 10 );
   a.PrintA();
   a.PrintB();   
  }
 
Artyom Trishkin :

알려주세요:

MT5 Windows 10 X64 에서 표시기를 호출하는 문제를 해결하는 방법을 알려주십시오. 저는 다음과 같이 합니다.

#resource "\\Indicators\\MyIndicator.ex5"

핸들=iCustom(NULL,0,"::Indicators\\MyIndicator");

이전에는 #resource 없이 작동하다가 #resource로 작업을 시작했지만 이제는 작동하지 않고 오류 4804를 작성합니다.

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • www.mql5.com
В MQL5 существует несколько вариантов вызова индикаторов, и осуществляются они в основном при помощи функций IndicatorCreate() и iCustom(). Причем эти функции лишь возвращают хендл индикатора, и дальнейшая работа с индикаторами ведется именно через него. Так что же такое хендл? Как работать с функциями IndicatorCreate() и iCustom()? И как...
 
Alexandr Sokolov :

정규화 후에도 여전히 비정규화 값을 얻습니다 - MQL5

가장 불리한 1e-05, 어떻게해야합니까?

시도 해봐:


 if (index <= 65 && index> = 55 ) PrintFormat (index, "" , up, "" , down, "" , sum, "%.5f" , minus);
 
Sergey Likho :

상위 클래스에서 요소의 값을 가져오는 방법이 있습니까?


코드:


클래스 A 안에 있는 클래스 B의 요소. B 안에 있는 동안 (클래스 A에서) 의 값을 어떻게 얻을 수 있습니까?

 class A;

class B
{
public :
   int x;
   int                GetA(A &reference) {   return reference.a;} };
//+------------------------------------------------------------------+
class A
{
public :
   int                a;
   B                 b; };
//+------------------------------------------------------------------+
A obj;
void OnStart ()
{
   obj.a = 10 ;
   int result = obj.b.GetA(obj);
   printf ( "result = %d" ,result);
}
//+------------------------------------------------------------------+

2020.01.20 20:30:05.534 tst (EURUSD,H1) 결과 = 10

 
Igor Makanu :

2020.01.20 20:30:05.534 tst (EURUSD,H1) 결과 = 10

하지 그. 메서드에 개체에 대한 포인터를 전달하고 있습니다. 제 뜻은 다음과 같습니다.

 class A;

class B
  {
   A*  ptr;
   int x;
public :
   B( int mX,A* mPtr):ptr(mPtr),x(mX){}
   void    Print () { Alert ( "From B\na=" ,ptr.Get(), "\nx=" ,x);}
  };

class A
  {
   int                a;
   B                 b;
public :
   A( int mA, int mB):a(mA),b(mB,& this ){}
   void    PrintB() {b. Print ();}
   void    PrintA() { Alert ( "From A\na=" ,a);}
   int     Get()   { return a;}
   B*     GetB() { return &b;}
  };

void OnStart (){
   A a( 8 , 10 );
   B* b=a.GetB();
   b. Print ();   
  }
즉, A에서 B에 대한 포인터를 가져와 작업할 수 있는 반면 B는 A에 액세스할 수 있습니다.
 
Vladimir Simakov :

하지 그. 메서드에 개체에 대한 포인터를 전달하고 있습니다. 제 뜻은 다음과 같습니다.

즉, A에서 B에 대한 포인터를 가져와 작업할 수 있는 반면 B는 A에 액세스할 수 있습니다.

나는 당신의 코드를 보았다

그러나 질문자는 "무화과 잎 조각"이 처음이 아닙니다. 나는 어디서 이해하지 못합니까? 나는 OOP에서 거의 한 번 질문에 이미 대답했습니다))))

그는 원칙적으로 클래스 A에 대한 앞으로의 설명만 필요했으며, 그가 그곳에서 다시 한 번 조각한 것은 오직 그 사람만이 알고 있습니다.)))


추신: 개체에 대한 링크를 전달합니다. 나중에 참조로 원하는 모든 작업을 수행할 수 있지만 원칙적으로 이러한 코드에는 의미가 없습니다. 일반적으로 예제에서 작성할 때 클래스 포인터를 사용하여 이 모든 것을 사용하는 것이 편리합니다.

 
간단한 무료 지표를 작성했는데 설명을 추가할 수 없습니다. 모든 요구 사항에 따라 작성하고 "저장"을 누릅니다. 모든 것이 최고이며 오류를 작성하지 않습니다. 하지만 페이지를 로드한 후 설명이 없습니다...