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

 
Roman :

도움말은 EnumToString() 을 사용하여 변환된 ID가 아니라 시간 프레임의 값을 반환해야 한다고 말합니다.
_Period 변수는 int를 반환합니다.
ENUM_TIMEFRAMES Period()는 또한 int가 반환됨을 의미합니다.

당신이 의미합니다. 실제로 Period()는 ENUM_TIMEFRAMES 열거형 값을 반환합니다.

이 열거형의 상수 값을 인쇄하면 이미 익숙한 숫자가 표시됩니다.

그리고 항상 그래왔습니다. MQL5의 탄생 이후.

그리고 도움말에는 정확히 무엇을 반환하는지 명확하게 기록되어 있습니다.

값은 ENUM_TIMEFRAMES 열거형중 하나일 수 있습니다 .

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

당신이 의미합니다. 실제로 Period()는 ENUM_TIMEFRAMES 열거형 값을 반환합니다.

이 열거형의 상수 값을 인쇄하면 이미 익숙한 숫자가 표시됩니다.

그리고 항상 그래왔습니다. MQL5의 탄생 이후.

그리고 도움말에는 정확히 무엇을 반환하는지 명확하게 기록되어 있습니다.

어떤 유형의 ENUM 열거형을 반환합니까? ))
그리고 설명서에는 분명히 명시되어 있습니다.
현재 차트 의 기간 값을 반환합니다.

자신을 위해 인쇄

 Print ( PERIOD_M30 );
Print ( PERIOD_H1 );
 
Roman :

어떤 유형의 ENUM 열거형을 반환합니까? ))
그리고 설명서에는 명확하게 명시되어 있습니다
현재 차트 의 기간 값을 반환합니다.

자신을 위해 인쇄

나에게 무엇을 증명하고 싶습니까?

나는 무엇을 출력하고 어떤 데이터가 언제 어디서 반환되는지 잘 알고 있습니다.

현재 기간의 분 수가 필요합니까?

다음과 같이 가져옵니다.

 PeriodSeconds ( Period ())/ 60 ;

또는 다음과 같이:

 PeriodSeconds ( PERIOD_CURRENT )/ 60 ;

또는 다음과 같이:

 PeriodSeconds ()/ 60 ;
 
Artyom Trishkin :

나에게 무엇을 증명하고 싶습니까?

당신은 아무것도 가지고 있지 않습니다. 나는 문제에 대해 당신에게 쓴 것이 아니라 개발자에게 썼습니다.
M30과 H1에서 다시 인쇄하여 차이점을 확인하십시오.

 Print ( _Period );
 
Roman :

당신은 아무것도 가지고 있지 않습니다. 나는 문제에 대해 당신에게 쓴 것이 아니라 개발자에게 썼습니다.
M30과 H1에서 다시 인쇄하여 차이점을 확인하십시오.

문제가 되지 않습니다. 그리고 그녀는 결코 없었다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

Artyom Trishkin , 2020.04.09 22:11

나에게 무엇을 증명하고 싶습니까?

나는 무엇을 출력하고 어떤 데이터가 언제 어디서 반환되는지 잘 알고 있습니다.

현재 기간의 분 수가 필요합니까?

다음과 같이 가져옵니다.

 PeriodSeconds ( Period ())/ 60 ;

또는 다음과 같이:

 PeriodSeconds ( PERIOD_CURRENT )/ 60 ;

또는 다음과 같이:

 PeriodSeconds ()/ 60 ;

 
Roman :

당신은 아무것도 가지고 있지 않습니다. 나는 문제에 대해 당신에게 쓴 것이 아니라 개발자에게 썼습니다.
M30과 H1에서 다시 인쇄하여 차이점을 확인하십시오.

MQL4에서 벗어날 수 없습니까?

MQL4에서 다음을 수행하십시오.

 PeriodSeconds ( Period ())/ 60 ;

또는 다음과 같이:

 PeriodSeconds ( PERIOD_CURRENT )/ 60 ;

또는 다음과 같이:

 PeriodSeconds ()/ 60 ;

