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

 
7bit :

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

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


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


7 저는 dll import를 사용한 적이 없습니다. 다음에 대해 설명해 주시겠습니까?

+ Meta Trader Client 폴더에 dll 파일을 넣어야 하나요?

+ MT 클라이언트에서 이 EA를 어떻게 활성화할 수 있습니까?

Meta Trader에서 DLL 가져오기의 몇 가지 예를 알려주십시오.

 
spidermagos :


7 저는 dll import를 사용한 적이 없습니다. 다음에 대해 설명해 주시겠습니까?

+ Meta Trader Client 폴더에 dll 파일을 넣어야 하나요?

+ MT 클라이언트에서 이 EA를 어떻게 활성화할 수 있습니까?

Meta Trader에서 DLL 가져오기의 몇 가지 예를 알려주십시오.

140자보다 긴 텍스트를 읽는 기술을 배우지 않으면 그것을 사용(또는 어떤 용도로 사용될 수 있는지 이해)하는 것이 완전히 불가능할 것임을 알려드리게 되어 유감입니다.

처음에는 마지막 게시물에서 방금 인용한 텍스트에서 의미를 추출해 볼 수 있습니다. 그러면 내가 이것을 EA가 아닌 스크립트로 설명했다는 것을 알게 될 것입니다. 또한 dll을 설치할 필요가 없다고 썼으며 텍스트의 일부를 찾을 수도 있다는 사실을 알게 될 것입니다. 어디에 어떻게 사용해야 하는지 설명했습니다.

 
7bit :

140자보다 긴 텍스트를 읽는 기술을 배우지 않으면 그것을 사용(또는 어떤 용도로 사용될 수 있는지 이해)하는 것이 완전히 불가능할 것임을 알려드리게 되어 유감입니다.

처음에는 마지막 게시물에서 방금 인용한 텍스트에서 의미를 추출해 볼 수 있습니다. 그러면 내가 이것을 EA가 아닌 스크립트로 설명했다는 것을 알게 될 것입니다. 또한 dll을 설치할 필요가 없다고 썼으며 텍스트의 일부를 찾을 수도 있다는 사실을 알게 될 것입니다. 어디에 어떻게 사용해야 하는지 설명했습니다.

나는 당신의 오만함과 당신의 영어 실력, 그리고 아마도 당신의 코딩 모범을 존경합니다.

그러나 해결책을 제시하지 않고 문제를 해결하는 것은 질문을 회피하는 것입니다.

내 읽기 능력과 기술에 의문을 제기하는 대신 7 비트 전체 프로그램을 작성하고 자신을 증명해보십시오. 철학 대신!

실시간 시계를 초 단위로 수행하는 방법을 알고 있습니까? 이것이 질문입니까? 이 시계가 차트에 있어야 합니까?

 

2와 2를 추가하면 됩니다.

7bit의 코드를 사용하여 내가 게시한 코드와 함께 가짜 틱을 생성하면 필요한 모든 것이 있습니다.

그리고 btw, 7bit는 이 포럼에 참여하는 최고의 프로그래머 중 한 명인 것 같습니다...

//지

 

spidermagos :

당신의 오만함을 존경합니다

고맙습니다.


스파이더마고스 :

전체 프로그램을 작성하고 자신을 증명하는 것이 어떻습니까? 철학 대신!

스크립트는 완전하고 내가 지정한 사양 내에서 정확히 독립 실행형으로 작동합니다.

나는 지표가 sleep()과 같은 차단 호출을 사용할 수 없는 문제를 해결하기 위한 제안으로 게시했으며 지표 자체 내에서 타이머 이벤트를 생성하는 다른 방법도 존재하지 않습니다. 전체 시계 문제의 이 정확한 하위 문제는 이 스레드의 직전에 언급되었으며 이 문제만 해결되고 다른 문제는 해결되지 않았습니다. 그것은 그 자체로 완전히 독립적인 문제로 취급될 있고 내 스크립트는 그것에 대한 일반(완전히 독립적인) 솔루션이며 많은 유사한 시나리오에도 적용될 수 있으며 다른 사용 사례에 대한 예를 들기도 했습니다.

