포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 636

 

코드 줄:

 int Dgt=MarketInfo( Symbol (),MODE_DIGITS);

경고:

유형 변환으로 인한 데이터 손실 가능성 FinBuy1531.mq4 144 7

제 생각에는 유형이 일치합니다. 여기서 무슨 문제가 있습니까?

 
hurkin :

코드 줄:

경고:

유형 변환으로 인한 데이터 손실 가능성 FinBuy1531.mq4 144 7

제 생각에는 유형이 일치합니다. 여기서 무슨 문제가 있습니까?

일치하지 않으면 MarketInfo(..)가 이중 값을 반환합니다.

이 같은:

 int Dgt=( int )MarketInfo( Symbol (),MODE_DIGITS);
 
r772ra :

일치하지 않으면 MarketInfo(..)가 이중 값을 반환합니다.

이 같은:

참조 예:

이중 vpoint = MarketInfo ( "EURUSD" , MODE_POINT );
    int vdigits = MarketInfo ( "EURUSD" , MODE_DIGITS );
뭔가 잘못된 것 같나요?

 
Shurkin :

참조 예:

이중 vpoint = MarketInfo ( "EURUSD" , MODE_POINT );
    int vdigits = MarketInfo ( "EURUSD" , MODE_DIGITS );
뭔가 잘못된 것 같나요?

"MODE_DIGITS"의 경우 "MarketInfo"는 "double" 유형의 값을 반환합니다. 여기에 "MarketInfo" 구현 오류가 있는 것 같습니다. 따라서 다음과 같이 정확합니다.

 int Dgt=( int )MarketInfo( Symbol (),MODE_DIGITS);
 

마지막 질문입니다!

OBJ_LABEL 이 있습니다. 개체 설명에는 텍스트(이름 아님)와 숫자가 있으며 눈금에 따라 그림이 바뀝니다.

숫자를 추출하는 방법?

 
Top2n :

마지막 질문입니다!

OBJ_LABEL이(가) 있습니다. 개체 설명에는 텍스트(이름 아님)와 숫자가 있으며 눈금에 따라 그림이 바뀝니다.

숫자를 추출하는 방법?

StringFind 가 도와드리겠습니다. 그리고 이미 int StrToInteger 또는 long StringToInteger 가 있습니다.
 

안녕하세요. 문제를 해결하려면 도와주세요.

MT4 646 빌드가 설치되어 있습니다. ...\MetaTrader 4 Admiral Markets AS\MQL4\Indicators 폴더에 두 개의 파일을 넣었습니다. 하나는 표시기 코드가 LC-RSI_Histo3.mq4이고 다른 하나는 컴파일된 표시기 LC-RSI_Histo3.ex4입니다. 표시기를 시작합니다. 작동합니다. 그러나 소스 코드를 변경하고 싶습니다. 내장 코드 편집기를 엽니다. 문제는 코드에 대한 외관상의 변경(예: 공백 추가) 및 후속 컴파일 후에도 표시기가 실행 후 올바르게 작동하지 않는다는 것입니다. 모든 열에 동일한 값이 표시됩니다.

동시에 컴파일된 .ex4 파일(LC-RSI_Histo3_1.ex4라는 이름으로 첨부됨)의 무게는 폴더에 복사된 원본 파일보다 훨씬 큽니다.

이유는 무엇입니까? 그것을 고치는 방법?

 

여러분, 안녕하세요!

오류 처리에 대한 도움말: "권한 부족" 또는 "권한 부족" 코드 #7

다음과 같은 일이 발생합니다. EURCHFХ M1 쌍의 어드바이저는 위치를 열 수 없으며 이 오류가 생성되며(로그에서 발견됨) 현재 다른 쌍 및 EURCHF M5에서 문제 없이 열립니다. 문제없이 손으로 열립니다. 다른 브로커에서 작동합니다. 무엇이 문제가 될 수 있습니까?

당신의 도움에 미리 감사드립니다.

 
AlexeyVik :
StringFind 가 도와드리겠습니다. 그리고 이미 int StrToInteger 또는 long StringToInteger 가 있습니다.


이 함수는 숫자 자체가 아니라 용어의 위치 숫자를 반환합니다.

 int    StringFind (
   string   string_value,         // строка, в которой ищем
   string   match_substring,     // что ищем
   int      start_pos= 0            // с какой позиции начинать поиск
   );

포지션 번호를 받았다고 가정해 봅시다. 그러면 이 포지션을 철회하는 방법은 무엇입니까?

 
Boeing747 :

문자열 배열의 요소가 알파벳 순서로 그룹화되는 예제에 대한 코드가 있는 사람이 있습니까?

미리 감사드립니다.


   string w[]={ "E" , "c" , "f" , "b" , "j" , "R" , "A" , "H" , "a" , "c" }; // массив для экзекуции
   int size= ArraySize (w);
   string abc[]={ "a" , "b" , "c" , "d" , "e" , "f" , "g" , "h" , "i" , "j" , "k" , "l" , "m" , "n" , "o" , "p" , "q" , "r" , "s" , "t" , "u" , "v" , "w" , "x" , "y" , "z" };
   string ABC[]={ "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" , "J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" , "S" , "T" , "U" , "V" , "W" , "X" , "Y" , "Z" };
   int c,e,i;

   for (i= 0 ; i< 26 ; i++)
     {
       for (e=c; e<size; e++)
        {
         if (ABC[i]==w[e])
           {
            w[e]=w[c];
            w[c]=ABC[i];
            c++;
           }
         else
           {
             if (abc[i]==w[e])
              {
               w[e]=w[c];
               w[c]=abc[i];
               c++;
              }
           }


        }
     }
   
   Alert (w[ 0 ],w[ 1 ],w[ 2 ],w[ 3 ],w[ 4 ],w[ 5 ],w[ 6 ],w[ 7 ],w[ 8 ],w[ 9 ]);

적용된 작업의 또 다른 예

   string w[]={ "EURUSD" , "USDCHF" , "BRNQ4" , "AUDUSD" , "GOLD" , "AUDCHF" , "NZDUSD" , "USDCAD" , "SILVER" , "GBPUSD" }; // массив для экзекуции
   int size= ArraySize (w);
   string f= " " ;
   string ABC[]={ "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" , "J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" , "S" , "T" , "U" , "V" , "W" , "X" , "Y" , "Z" };
   int c,e,i;

   for (i= 0 ; i< 26 ; i++)
     {
       for (e=c; e<size; e++)
        {
         f=w[e];
         if (ABC[i]== StringSubstr (f, 0 , 1 ))
           {
            w[e]=w[c];
            w[c]=f;
            c++;
           }
        }
     }

   Alert (w[ 0 ], ", " ,w[ 1 ], ", " ,w[ 2 ], ", " ,w[ 3 ], ", " ,w[ 4 ], ", " ,w[ 5 ], ", " ,w[ 6 ], ", " ,w[ 7 ], ", " ,w[ 8 ], ", " ,w[ 9 ]);