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

 
leonerd :


터미널에서 모든 차트 ID를 정렬하는 방법은 무엇입니까? 내 코드의 current_chart_id는 1662429437이고 first_chart_id는 1859831371입니다. ChartNext()는 이미 -1을 반환합니다. ChartFirst()란 무엇입니까?

먼저은 무슨 뜻인가요? 먼저 개봉? ID가 현재 차트의 ID(나중에 열림)보다 큰 이유는 무엇입니까?

분명히 이것은 long -> int 변환 때문입니다.

 
Artyom Trishkin :

덕분에 예전에는 그랬습니다.

 
for while 루프 등이 어떻게 생성되는지 누가 압니까? 내 기술에 따라 주기를 만들고 싶습니다. 무엇을 공부할 수 있나요?
 
leonerd :

분명히 이것은 long -> int 변환 때문입니다.

그러한 논리가 없습니다. https://www.mql5.com/en/docs/chart_operations/chartnext 도움말의 예를 참조하세요.

차트 식별자 번호에는 형성 논리가 없습니다. 아마도 이것은 Windows의 창 핸들이거나 터미널의 도움말에서 모든 예제 차트 ID를 정렬하기 위한 다른 숫자일 것입니다. 충분합니다. 코드 기반에 표시기를 배치했습니다. 두 번째 TF를 빌드하는 데 도움이 되는 예제를 사용했습니다. 모든 것이 시계처럼 작동합니다. 내 사용자 지정 차트를 찾습니다. ID 차트를 기억하고 나중에 틱을 생성합니다.


Seric29 :
for while 루프 등이 어떻게 생성되는지 누가 압니까? 내 기술에 따라 사이클을 만들고 싶습니다. 무엇을 공부할 수 있습니까?

흠, 며칠 동안 당신의 질문을보고 있었지만 어떤 대답을 듣고 싶습니까? - 이들은 언어 연산자이며 도움말에 표시된 대로 개발자가 정의한 대로 작동합니다. 프로그래밍 언어가 없는 언어 연산자는 "정렬된 대로" 설명됩니다. - 언어 연산자는 항상 "있는 그대로 제공"됩니다. - 그 이상도 이하도 아닙니다.

다음은 MQL4 언어 연산자입니다. https://docs.mql4.com/ru/basis/operators - "이것과 같습니다" - 이것은 모든 프로그래밍 언어기본 입니다.

 
Igor Makanu :

흠, 며칠 동안 당신의 질문을보고 있었지만 어떤 대답을 듣고 싶습니까? - 이들은 언어 연산자이며 도움말에 표시된 대로 개발자가 정의한 대로 작동합니다. 프로그래밍 언어가 없는 언어 연산자는 "정렬된 대로" 설명됩니다. - 언어 연산자는 항상 "있는 그대로 제공"됩니다. - 그 이상도 이하도 아닙니다.

다음은 MQL4 언어 연산자입니다. https://docs.mql4.com/ru/basis/operators - "이것과 같습니다" - 이것은 모든 프로그래밍 언어기본 입니다.

그래서 필요한 정보의 절반이 숨겨져 있다고 기술하지 않은 것이 나쁩니다. 예, 작동 방식에 관심이 있습니다. mql이 C++ 및 파스칼에 있는 적어도 3개의 사이클을 단순화했으며 이러한 사이클을 통해 불필요한 플래그 및 변수의 검사 및 초기화 횟수를 더 쉽게 줄일 수 있다는 것이 밝혀졌기 때문에 나만의 사이클을 만들고 싶습니다. 내 자신을 만들고 싶었지만 이러한 반복이 어떻게 발생하는지, 코드 블록에서 루프를 작성하고 코드도 맞는 중괄호를 열 수 있도록 어떻게 수행되는지 이해할 수 없습니다. pliz를 쓸 사람이라면 매우 흥미로운 사람들입니다.

 
Seric29 :

또한 mql은 C++ 및 파스칼에 존재하는 최소 3개의 루프를 단순화했습니다.

발명하지 마십시오. 대학에서 Pascal과 C ++를 모두 공부했지만 모든 것이 여전히 있습니다.

C++ : for , while , do...while

파스칼: for, while, repeat

MQL: for, while, do...while

????


Seric29 :

그래서 필요한 정보의 절반이 숨겨져 있다고 기술하지 않은 것이 나쁩니다. 예, 작동 방식에 관심이 있습니다.

나는 당신의 질문의 부조리를 설명하는 방법조차 모르지만 어쨌든 시도할 것이므로 당신은 다음과 같이 말합니다.

당신: - "나는 러시아어를 공부하고 있고 알파벳이 어떻게 작동하는지 알아야 해요"

나: "알파벳은 어떤 식으로든 배열되지 않고 그냥 글자로 되어 있고 단어를 형성합니다."( MQL에는 약 12개의 연산자가 있으며 프로그램을 형성합니다 ) https://docs.mql4.com/ru/basis/ 연산자

당신: "안 돼요! 짐바브웨 알파벳의 글자가 의미하는 바가 크다는 걸 압니다!"

나: "안타깝게도 저는 이 언어를 모릅니다. 하지만 러시아어로 문자는 단지 그것이 문자라는 것을 의미합니다. 물론 음성 분석을 할 수 있지만 이것이 문자가 단어의 기본 요소가 되는 것을 막지는 못합니다"