코드를 작성하려면 문제 분해 기술을 배워야 하고 솔루션을 우연히 발견할 때마다 솔루션과 부분 솔루션을 즉시 인식할 수 있어야 합니다.

 
//< This is EA : Compile and run in folder "/experts" >
 
 
int start()
{
static int iClockPeriod = 1000 ;
 
static int iTimeStamp          ;
static int iRunTime            ;
 
while  ( ! IsStopped () )
       {
           iTimeStamp = GetTickCount ()                             ;
           Comment    ( TimeToStr ( TimeLocal () , TIME_SECONDS ) ) ;
           iRunTime   = GetTickCount () - iTimeStamp                ;
           Sleep      ( iClockPeriod    - iRunTime                ) ;
       }
}
//</This is EA : Compile and run in folder "/experts" > 

 //< This is Indicator : Compile and run in folder "/experts/indicators" >
#property  indicator_chart_window
 
int start()
{
static int iClockPeriod = 1000 ;
 
static int iTimeStamp          ;
  
  
if     ( ( GetTickCount () - iTimeStamp ) < iClockPeriod )   return ;
       {
           iTimeStamp = GetTickCount ()                             ;
           Comment    ( TimeToStr ( TimeLocal () , TIME_SECONDS ) ) ;
  
 
       }
}
//</This is Indicator : Compile and run in folder "/experts/indicators" > 

다른 차트에서 이러한 프로그램을 실행합니다.

 
Ais :

다른 차트에서 이러한 프로그램을 실행합니다.


아이스 ; 7비트가 맞습니다. 작동하지 않습니다! 시작 기능 은 틱으로 틱입니다.

이 문제를 해결하려면 dll 가져오기가 필요합니다. ...

즉, 표시기에서 스크립트 호출

 
7bit :

고맙습니다.


스크립트는 완전하고 내가 지정한 사양 내에서 정확히 독립 실행형으로 작동합니다.

나는 지표가 sleep()과 같은 차단 호출을 사용할 수 없는 문제를 해결하기 위한 제안으로 게시했으며 지표 자체 내에서 타이머 이벤트를 생성하는 다른 방법도 존재하지 않습니다. 전체 시계 문제의 이 정확한 하위 문제는 이 스레드의 직전에 언급되었으며 이 문제만 해결되고 다른 문제는 해결되지 않았습니다. 그것은 그 자체로 완전히 독립적인 문제로 취급될 있고 내 스크립트는 그것에 대한 일반(완전히 독립적인) 솔루션이며 많은 유사한 시나리오에도 적용될 수 있으며 다른 사용 사례에 대한 예를 들기도 했습니다.

코드를 작성하려면 문제 분해 기술을 배워야 하고 솔루션을 우연히 발견할 때마다 솔루션과 부분 솔루션을 즉시 인식할 수 있어야 합니다.



7bit - 어떻게 표시기에서 스크립트를 호출할 수 있습니까?

예를 들어 줄 수 있습니까?

 
spidermagos :

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

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

그렇다면 좀 도와주세요.

감사해요

안녕하세요, 스크립트 대신 별도의 틱 발신자 애플리케이션을 사용할 수 있으며(여러 프리웨어가 있습니다. Google "mt4 틱 발신자") 200ms 정도마다 틱을 생성하도록 만든 다음 PC의 시계가 자주 동기화되고 TimeCurrent() 대신 TimeLocal() + hour_difference_between_yourtimezone_and_servertimezone * 3600 을 사용하십시오. 생성된 틱을 사용하면 Start()가 "만" 강제로 실행되고, 틱이 브로커에서 제공되지 않는 한 TimeCurrent()는 자체 업데이트되지 않기 때문입니다. 그렇게 하면 브로커 시간을 초 단위로 얻을 수 있습니다. 이것은 지표와 EA 모두에 작동합니다. 재미있는 사실은 서버가 동기화되지 않은 일부 브로커가 있다는 것입니다. 몇 초 지연되지만 타임스탬프만 있고 불행히도 가격은 아닙니다. 다른 양초, M1은 때때로 기세 가있을 때 완전히 다릅니다.
 

먼저 시작에 있는 논리를 함수에 넣습니다.

다음으로 init()에서 잠자기 상태로 while 루프를 만들고 거기에서 함수를 호출합니다. 수면은 밀리초 단위라는 것을 기억하십시오.

이렇게 하면 가격 변경을 기다리는 대신 타이밍을 제어할 수 있습니다.

프로그램 논리가 정상이면 완벽하게 작동합니다. 유일한 문제는 백테스터 에서 실행할 수 없다는 것입니다. 먼저 Start()를 사용하여 테스트를 수행한 다음 init()로 전환하십시오.