마침표 값이 1 증가하지 않기 때문에 이렇게 할 수 없습니다. 다음과 같이 고유한 열거 인덱스를 구성해야 합니다.
int TF( int i) { switch (i) { case 1 : return ( PERIOD_M1 ); case 2 : return ( PERIOD_M5 ); case 3 : return ( PERIOD_M15 ); case 4 : return ( PERIOD_M30 ); case 5 : return ( PERIOD_H1 ); case 6 : return ( PERIOD_H4 ); case 7 : return ( PERIOD_D1 ); case 8 : return ( PERIOD_W1 ); case 9 : return ( PERIOD_MN1 ); } }
sergey1294 :
마침표 값이 1 증가하지 않기 때문에 이 작업을 수행할 수 없습니다. 다음과 같이 고유한 열거 인덱스를 구성해야 합니다.
모든 것이 그렇게 간단하다면. 값이 고르게 분포되지 않습니다. PERIOD_H1이 60이고 다음 기간 PERIOD_H2 가 이미 120이라고 가정해 보겠습니다.
마침표 값이 1 증가하지 않기 때문에 이 작업을 수행할 수 없습니다. 다음과 같이 고유한 열거 인덱스를 구성해야 합니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков
- www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Периоды графиков - Документация по MQL5
Interesting :
맞아, MT4에서 내가 그랬어
아마도 두 가지 함수를 도입해야 할 것입니다. 1 - 열거의 요소 수를 반환하고, 2 - 숫자별로 요소를 반환합니다.
결론은 열거형은 미리 정의된 것이며 모든 값을 볼 수 있다는 것입니다.
그러므로 친애하는 sergey1294 , 그는 번역 테이블을 직렬 호출로 설명하도록 조언했습니다.
여기서 값이 1만큼 증가하면 목록의 다음 열거 값이 호출됩니다.
일반적으로 해결책은 하나뿐입니다. 각 열거에 대해 특별한 열거자 함수를 작성하십시오. 예를 들어 타임프레임의 경우:
ENUM_TIMEFRAMES GetPeriodEnumerator(uchar i);
이제 얼마나 많은 열거가 있고 거기에 얼마나 많은 변환기 기능이 있어야 하는지 추정해 봅시다(각 열거에 대해 하나씩).
C-4 :
일반적으로 해결책은 하나뿐입니다. 각 열거에 대해 특별한 열거자 함수를 작성하십시오. 예를 들어 Timeframes의 경우: 이제 얼마나 많은 열거형이 있고 거기에 얼마나 많은 변환기 기능이 있어야 하는지 추정해 보겠습니다(각 열거형에 대해 하나씩).
MT5에는 21개의 타임프레임이 있습니다. 최종 버전은 다음과 같습니다.일반적으로 해결책은 하나뿐입니다. 각 열거에 대해 특별한 열거자 함수를 작성하십시오. 예를 들어 Timeframes의 경우: 이제 얼마나 많은 열거형이 있고 거기에 얼마나 많은 변환기 기능이 있어야 하는지 추정해 보겠습니다(각 열거형에 대해 하나씩).
ENUM_TIMEFRAMES GetPeriodEnumerator( uchar i) { switch (i) { case 0 return ( PERIOD_M1 ); case 1 return ( PERIOD_M2 ); case 2 return ( PERIOD_M3 ); case 3 return ( PERIOD_M4 ); case 4 return ( PERIOD_M5 ); case 5 return ( PERIOD_M6 ); case 6 return ( PERIOD_M10 ); case 7 return ( PERIOD_M12 ); case 8 return ( PERIOD_M15 ); case 9 return ( PERIOD_M20 ); case 10 return ( PERIOD_M30 ); case 11 return ( PERIOD_H1 ); case 12 return ( PERIOD_H2 ); case 13 return ( PERIOD_H3 ); case 14 return ( PERIOD_H4 ); case 15 return ( PERIOD_H6 ); case 16 return ( PERIOD_H8 ); case 17 return ( PERIOD_H12 ); case 18 return ( PERIOD_D1 ); case 19 return ( PERIOD_W1 ); case 20 return ( PERIOD_MN1 ); } return (- 1 ); }
sergey1294 :
MT5에는 21개의 타임프레임이 있습니다. 최종 버전은 다음과 같습니다.
나머지 표준 열거자(식별자)에 대해 동일한 작업을 수행해야 합니다. + 다른 경우 사용자 지정 항목을 잊지 마세요...
MT5에는 21개의 타임프레임이 있습니다. 최종 버전은 다음과 같습니다.
다른 옵션이 있습니다 . 시간 프레임 값 을 배열에 쓰고 이 배열을 반복하여 필요한 값을 얻습니다.

Документация по MQL5: Предопределенные переменные / _Period
- www.mql5.com
Предопределенные переменные / _Period - Документация по MQL5
일반적으로 두 가지 옵션이 있습니다
함수를 사용하는 첫 번째, 마지막 게시물에 콜론을 넣는 것을 잊었습니다.
ENUM_TIMEFRAMES GetPeriodEnumerator( uchar i) { switch (i) { case 0 : return ( PERIOD_M1 ); case 1 : return ( PERIOD_M2 ); case 2 : return ( PERIOD_M3 ); case 3 : return ( PERIOD_M4 ); case 4 : return ( PERIOD_M5 ); case 5 : return ( PERIOD_M6 ); case 6 : return ( PERIOD_M10 ); case 7 : return ( PERIOD_M12 ); case 8 : return ( PERIOD_M15 ); case 9 : return ( PERIOD_M20 ); case 10 : return ( PERIOD_M30 ); case 11 : return ( PERIOD_H1 ); case 12 : return ( PERIOD_H2 ); case 13 : return ( PERIOD_H3 ); case 14 : return ( PERIOD_H4 ); case 15 : return ( PERIOD_H6 ); case 16 : return ( PERIOD_H8 ); case 17 : return ( PERIOD_H12 ); case 18 : return ( PERIOD_D1 ); case 19 : return ( PERIOD_W1 ); case 20 : return ( PERIOD_MN1 ); } return (- 1 ); }배열을 사용하는 두 번째 옵션
ENUM_TIMEFRAMES GetPeriodEnumerator[ 21 ]= { PERIOD_M1 , PERIOD_M2 , PERIOD_M3 , PERIOD_M4 , PERIOD_M5 , PERIOD_M6 , PERIOD_M10 , PERIOD_M12 , PERIOD_M15 , PERIOD_M20 , PERIOD_M30 , PERIOD_H1 , PERIOD_H2 , PERIOD_H3 , PERIOD_H4 , PERIOD_H6 , PERIOD_H8 , PERIOD_H12 , PERIOD_D1 , PERIOD_W1 , PERIOD_MN1 };
열거형이 있다고 가정해 보겠습니다. 예를 들어 루프에서 이 열거형의 가능한 모든 값을 순차적으로 가져오는 방법은 무엇입니까?
ENUM_TIMEFRAMES tf1;
저것들. tf1++는 일관되게 PERIOD_M1 , PERIOD_M2 , PERIOD_M5를 반환해야 합니다... 언어 도구를 사용하여 이 작업을 수행할 수 없다고 생각합니다.