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

 
Vikon :
이것이 클래스 내에서 함수를 호출하는 방법, 즉 private: public: 서로 작업하는 방법, 클래스에 데이터를 전달하고 클래스에서 결과를 얻는 방법의 요점입니다. 지금은 여기입니다!

클래스 내에서 결과는 어떻게든 계산되어야 합니다. 그리고 지금 결과를 반환해야 하지만 다른 순간에는 필요하지 않다는 것을 학급에서 여러분의 참여 없이 어떻게 이해할까요?

따라서 외부에서 호출할 수 있는 클래스 내부의 메서드가 필요합니다. 따라서 공개되어야 합니다.

물론 클래스 내부의 모든 데이터를 읽고 클래스 변수에 쓰는 private 메서드를 만들 수 있지만 public 메서드는 private 메서드를 호출합니다. 그러나 어떤 메소드의 호출은 모두 동일해야 합니다. 그리고 사적인 방법으로 고려되는 사항, 계산이 얼마나 복잡한지, 계산을 위한 변수는 무엇입니까? 모든 것은 귀하의 재량에 따라 귀하의 책임입니다.

 
Vikon :
이것이 클래스 내에서 함수를 호출하는 방법, 즉 private: public: 서로 작업하는 방법, 클래스에 데이터를 전달하고 클래스에서 결과를 얻는 방법의 요점입니다. 지금은 여기입니다!
#property version    "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int       inputA= 1 ;
input int       inputB= 3 ;

class ASD
  {
private :
   // Здесь располагаются переменные и функции, доступные только внутри класса
public :
   int  Add( int a, int b)
     {
       Print ( __FUNCTION__ , ": Результат сложения: a" ,a, " + b" ,b, " = " ,a+b);
       return (a+b);
     }
  } ar;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   ar.Add( inputA, inputB );
  }
//+------------------------------------------------------------------+
제대로 작동하는지 확인하지 않은 것 같습니다.)
 
Alexey Kozitsyn :
제대로 작동하는지 확인하지 않은 것 같습니다.)

여기, 고마워, 난 이미 움직이기 시작했어 -

스크립트:

#include <ASD.mqh>
ASD ar;
void OnStart ()
  {
   ar.fg ( 3 , 5 );
   ar.sf ();
  }

수업:

class ASD
  {
private :
   int d;
   int g ( int a_s, int a_d){d=a_s+a_d; return (d=a_s+a_d); }
public :
void fg ( int a_s, int a_d)  { g (a_s,a_d); }
void sf ()                 { Alert (d);}
  };

경고는 8의 결과를 제공하지만 이것은 클래스의 경고이며 이제 스크립트의 경고가 필요합니다.

 
Vikon :

여기, 고마워, 난 이미 움직이기 시작했어 -

스크립트:

#include <ASD.mqh>
ASD ar;
void OnStart ()
  {
   ar.fg ( 3 , 5 );
   ar.sf ();
  }

수업:

class ASD
  {
private :
   int d;
   int g ( int a_s, int a_d){d=a_s+a_d; return (d=a_s+a_d); }
public :
void fg ( int a_s, int a_d)  { g (a_s,a_d); }
void sf ()                 { Alert (d);}
  };

경고는 8의 결과를 제공하지만 이것은 클래스의 경고이며 이제 스크립트의 경고가 필요합니다.

좋습니다. 클래스에서 Alert() 메서드를 선언하고 ar.Alert()라고 부릅니다. 하지만 지금은 sf() 메서드도 동일합니다. 나는 당신이 d 필드에 값을 쓴 후에 당신이보고 싶은 것을 잘 이해하지 못합니까?
 
Alexey Kozitsyn :
좋습니다. 클래스에서 Alert() 메서드를 선언하고 ar.Alert()라고 부릅니다. 하지만 지금은 sf() 메서드도 동일합니다. 나는 당신이 d 필드에 값을 쓴 후에 당신이보고 싶은 것을 잘 이해하지 못합니까?
sf() 메서드를 호출하지 않고 d 값을 얻으려면 공용 메서드를 추가해야 합니다. int GetD() const { return( d ); }. 그리고 스크립트에서 Alert ( ar.GetD() );
 
Alexey Kozitsyn :
제대로 작동하는지 확인하지 않은 것 같습니다.)

모두! 정말 감사합니다! 일어난-

스크립트:

#include <ASD.mqh>
ASD ar;
void OnStart ()
  {
   ar.fg ( 3 , 5 );
   Alert ( ar.sf ());
  }

수업:

class ASD
  {
private :
   int d;
   int g   ( int a_s, int a_d)  { return (d=a_s+a_d); }
public :
  void fg ( int a_s, int a_d)  { g (a_s,a_d); }
  int sf  ()                 { return (d);}    
  
  };


씹겠다!

 

이 스레드에서 누가 테스터가 고장났다고 썼는지 기억나지 않지만, 아마 고장날 수 있다고 대답하겠습니다. 그는 다른 시간 조각을 삼키거나 임의의 부분에서 계산을 시작합니다(모든 인용문이 거기에 있지만).

보신 분들은 이해하실 거라 생각합니다.

 
좋은 하루, MSDN에서 가져올 수 있는지 알려주세요
MRoubd 함수?
(주어진 의미의 배수로 반올림된 숫자를 반환)

또는 예를 들어 2285.13을 (0.25) 2285.00 __ 2285.25 ____ 2285.50 ____ 2285.75의 배수로 반올림하는 방법
 
계정이 아닌 쌍의 레버리지를 찾는 방법은 무엇입니까?
 
SAMER :
계정이 아닌 쌍의 레버리지를 찾는 방법은 무엇입니까?

제공되는 레버리지:

long liverage= AccountInfoInteger ( ACCOUNT_LEVERAGE );