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

 
안녕하세요. 가격이 라운드 수준에 도달했음을 프로그래밍 방식으로 어떻게 이해할 수 있습니까?
 
profitnik :
안녕하세요, 말씀해 주세요. 가격이 라운드 수준에 도달했음을 프로그래밍 방식으로 이해하려면 어떻게 해야 합니까?
가격을 원하는 소수점 이하 자릿수로 정규화합니다. NormalizeDouble() .
 

함수 계산 결과의 여러 값을 반환하는 방법을 알려주십시오.

ABC 함수가 있다고 가정해 보겠습니다. 한 번에 세 개의 변수 값을 가져오고 싶은데 어떻게 해야 할까요?


 int ABC()
  {
   int A= 1 ;
   int B= 1 ;
   int C= 1 ;

   return (A,B,C)
 }
 
-Aleks- :

함수 계산 결과의 여러 값을 반환하는 방법을 알려주십시오.

ABC 함수가 있다고 가정해 보겠습니다. 한 번에 세 개의 변수 값을 가져오고 싶은데 어떻게 해야 할까요?

 //int a, b, c;

OnTick ()
 {
 //int a, b, c;
 ABC(a, b, c);
 Print (a, " | " , b, " | " , c);
 }

void ABC( int &A, int &B, int &C)
  {
   A= 1 ;
   B= 1 ;
   C= 1 ;
 }
그렇게
 
Vitaly Muzichenko :
그렇게

고맙습니다.

하지만 알 수 없습니다. 입력에 계산할 변수가 2개 있고 3개가 나와야 한다면( int 및 double의 유형이 다름) 어떻게 해야 합니까?

 
-Aleks- :

고맙습니다.

하지만 알 수 없습니다. 입력에 계산할 변수가 2개 있고 3개가 나와야 한다면( int 및 double의 유형이 다름) 어떻게 해야 합니까?


 OnTick ()
 {
   double x,y,c;

   int     q= 5 ;
   double w= 0.1 ;
   ABC(q,w);

   Print (x, " | " , y, " | " , c);
 }

void ABC( int A, double B)
  {
   x=A+B;
   y=A-B;
   c=A*B;
  }
 
-Aleks- :

고맙습니다.

하지만 알 수 없습니다. 입력에 계산할 변수가 2개 있고 3개가 나와야 한다면( int 및 double의 유형이 다름) 어떻게 해야 합니까?

 int a, b;
double c;

OnTick ()
 {
 a= 11 ; b= 3 ;
 ABC(a, b, c);
 Print (a, " | " ,b, " | " ,c);
 }

void ABC( int &A, int &B, double &C)
  {
   A=B+ 4 ;
   B=A- 2 ;
   C=( double )A/B;
 }
 

느린 목격에 대해 사과드립니다. 하지만 제 예제를 사용하여 이것을 구성하는 방법을 이해하는 것이 더 좋습니다. 다른 위치의 코드에서 여러 번 호출되는 함수가 있습니다. 이제 하나의 값을 반환하지만 더 필요합니다. 2 _높음 및 _낮음 - 여기에 있는 방법?


 int BarPeresek_iMAf( int PeriodMA)
  {
   int TFT= 0 ;
   int shiftMAT= 0 ;
   int typeMAT= 0 ;
   int priceMAT= 0 ;
   int BarPeresek= 0 ;
   if ( Bars >PeriodMA)
     {
       for ( int X= 1 ;X< 1000 ; X++)
        {
         double MAT= NormalizeDouble ( iMA ( Symbol (),TFT,PeriodMA,shiftMAT,typeMAT,priceMAT,X), Digits );
         if (( Low [X]>MAT && High [X]>MAT) || 
            ( Low [X]<MAT && High [X]<MAT))BarPeresek++;
         else {BarPeresek++; break ;}
        }

     }
   double _High= High [BarPeresek]; //Надо получить сразу из функции
   double _Low= Low [BarPeresek];   //Надо получить сразу из функции
   return BarPeresek;
  }
 
-Aleks- :

느린 목격에 대해 사과드립니다. 하지만 제 예제를 사용하여 이것을 구성하는 방법을 이해하는 것이 더 좋습니다. 다른 위치의 코드에서 여러 번 호출되는 함수가 있습니다. 이제 하나의 값을 반환하지만 더 필요합니다. 2 _높음 및 _낮음 - 여기에 있는 방법?



 OnTick ()
{
   double _High= High [BarPeresek_iMAf(Per_MA)];
   double _Low= Low [BarPeresek_iMAf(Per_MA)];
} 

int BarPeresek_iMAf( int PeriodMA)
  {
   int TFT= 0 ;
   int shiftMAT= 0 ;
   int typeMAT= 0 ;
   int priceMAT= 0 ;
   int BarPeresek= 0 ;
   if ( Bars >PeriodMA)
     {
       for ( int X= 1 ;X< 1000 ; X++)
        {
         double MAT= NormalizeDouble ( iMA ( Symbol (),TFT,PeriodMA,shiftMAT,typeMAT,priceMAT,X), Digits );
         if (( Low [X]>MAT && High [X]>MAT) || 
            ( Low [X]<MAT && High [X]<MAT))BarPeresek++;
         else {BarPeresek++; break ;}
        }
     }
   return BarPeresek;
  }

 
Nikolay Gaylis :

아니요, 함수에서 값을 가져와야 합니다. _High 및 _Low는 예시일 뿐입니다...