MQL4에 대한 질문입니다. - 페이지 8

 
그림 6
파일:
zigtester.jpg  16 kb
 
ANK:
이것이 맞는지 누가 알겠습니까?
하나의 파일은 코드에 여러 번 포함될 수 없습니다.
그래서 당신은 필요합니다:
- 또는 전역 변수 및 함수의 이름이 다른 여러 파일을 만듭니다. (이것은 lamer 버전입니다 =)
- 또는 다른 함수에서 호출할 때 교차점이 없도록 작업 논리에 대해 생각하십시오(여기서 작업해야 할 수도 있지만 이것은 가치 있는 솔루션입니다.)

그리고 구체적인 예, 오류 설명 또는 전체 코드 없이는 더 정확한 것을 말할 수 없습니다(가장 좋은 점) =)
 
Expert Advisor와 루프 스크립트는 창에서 동시에 작동합니다.
어드바이저가 거래 실행에 대한 서버의 응답을 기다리는 기간 동안이라고 가정하는 것이 맞습니까?
스크립트가 자체 계산( 거래 작업 이 아님)을 수행하기 위해 중지 및 지연 없이 평소와 같이 계속 작동합니까?
 
SKif:
Expert Advisor와 루프 스크립트는 창에서 동시에 작동합니다.
어드바이저가 거래 실행에 대한 서버의 응답을 기다리는 기간 동안이라고 가정하는 것이 맞습니까?
스크립트가 자체 계산( 거래 작업 이 아님)을 수행하기 위해 중지 및 지연 없이 평소와 같이 계속 작동합니까?
네.
Expert Advisor와 스크립트는 모두 자체 스레드에서 작동합니다.
 
알았어 고마워.
인디케이터의 시작 시간과 어드바이저 버튼을 켰을 때의 어드바이저가 일치하지 않는 경우 정상적인 상황이라고 봐야 할까요?
제가 뭔가 잘못 이해하거나 잘못하고 있는 것인지도 모르지만, 시차가 250ms 이상 차이가 날 수 있습니다.

그리고 더. Expert Advisor 버튼의 상태가 표시기 작동에 영향을 줍니까?
표시기에서 이 버튼의 상태를 추적할 수 있습니까?
 
조사를 좀 해보니..

창에 표시기를 배치했습니다.
int start () { GlobalVariableSet ( GV_Tick , 1 ) ; return ; }

창에 고문을 배치:
int start () { GlobalVariableSet ( GV_Knopka , 1 ) ; return ; }

그리고 이 스니펫이 있는 스크립트:
... T_Tick = 0 ; T_Knopka = 0 ; while ( Tick == 0 || Knopka == 0 ) // Ждём тика и разреш. кнопки советн. { Tick = 0 ; Knopka = 0 ; Tick = GlobalVariableGet ( GV_Tick ) ; Knopka = GlobalVariableGet ( GV_Knopka ) ; if ( Tick > 0 && T_Tick == 0 ) T_Tick = GetTickCount () ; if ( Knopka > 0 ) { T_Knopka = GetTickCount () ; Alert ( " T_Tick= " , T_Tick , " T_Knopka= " , T_Knopka , " Запазд= " , T_Knopka - T_Tick ) ; } } ... GlobalVariableSet ( GV_Knopka , 0 ) ; // Обнуляем прошлые события GlobalVariableSet ( GV_Tick , 0 ) ; // Обнуляем прошлые события


결과는 다음과 같습니다.
빨간색으로 강조 표시된 기간 동안 마우스는 초당 3회전의 빈도로 직경 50mm의 원을 그리며 움직였습니다.
터미널에는 영향이 없었습니다.

"평소" 조용한 기간에는 지연이 약 10시간 정도 소요됩니다. 20-60ms, 그리고 사용자가 단말기에 접촉하는 기간 동안에는 그 이상입니다.
또한 창 크기 조정 기간 및 창 전환 시 표시기의 start()가 실행되는 것으로 나타났습니다.
---------------
저는 주로 이 지연의 합법성에 관심이 있습니다. "일반적인" 및 "비정상적인"입니다.
그리고 개발자의 의견을 듣고 싶습니다. 계획과 얼마나 일치하는지.
파일:
1.png  21 kb
 
제가 직접 테스트를 해보고 결과를 알려드리겠습니다.
 
확인.
다른 가능성이 없는 상황에서 나는 오프를 판단하기 위해 어드바이저와 인디케이터의 신호의 시간 지연을 측정하는 옵션에 집중했습니다. 어드바이저 버튼. 이번에는 och가 될 것이라고 가정했습니다. 작은. 하지만 확산은 괜찮습니다. 크기가 큰.

당신이 알게 된 것은 매우 흥미 롭습니다.
(일반적으로 하나의 간단한 질문에 답하려면 이 모든 주방이 필요합니다 . 어드바이저 버튼의 상태 )
 
전문가는 다른 작업과 독립적으로 자신의 스레드에서 작업합니다.
수백 개의 마우스 이동 명령이 대량으로 전송될 때 CPU 사용량이 마우스 이동에 의해 발생한다는 것이 밝혀졌습니다. 이러한 "마우스" 명령 중에는 Expert Advisor를 새로 고치는 명령도 있어 지연이 발생합니다.
 
즉, 대본의 시작, 지시자 및 고문의 비 동시성이 일반적인 현상이라고 간주해야합니까?
글쎄 .. 그리고이 세상에서 어떻게 살 것인가?