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

 

현재 mql4는 들어오는 틱에 대해 가장 가까운 초까지만 시간을 제공할 수 있습니다. 다음 기능을 사용합니다.

MarketInfo(Symbol(), MODE_TIME)

1) 밀리초 타임스탬프를 제공하거나 플랫폼에 오는 틱 데이터의 밀리초를 결정하는 데 사용할 수 있는 다른 기능이 있습니까?

2) mql5 기능을 결합하는 새로운 mql4가 들어오는 틱에 대해 밀리초(또는 1초 미만) 타임 스탬프를 요청하거나 얻을 수 있습니까?

그렇다면 mt4(및 mt5) 플랫폼은 '동시에' 들어오는 틱을 어떻게 적절하게 구별해야 할까요?

 
4evermaat :

현재 mql4는 들어오는 틱에 대해 가장 가까운 초까지만 시간을 제공할 수 있습니다. 우리는 다음 기능을 사용합니다:

MarketInfo(Symbol(), MODE_TIME)

1) 밀리초 타임스탬프를 제공하거나 플랫폼에 오는 틱 데이터의 밀리초를 결정하는 데 사용할 수 있는 다른 기능이 있습니까?

2) mql5 기능을 결합하는 새로운 mql4가 들어오는 틱에 대해 밀리초(또는 1초 미만) 타임 스탬프를 요청하거나 얻을 수 있습니까?

그렇다면 mt4(및 mt5) 플랫폼은 '동시에' 들어오는 틱을 어떻게 적절하게 구별해야 할까요?

1) GetTickCount()는 라이브에서 작동해야 합니다. 역사적 데이터에 무의미합니다.

2) mt5_data도 밀리초 단위로 저장되지 않습니다. 그러나 no_problem 라이브.

3) 나는 당신이 그것을 가지고 어디로 가는지 알 수 없습니다. 밀리초 단위의 동일한 시간이라면 밀리초가 도움이 되지 않습니다. GetTickCount()와 다른 시간(밀리초)이 도움이 될 수 있습니다. 코드가 밀리초 미만 내에 현재 틱을 처리한다는 점에서 도움이 됩니다. 모든 것이 얼마나 중요한지 는 당신이 성취하려는 것에 달려 있습니다... 제 생각에는.

 

당신은 적어도 두 가지 선택이 있습니다.

1. 16ms 정밀도를 갖는 MQL의 GetTickCount()로 틱을 구별하십시오.

2. 나노초 정밀도로 Kernell32 .dll에서 GetLocalTime()을 사용하여 PC 시간에 액세스합니다(이것은 Linux의 에뮬레이터에서는 작동하지 않지만 여전히 16ms 정밀도를 반환합니다).

 

4evermaat: 틱은 볼륨으로 구분되는 것 같아요. 브로커가 새 틱을 보낼 때마다 볼륨이 1씩 증가합니다. 예를 들어 M1 차트를 보고 있는 경우 특정 막대의 볼륨은 해당 분에 전송된 틱 수입니다.

사실 어제 밀리초 단위로 시간을 기록하는 함수를 만들려고 했습니다. TimeCurrent() 및 GetTickCount()를 사용했습니다. 수학적으로는 맞았지만.. GetTickCount()가 충분히 정확하지 않습니다. 이벤트 시간을 마지막 초로 반올림(즉, TimeCurrent() 사용)하는 것이 내 함수보다 오류가 더 적다는 것을 발견했습니다... :/

다른 날 다시 시도해 보겠습니다. 그러나 내가 볼 수 있는 한, 1초 이내에 정확성이 필요한 경우 GetTickCount()에 의존할 수 없습니다.

C++ 전문가가 GetTickCount()와 더 정확한 동등물에 액세스할 수 있습니다..?

 
Ovo :

당신은 적어도 두 가지 선택이 있습니다.

1. 16ms 정밀도를 갖는 MQL의 GetTickCount()로 틱을 구별하십시오.

2. 나노초 정밀도로 Kernell32.dll에서 GetLocalTime()을 사용하여 PC 시간에 액세스합니다(이것은 Linux의 에뮬레이터에서는 작동하지 않지만 여전히 16ms 정밀도를 반환합니다).


