타임스탬프에서 밀리초를 제공하는 새로운 mql4.... - 페이지 2

 
밀리초와 나노초가 너무 중요 하여 이러한 틱이 인터넷을 통해 들어오는지(네트워크 바인딩 IO) 주의하십시오. 당신이 뭔가 나쁜 것을 계획하지 않는 한 Nonosecond 시간 해결은 아마도 과잉입니다!
 
angevoyageur :
mql5에도 그러한 정보가 없습니다. 그러나 이 기능이 새로운 mql4에서 사용할 수 있을지는 모르겠지만 밀리초 단위의 정밀도로 사용할 수 있는 타이머 이벤트 가 있습니다.

현재 mql4에 해당하는 내용은 다음과 같습니다.

 void start(){
     while ( true ){
        do_something....;
         Sleep ( 1000 ); //Sleep for one Second.
        RefreshRates();
    }
}

 void start(){
     static bool RunOnce;
     if (RunOnce) return ;
     int Begin= GetTickCount ();
     while ( GetTickCount ()<Begin+ 1000 ){
         Print ( "GetTickCount()=" + GetTickCount ());
         Sleep ( 1 );
    }
    RunOnce= true ;
}

나는 GTC를 테스트했고 16_milliseconds로 점프하는 것 같습니다. 찾아오십시오. 아마도 레거시 시스템에 대한 일종의 Computer_Science 제한일 것입니다. 누가 [ 내 말을 많이 했음에도 불구하고 ] 이유를 설명하고 싶다면 기꺼이 하겠습니다. 흠, mql5에 동일한 제한이 있는지 궁금하십니까? 자, 이제 한 번 더 테스트가 진행됩니다. :)

 

MQL 개발자가 캡슐화한 Widows API 기능을 알아내는 것은 항상 노력할 가치가 있습니다.

이 경우 대답은 쉽습니다. GetTickCount 를 사용했습니다.

GetTickCount 함수 해상도는 일반적으로 10밀리초에서 16밀리초 범위인 시스템 타이머의 해상도로 제한됩니다.

 

나는 전에 그것을 봤고 나는 정말로 이해하지 못하지만 GetTickCount()는 Windows OS에서 직접 함수 인 것 같습니다. 이것은 정확하기 위한 것이 아니며 밀리초 단위로 값을 반환하더라도 밀리초 수준까지 정확해야 하는 경우에는 사용하지 않아야 합니다.

나는 sleep과 get tick count로 테스트를 해 보았고 항상 오류가 있습니다. 그것이 Sleep이나 GTC로 인한 것인지 말하기는 어렵지만 제 추측으로는 둘 다입니다

 
Ovo :

MQL 개발자가 캡슐화한 Widows API 기능을 알아내는 것은 항상 노력할 가치가 있습니다.

이 경우 대답은 쉽습니다. GetTickCount 를 사용했습니다.

GetTickCount 함수 해상도는 일반적으로 10밀리초에서 16밀리초 범위인 시스템 타이머의 해상도로 제한됩니다.

고맙습니다.
 
ubzen :

현재 mql4에 해당하는 내용은 다음과 같습니다.

나는 GTC를 테스트했고 16_milliseconds로 점프하는 것 같습니다. 찾아오십시오. 아마도 레거시 시스템에 대한 일종의 Computer_Science 제한일 것입니다. 누가 [ 내 말을 많이 했음에도 불구하고 ] 이유를 설명하고 싶다면 기꺼이 하겠습니다. 흠, mql5에 동일한 제한이 있는지 궁금하십니까? 자, 이제 한 번 더 테스트가 진행됩니다. :)

16밀리초 제한은 하드웨어 제한에서 비롯되지만 더 나은 정밀도 타이머를 얻는 다른 방법이 있습니다.
mql5는 GetTickCount()에 대해 동일한 제한이 있지만 위에서 설명하려고 했듯이 사용할 수 있는 다른 기능(타이머 이벤트)이 있습니다.

 
Ovo :

MQL 개발자가 캡슐화한 Widows API 기능을 알아내는 것은 항상 노력할 가치가 있습니다.

이 경우 대답은 쉽습니다. GetTickCount 를 사용했습니다.

GetTickCount 함수 해상도는 일반적으로 10밀리초에서 16밀리초 범위인 시스템 타이머의 해상도로 제한됩니다.


예, 그렇게 말하지만 그것이 실제로 무엇을 의미하는지 알기는 어렵습니다. 해상도가 16ms이면 0,16,32,48 등의 값이 표시될 것으로 예상됩니다.

0과 16 사이에는 아무 것도 표시되지 않지만 모든 값은 16에 대해 표시됩니다.

 
angevoyageur :

16밀리초 제한은 하드웨어 제한에서 비롯되지만 더 나은 정밀도 타이머를 얻는 다른 방법이 있습니다.
mql5는 GetTickCount()에 대해 동일한 제한이 있지만 위에서 설명하려고 했듯이 사용할 수 있는 다른 기능(타이머 이벤트)이 있습니다.

잡았다 :)
 
RaptorUK :
Volume은 실제로 "Tick count"에 대한 잘못된 이름입니다. . . 거래량/로트와는 관련이 없습니다. . . 1 이상 변할 수 있는 이유는 틱을 놓칠 수 있기 때문입니다.


정보 주셔서 감사합니다. 나는 이것을 전에 어떻게 눈치 채지 못했는지 궁금합니다. 이 경우에는 상당히 쓸모없는(또는 오해의 소지가 있는) 정보로 보입니다.

일부 브로커로부터 실제 레벨 2 볼륨 데이터를 찾아야 합니다. 다행히 내 ECN 브로커는 실제 거래량으로 레벨 2 거래 데이터를 제공합니다.

사유: