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

 

그러나 나는 흥미로운 것을 발견했습니다 ... 무언가가이 차이에주의를 기울이지 않았습니다.

mql4에서 StringConcatenate() 함수를 통해 이 문자열 추가 를 작성하면 다음을 얻습니다.

 eStr+= StringConcatenate (i, ": " ,eArray[i], ", " );

그리고 mql5에서 그냥

 StringConcatenate (eStr, i, ": " , eArray[i], ", " );
제가 잘못 사용하고 있는건 아닐지...........
 
Alexey Viktorov :

이 함수는 MQL4에서와 다르게 MQL5에서 작동하므로 사용하지 않는 것이 좋습니다. 따라서 MQL5 언어로 전환 시 이해에 어려움이 있을 수 있습니다.


내가 틀릴 수도 있지만...

mql4

mql5

보시다시피 mql5에서는 간단한 문자열 추가와 매우 유사합니다.

그리고 이 함수에서는 추가적인 걱정 없이 타입 변환이 일어납니다.

예, 논의되었을 때 나는 보지 않을 것입니다

세 가지 옵션 StringAdd() , StringConcatenate() 및 더하기 기호 중,

플러스는 더 저렴합니다.

 
ANDREY :

1.6251을 i 만큼 명시적 으로 문자열로 캐스팅 할 수 없는 이유는 무엇입니까? 이것은 더 짧고 컴퓨팅 리소스를 절약합니다 ..... 나에게 보입니다.

설명 감사합니다

이러한 변환은 최대 16자(내 두뇌가 완전히 건조되지 않은 경우)의 값을 제공할 수 있기 때문입니다. 그리고 DoubleToString() 함수는 문자열을 지정된 소수점 이하 자릿수 로 "자릅니다". 그리고 정수 i는 무엇을 말하든 정수로 남을 것입니다.

 
Alekseu Fedotov :

예, 논의되었을 때 나는 보지 않을 것입니다

세 가지 옵션 StringAdd() , StringConcatenate() 및 더하기 기호 중,

플러스는 더 저렴합니다.

아마도... 하지만 나는 그런 사소한 불일치를 찾는 것에 찬성하지 않습니다.
 
TrederMT5 :

코드를 변경했지만 여전히 같은 위치의 범위를 벗어났습니다.

N이 항상 배열에 있는지 확인
 double price[N];

유효한 값을 취합니까?
 

값을 변경할 때 Print() 가 한 번 인쇄되도록 하는 방법을 알려주세요.

       string symbol;
       long currChart= ChartFirst (); int i= 0 ;
       while (currChart>= 0 )
        {
         if ( ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 )== true ) 
           { 
             if ( ChartSymbol (currChart)!=symbol)
              {
               symbol= ChartSymbol (currChart); Print (symbol);
              }
           } 
         currChart= ChartNext (currChart);  i++;
        }
 
MakarFX :

값을 변경할 때 Print() 가 한 번 인쇄되도록 하는 방법을 알려주세요.

카운터를 넣어

       string symbol;
       long currChart= ChartFirst (); int i= 0 ;
       while (currChart>= 0 )
        {
         if ( ChartGetInteger (currChart, CHART_BRING_TO_TOP , 0 )== true ) 
           { 
             if ( ChartSymbol (currChart)!=symbol)
              {
               i++;
               symbol= ChartSymbol (currChart); 
               if (i== 1 ) Print (symbol);
              }
           } 
         currChart= ChartNext (currChart);
        }
 
Vitaly Muzichenko :

카운터를 넣어

감사해요
 
Vitaly Muzichenko :

카운터를 넣어

작동하지 않습니다(
 
MakarFX :

값이 변경될 때 Print() 가 한 번 인쇄되도록 하는 방법을 알려주세요.

나는 부울을 선호한다

 if (Work== false ) // Критическая ошибка
     {
       if (AlertWork== false )   // Если Алерта еще не было
        {   Alert ( "Critical error. The expert Advisor doesn't work." ); AlertWork= true ; }
       return ;
     }