1) 내 테스트에서 GetTickCount()의 정밀도가 16ms라고 생각하지 않습니다. 사실, 16ms는 내가 얻은 작은 값(0은 제외)이지만 16ms에 대한 값이 가장 가까운 16ms에 정확하다고 생각하지 않습니다. :/

2) 아, 좋은 생각이네요. 시도해 보겠습니다.

 
alladir :


1) 내 테스트에서 GetTickCount()의 정밀도가 16ms라고 생각하지 않습니다. 사실, 16ms는 내가 얻은 작은 값(0은 제외)이지만 16ms에 대한 값이 가장 가까운 16ms에 정확하다고 생각하지 않습니다. :/

2) 아, 좋은 생각이네요. 시도해 보겠습니다.


죄송합니다. 정확성과 정확성을 혼동하는 경우가 많습니다. 지금도 어느 것이 정확한지 잘 모르겠습니다.
 
Ovo :

죄송합니다. 정확성과 정확성을 혼동하는 경우가 많습니다. 지금도 어느 것이 정확한지 잘 모르겠습니다.

나 역시, 내가 아는 것은 수학적으로 작동해야 하는 공식이 있다는 것뿐입니다. 그러나 실생활에서는 그렇지 않습니다... 그래서 저는 GetTickCount()를 비난하고 있습니다 :)
 
alladir :

4evermaat: 틱은 볼륨으로 구분되는 것 같아요. 브로커가 새 틱을 보낼 때마다 볼륨이 1씩 증가합니다. 예를 들어 M1 차트를 보고 있는 경우 특정 막대의 볼륨은 해당 분에 전송된 틱 수입니다.


나는 이것을 전에 여러 번 보았지만 이것에 대해 확신합니까? 내 ECN 브로커에서 이것을 몇 번 확인했는데 매 틱마다 볼륨이 상당히 다르게 증가합니다. 아마도 해당 브로커를 통해 흐르는 실제 거래 로트일 것입니다. 예를 들어 내가 10랏을 팔 때 다음 틱 랏은 +1이 아니라 +10이 됩니다.

 

10랏을 거래하면 거래량이 10증가?!? 나는 그것을 경험하지 않았다. 나는 모든 틱 을 기록하는 틱 수집기를 실행합니다. 가끔 볼륨이 2~3씩 올라가긴 하지만 브로커가 보내지 않았거나 틱 콜렉터의 Start 기능이 아직 실행 중일 때 도착한 매우 빠른 틱이라고 추측했습니다.

네 구글링으로 Volume = Ticks 만 생각하는데 제가 보고 있는 데이터와 맞는 것 같습니다

 
szgy74 :

나는 이것을 전에 여러 번 보았지만 이것에 대해 확신합니까? 내 ECN 브로커에서 이것을 몇 번 확인했는데 매 틱마다 볼륨이 상당히 다르게 증가합니다. 아마도 해당 브로커를 통해 흐르는 실제 거래 로트일 것입니다. 예를 들어 내가 10랏을 팔 때 다음 틱 랏은 +1이 아니라 +10이 됩니다.

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

현재 mql4는 들어오는 틱에 대해 가장 가까운 초까지만 시간을 제공할 수 있습니다. 다음 기능을 사용합니다.

MarketInfo(Symbol(), MODE_TIME)

1) 밀리초 타임스탬프를 제공하거나 플랫폼에 오는 틱 데이터의 밀리초를 결정하는 데 사용할 수 있는 다른 기능이 있습니까?

2) mql5 기능을 결합하는 새로운 mql4가 들어오는 틱에 대해 밀리초(또는 1초 미만) 타임 스탬프를 요청하거나 얻을 수 있습니까?

그렇다면 mt4(및 mt5) 플랫폼은 '동시에' 들어오는 틱을 어떻게 적절하게 구별해야 할까요?

mql5에도 그러한 정보가 없습니다. 그러나 이 기능이 새로운 mql4에서 사용할 수 있을지는 모르겠지만 밀리초 단위의 정밀도로 사용할 수 있는 타이머 이벤트 가 있습니다.