당신 : "흠, 이상하지만 짐바브웨 언어로 "a"라고 말하면 편지가 될 것이고 "A"가 가정의 평화이고 "aAaAaAa!"이면 내가 가장 큰 것을 가지고 있음을 의미합니다. 고양이! - 러시아어로 글자가 어떻게 배열되어 있는지 볼 수 없다는 것은 아닙니다! - 숨은 기술이 있다....


일반적으로 이것이 내가 당신과의 대화를 보는 방법입니다. 내 영어에 대해 실례합니다. 다른 방법으로는 할 수 없습니다.

)))

 
Igor Makanu :

그러한 논리가 없습니다. https://www.mql5.com/en/docs/chart_operations/chartnext 도움말의 예를 참조하세요.

차트 식별자 번호에는 형성 논리가 없습니다. 아마도 이것은 Windows의 창 핸들이거나 터미널의 도움말에서 모든 예제 차트 ID를 정렬하기 위한 다른 숫자일 것입니다. 충분합니다. 코드 기반에 표시기를 배치했습니다. 두 번째 TF를 빌드하는 데 도움이 되는 예제를 사용했습니다. 모든 것이 시계처럼 작동합니다. 내 사용자 지정 차트를 찾습니다. 차트 ID를 기억하고 나중에 틱을 생성합니다.

ChartFirst()는 열린 차트에서 가장 작은 ID를 반환합니까?

 
leonerd :

ChartFirst()는 열린 차트에서 가장 작은 ID를 반환합니까?

또 안돼! - ChartFirst()의 숫자 값이 의미가 없습니다.

추신: ......제가 틀릴 수도 있지만 ChartFirst()가 차트 위치 순서대로 첫 번째가 아닌 가장 먼저 열린 차트의 식별자를 반환한다는 내용을 어딘가에서 읽었습니다(이동할 수 있음 ), 그러나 터미널에서 먼저 열린 것은 - 일반적으로 내가 옳다는 것은 사실이 아니다.


ChartFirst()는 ChartNext()를 사용하여 차트를 반복할 수 있는 시작점을 제공합니다. 다음과 같습니다. 첫 번째 식별자 가져오기 ChartFirst() - 값을 기억하고 이 값을 ChartNext()에 전달합니다. ChartFirst()의 첫 번째 값을 반복합니다. 이는 가능한 모든 차트를 살펴보았음을 의미합니다.

다음은 KB에 있는 내 표시기의 코드입니다. 도움말에서 찾아 확인하고 차트를 찾는 데 사용합니다.

 //+------------------------------------------------------------------+
//| поиск  идентификатора графика                                    |
//+------------------------------------------------------------------+
long CheckChart( string sym, int period, int &wh)
  {
   long result= 0 ,id= ChartFirst ();
   while (id>= 0 )
     {
       if ( ChartSymbol (id)==sym && ChartPeriod (id)==period && ChartGetInteger (id, CHART_IS_OFFLINE ))
        {
         result=id;
         ChartSetInteger (id, CHART_AUTOSCROLL , true );
         ChartSetInteger (id, CHART_SHIFT , true );
         ChartNavigate (id, CHART_END );
         ChartRedraw (id);
         wh=WindowHandle(sym,period);
         PrintFormat ( "Найдено окно графика: [%s,%d]" ,sym,period);
         break ;
        }
      id= ChartNext (id);
     }
   return (result);
  }
//+------------------------------------------------------------------+
 
Igor Makanu :

또 안돼! - ChartFirst()의 숫자 값이 의미가 없습니다.

추신: ......제가 틀릴 수도 있지만 ChartFirst()가 차트 위치 순서대로 첫 번째가 아닌 가장 먼저 열린 차트의 식별자를 반환한다는 내용을 어딘가에서 읽었습니다(이동할 수 있음 ), 그러나 터미널에서 먼저 열린 것은 - 일반적으로 내가 옳다는 것은 사실이 아니다.


ChartFirst()는 ChartNext()를 사용하여 차트를 반복할 수 있는 시작점을 제공합니다. 다음과 같습니다. 첫 번째 식별자 가져오기 ChartFirst() - 값을 기억하고 이 값을 ChartNext ()에 전달합니다. ChartFirst()의 첫 번째 값을 반복합니다. 이는 가능한 모든 차트를 통과했음을 의미합니다 .

다음은 KB에 있는 내 표시기의 코드입니다. 도움말에서 찾아 확인하고 차트를 찾는 데 사용합니다.

기이한. "ChartFirst()의 첫 번째 값이 반복될 때까지"에 대한 도움말은 작성되지 않았습니다. 차트 목록의 끝에서 -1 을 반환합니다.

반환 값

차트 ID. 그래프 목록이 끝나면 함수는 -1을 반환합니다.

Документация по MQL5: Операции с графиками / ChartNext
Документация по MQL5: Операции с графиками / ChartNext
  • www.mql5.com
Операции с графиками / ChartNext - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin :

기이한. "ChartFirst()의 첫 번째 값이 반복될 때까지"에 대한 도움말은 작성되지 않았습니다. 차트 목록의 끝에서 -1 을 반환합니다.

나는 회개합니다 - 죄인입니다! 증명서를 안읽고 술에 취해 포럼에 글을 남겼어요!

사유: