[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 191

 
eddy :

잘못된 가격 1.37197000.

올바른 것은 DC에 따라 1.37197 또는 1.3719입니다.

소수점 이하 자릿수를 설정하려면 NormalizeDouble()을 사용하십시오.


OrderSend()의 가격에 NormalizeDouble()을 추가 했는데 이제 오류가 발생하지 않습니다. 감사합니다!
 
artmedia70 :

더 쉬운 곳은 없습니다:

함수 자체를 start() 함수 외부에 배치하면 전체 코드의 맨 끝에도 배치할 수 있습니다.



고맙습니다!
 
eddy :

표시기를 시작한 후 첫 번째 눈금에서 GetTickCount를 기억해야 하지만 아래 코드가 작동하지 않습니다. 터미널이 멈춥니다. init()에서 RefreshRates가 전혀 작동하지 않을 수도 있습니다..?

while (true){ if (RefreshRates()) { tik= GetTickCount (); 휴식 ; } 수면 ( 1 ); }

누구든지 구현 방법에 대한 아이디어가 있습니까? 초기에 플래그를 만들면 매번 확인하기 때문에 init에서 원합니다.
 
eddy :
누구든지 구현 방법에 대한 아이디어가 있습니까? 초기에 플래그를 만들면 매번 확인하기 때문에 init에서 원합니다.
전역 변수 를 선언할 때 값을 할당하고 시작할 때 재설정하십시오. 그러면 할당되기 전의 첫 번째 틱에서만 원래 값을 가지며 모든 후속 틱에서는 시작 시 할당됩니다. 그런 다음 어드바이저가 시작될 때 한 번 수행되는 모든 작업을 시작으로 전송할 수 있습니다.
 
eddy :

차트에 표시기를 프로그래밍 방식으로 로드하는 방법을 알려주십시오.

bool ServiceLoadCustomIndicator( int hwndChart,... ) ; // hwndChart - 표시기가 로드되는 차트 창에 대한 시스템 핸들입니다.

하지만 차트 창 핸들을 어떻게 아는지 모르겠습니다.

표시기를 시작한 후 첫 번째 눈금에서 GetTickCount만 기억하면 되지만 아래 코드는 작동하지 않습니다. 터미널이 멈춥니다. init()에서 RefreshRates가 전혀 작동하지 않을 수도 있습니다..?

https://docs.mql4.com/en/windows/WindowHandle
 
granit77 :
전역 변수를 선언할 때 값을 할당하고 시작 시 재설정하십시오. 그러면 할당되기 전의 첫 번째 틱에서만 원래 값을 가지며 모든 후속 틱에서는 시작 시 할당됩니다. 그런 다음 어드바이저가 시작될 때 한 번 수행되는 모든 작업을 시작으로 전송할 수 있습니다.

처음에 이 변수에 아무 것도 할당할 필요가 없습니다. 틱을 기억하기 위해 한 번만.

지금까지 전역 변수에 틱을 저장하기 위해 별도의 표시기를 만들기로 결정했습니다. 이 값은 시작 시 기본 표시기에서 인식됩니다.

Zhunko , 동일한 TF 및 도구를 사용하는 창이 여러 개 있으면 어떻게 됩니까?

 
eddy :

처음에 이 변수에 아무 것도 할당할 필요가 없습니다. 틱을 기억하기 위해 한 번만.

지금까지 전역 변수에 틱을 저장하기 위해 별도의 표시기를 만들기로 결정했습니다. 이 값은 시작 시 기본 표시기에서 인식됩니다.

Zhunko , 동일한 TF 및 도구를 사용하는 창이 여러 개 있으면 어떻게 됩니까?

오래 전에 확인(당신도 할 수 있음)은 최신 또는 활성을 반환합니다.
 
Zhunko : 최신 또는 활성을 반환합니다.

저것들. 활성화된 항목이 없으면 마지막 항목을 반환합니까?

그러나 그렇게 중요하지 않습니다. 추가할 때 추가해야 하는 위치에 항상 활성화되어 있다고 생각합니다.

 
eddy :

그러나 그렇게 중요하지 않습니다. 추가할 때 항상 활성화되어 있고 항상 추가해야 하는 위치에 있다고 생각합니다.

네. 정확히. 모든 동일한 차트 창의 핸들을 Z 순서로 반환하는 함수가 있는데 라이브러리에 포함하지 않았습니다. 그러나 그녀는 별로 도움이 되지 않을 것입니다.
 
eddy :

처음에 이 변수에 아무 것도 할당할 필요가 없습니다. 틱을 기억하기 위해 한 번만.

지금까지 글로벌 변수에 틱을 저장하기 위해 별도의 인디케이터를 만들기로 결정했으며, 그 값은 시작 시 메인 인디케이터에서 인식하게 됩니다

나는 이것을 의미했다:
 bool FirstStart= true ;

int start(){

     if (FirstStart){
       if (RefreshRates()) tik=GetTickCount();
      FirstStart= false ;
    } 
}
사유: