MQL4 실시간 클록(초 단위) - 페이지 4

 

좋습니다. 하지만 이것은 틱이 아닌 이벤트에 대한 응답 시간을 제어 할 수 없기 때문에 실시간 솔루션이 아닙니다.
"sleep()"의 경우 우리는 할 수 있습니다.

 

따라서 틱별 틱 및 부실 가격을 수면과 결합하면 실시간 시계를 가질 수 있습니다. :)

 

내가 말했듯이 이 솔루션이 EA에서 구현되면 더 이상 TimeCurrent()가 필요하지 않으며 루프는 Sleep(Interval-Runtime)(ms 단위)에 의해 제어됩니다.

대부분의 코드는 그대로 유지되며 redraw()는 더 이상 필요하지 않습니다. 또한 코드의 속도를 높여야 하는 경우 회전 0점이 있는 일부(영어 단어가 누락됨) 배열을 사용하여 시프트 루프를 제거할 수 있습니다.

AFAIK 이것은(또는 이와 유사한) 표시기의 순수 MQL에서 수행할 수 있는 최상의 솔루션입니다. DLL을 사용할 때 외부 프로그램에서 계산을 내보낼 때 더 나은 솔루션이 분명히 존재합니다.

 
spidermagos :

따라서 틱별 틱 및 부실 가격을 수면과 결합하면 실시간 시계를 가질 수 있습니다. :)

예, 하지만 표시기에서는 절전 모드가 불가능합니다. 이 스레드가 시작된 이후로 문제가 발생했습니다.
 
zzuegg :
예, 하지만 표시기에서는 절전 모드가 불가능합니다. 이 스레드가 시작된 이후로 문제가 발생했습니다.

EA가 지표를 호출할 수 있습니까?
 
예, 하지만 문제를 해결하지 못하는 icustom을 통해서만 가능합니다.
 
차트에 매초 가짜 눈금을 보내는 스크립트를 차트에 첨부할 수 있습니다. 이것은 정기적으로 다중 쌍 표시기 및 EA를 업데이트하기 위해 일반적으로 수행하는 작업입니다.
 
7bit :
차트에 매초 가짜 눈금을 보내는 스크립트를 차트에 첨부할 수 있습니다. 이것은 내가 일반적으로 다중 쌍 표시기와 EA를 정기적으로 업데이트하기 위해 수행하는 작업입니다.
당신은 그것을 위해 dll이 필요하거나 이것이 없이 가능합니까?
 
zzuegg :
당신은 그것을 위해 dll이 필요하거나 이것이 없이 가능합니까?

mql4의 몇 줄에 불과합니다(물론 Windows API를 호출하려면 DLL 호출이 필요하지만 아무것도 설치할 필요는 없습니다).

 /**
* MT4/experts/scripts/ticks.mq4
* send a fake tick every 1000ms to the chart and
* all its indicators and EA until this script is removed.
*/

#property copyright "© Bernd Kreuss"

#import "user32.dll"
   int PostMessageA( int hWnd, int Msg, int wParam, int lParam);
   int RegisterWindowMessageA( string lpString);
#import

int start(){
   int hwnd = WindowHandle( Symbol (), Period ());
   int msg = RegisterWindowMessageA( "MetaTrader4_Internal_Message" );
   while (! IsStopped ()){
      PostMessageA(hwnd, msg, 2 , 1 );
       Sleep ( 1000 );
   }
}

즐겨찾기에 이 스크립트가 있으며 눈금이 필요할 때 차트로 드래그하면 됩니다.


나는 또한 하나의 틱만 보낸 다음 종료하고 핫키 ALT+T에 바인딩하는 루프 없이 이것의 변형이 있습니다. 이제 ALT-T를 눌러 활성 차트에 틱을 보낼 수 있습니다. 나는 주말에 start()를 실행하여 계산을 트리거하고 그래프를 그릴 때 stat-arb EA 중 일부에 이것을 필요로 합니다(차트에서 선을 이동하여 간격을 변경한 다음 계산 업데이트).

 

좋은 하나. 공유해 주셔서 감사합니다