결과 값을 인쇄하십시오.

 
Artyom Trishkin :

MQL4에서 벗어날 수 없습니까?

MQL4에서 다음을 수행하십시오.

또는 다음과 같이:

또는 다음과 같이:

결과 값을 인쇄하십시오.

mql4는 사용하지 않음)) 익숙해지지 않았습니다.
도대체 왜 다른 60으로 나누어야합니까 ???
매뉴얼 어디에 이런 내용이 나와있나요?
이것들은 이미 버그를 우회하는 목발입니다.
이제 모든 시간대에 목발을 확인하십시오.

 Print ( _Period / 60 );
 
Roman :

mql4는 사용하지 않음)) 익숙해지지 않았습니다.
도대체 왜 다른 60으로 나누어야합니까 ???
매뉴얼 어디에 이런 내용이 나와있나요?
이것들은 이미 버그를 우회하는 목발입니다.

...
 
Roman :

_Period 변수와 M30까지 의 Period() 함수 는 값을 분 단위로 출력합니다.
기간이 M1이면 1
기간이 M2이면 2
...
기간이 M30이면 30

시간 기간이 60이 되는 것이 논리적입니다.
두 시간 120
세 시간 180
등.

그러나 H1부터 잘못된 값을 표시합니다.

프로그램이 "잘못된 값"을 표시하는 경우 프로그램이 "생각하는" 내용을 살펴봐야 하지만 이진 형식으로만 생각할 수 있습니다.

나는 확인했고 그것은 효과가 있었다:

 void OnStart ()
{

   ENUM_TIMEFRAMES allperiod[] = { PERIOD_CURRENT , 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
                                 };
   for ( int i = 0 ; i < ArraySize (allperiod); i++)
       Print (UintToBinary(( uint )allperiod[i]));

}
//+------------------------------------------------------------------+
string UintToBinary( uint n)
{
   string r = "" ;
   if (n == 0 ) return ( "0" );
   while (n != 0 )
   {
      r = (n % 2 == 0 ? "0" : "1" ) + r;
      n /= 2 ;
   }
   return (r);
}
//+------------------------------------------------------------------

2020.04.10 00:38:57.118 tst (EURUSD,H1) 0

2020.04.10 00:38:57.118 tst (EURUSD,H1) 하나

2020.04.10 00:38:57.118 tst (EURUSD,H1)

2020.04.10 00:38:57.118 tst (EURUSD,H1) 열하나

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 101

2020.04.10 00:38:57.118 tst (EURUSD,H1) 110

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1010

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1111

2020.04.10 00:38:57.118 tst (EURUSD,H1) 10100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 11110

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000001

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000010

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000011

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000000110

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000001000

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000001100

2020.04.10 00:38:57.118 tst (EURUSD,H1) 100000000011000

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1000000000000001

2020.04.10 00:38:57.118 tst (EURUSD,H1) 1100000000000001


 
Artyom Trishkin :
...

진짜 손...

다른 시간대에 인쇄하십시오.

 Print ( _Period );
 2020.04 . 09 23 : 39 : 49.963 VP (EPM20,M1)   1
2020.04 . 09 23 : 39 : 53.135 VP (EPM20,M3)   3
2020.04 . 09 23 : 39 : 53.758 VP (EPM20,M5)   5
2020.04 . 09 23 : 39 : 54.377 VP (EPM20,M10)   10
2020.04 . 09 23 : 39 : 55.094 VP (EPM20,M15)   15
2020.04 . 09 23 : 39 : 55.679 VP (EPM20,M30)   30
2020.04 . 09 23 : 39 : 56.384 VP (EPM20,H1)   16385  //Почему не 60 ?
2020.04 . 09 23 : 39 : 57.071 VP (EPM20,H4)   16388  //Почему не 240 ?
2020.04 . 09 23 : 39 : 57.641 VP (EPM20,D1)   16408  //Почему не 1440 ?
2020.04 . 09 23 : 39 : 58.181 VP (EPM20,W1)   32769  и т.д.
2020.04 . 09 23 : 39 : 58.768 VP (EPM20,MN1)   49153