MQL4 실시간 클록(초 단위)

 

Start() 함수 가 틱 단위로 작동한다는 것을 이해합니다.

컴퓨터 시계의 실시간 데이터를 사용하고 1초마다 업데이트하는 방법이 있습니까? 똑딱이가 아니라 1초마다?

그렇다면 좀 도와주세요.

감사해요

 

설명하다

 

MQL4 는 TimeLocal()을 사용합니다 . iTime도 틱당 틱을 기준으로 하는 TimeCurrent()....

내가 정말로 원하는 것은 내 컴퓨터 시계나 원격 서버를 사용하여 매초 업데이트되는 실시간 시계를 그래프에 표시할 수 있는 것입니다.

 

TimeCurrent()는 틱 기반이 아닙니다.

그러나 시작 기능은 틱 기반입니다. 수면과 함께 무한 루프를 사용할 수 있습니다. 장점과 솔루션을 설명하는 기사가 mql4.com에 게시되어 있습니다.

전체 mt4는 틱 기반이므로 시간에 민감한 논리를 구현하는 것을 좋아하지 않습니다. 과거에는 내 사용자 지정 기간 표시기에서 이 두 가지를 결합했습니다. 간단한 작업이지만 아이디어를 얻을 수 있습니다. 매초 업데이트되는 시계를 원한다면 내 작업은 당신에게 쓸모가 없습니다. https://www.mql5.com/en/code/10080

//지

 

아이디어는 프로그램으로 Start()의 함수 를 호출하는 것뿐만 아니라 매초마다 시계를 업데이트하는 것입니다.

if ( TimeCurrent () > ( t + TimeInSeconds ))

당신의 설명에서; init() 함수에서 while 루프를 사용할 수 있으며 start() 함수에서 호출하면 어떻게 됩니까? 그것은 여전히 틱으로 틱 것입니다!

 

이와 같은 시작 기능 이 필요합니다. 루프는 첫 번째 틱에서 실행됩니다. 그 후 그것은 진드기 독립적 일 것입니다

 while (true){
 updateWatch();
 Sleep ( 1000 );
} 
 

주에그; 이것은 무한 루프가 될 것이며 메타 트레이더 표시기가 한 가지만 하도록 제한할 것입니다.

따라서 함수에서 호출된 TimeCurrenet과 함께 sleep 함수 를 사용하여 Sleep ( 1000 )마다 1초를 추가하도록 선택하면; 이 프로그램은 다른 작업을 수행할 수 없습니다.

그것은 단지 계산될 것입니다.... 그래서 당신은 하나의 기능으로 자신을 제한할 것입니다.

 

그리고 예 메타 트레이더는 무한 루프를 좋아하지 않습니다. 그것은 내가 지금 경험한 대로 충돌합니다 lol 그것은 어딘가에서 휴식을 취해야 합니다 :)

 

당신은 하나의 기능 으로 제한되지 않습니다. 루프 내에서 원하는 모든 작업을 수행할 수 있습니다. 1초의 실행 시간을 보장하기 위해 약간의 재계산이 필요할 수 있습니다. 그러나 일반적으로 작동합니다.

나는 indicatos로 그것을 한 적이 없지만 EA에서는 작동합니다.

또 다른 옵션은 외부 프로그램을 사용하여 1초 간격으로 터미널에 가짜 틱을 보내는 것입니다. 이를 통해 시작 함수가 매초마다 한 번 이상 호출된다는 것을 보장했습니다. Custom Timeframe Candles의 내 코드와 함께 결과를 얻어야 합니다.

 
while ( !(IsTesting() || IsStopped ()) ){
    updateWatch();
    RefreshRates();
     if (...)  doTrading();
     Sleep ( 1000 );
} 


그리고 예 메타 트레이더는 무한 루프를 좋아하지 않습니다. 그것은 내가 지금 경험한 대로 충돌합니다 lol 그것은 어딘가에서 휴식을 취해야 합니다 :)
표시기에 무한 루프가 없습니다. 스크립트 및 EA의 경우 (위에서와 같이) 내부를 먼저 업데이트해도 괜찮습니다.
 

MQL5 사용

사유: