MG4 스크립트 및 Expert Advisor를 지원하는 테스터 - 페이지 11

 
Renat :

CopyXXX는 iClose/iOpen/iXXXX 기능과 동일한 속도 를 가집니다. iXXX만 한 번에 하나의 요소를 반환하는 반면 CopyXXX는 집합을 반환하므로 더 효율적이고 성능 이 좋습니다.

MT4 에서는 틱 핸들러가 실행될 때마다 EA의 로컬(캐시) 시장 환경에 로컬 차트 의 _모든_ 기록이 강제로 복사 된다는 점을 고려하지 않을 것입니다. 이 정보를 경제적으로 업데이트할 수 있는 방법이 있지만 이것은 매우 비쌉니다. MQL4의 특수 기능 RefreshRates 는 로컬 차트의 캐시 및 기록을 강제로 업데이트합니다.

CopyXXX를 호출하는 것이 훨씬 더 효율적이며 개발자는 이전에 요청한 데이터를 캐싱하기 위한 매우 정확하고 정확한 메커니즘을 가지고 있습니다. 예를 들어 매 틱마다 심층 기록을 다시 요청할 필요는 없지만 로컬에 저장/추가하고 가장 빠르게 액세스할 수 있습니다.

"직접"(사실 직접 액세스가 없음) 액세스 Open/High/Low/Close의 이전 방법을 비교하고 로컬 배열 double local[xxxx]로 작업하면 후자가 몇 배 더 빠릅니다. 따라서 로컬에서 자신에게 복사한 다음 반복적으로 요청된 데이터에 로컬로 빠르게 액세스하는 것이 좋습니다.

OnTick과 같은 사용자 정의 기능인 "틱 핸들러"는 무엇을 의미합니까? 나타난 데이터뿐만 아니라 전체 이력을 복사해야 하는 이유는 무엇입니까?
 
Vinin :
이것은 지표가 아닙니다
여기 에 OOP 표시기에 대한 링크를 제공했습니다.
 
C-4 :
OnTick과 같은 사용자 정의 기능인 "틱 핸들러"는 무엇을 의미합니까? 나타난 데이터뿐만 아니라 전체 이력을 복사해야 하는 이유는 무엇입니까?

예, OnTick/OnStart.

내가 이해하는 한, 많은 사람들에게 MT4의 로컬 차트에 대한 직접 액세스가 완전히 직접적이지 않다는 것이 폭로되었습니다. 이중 메모리 소비와 동기화 손실이 있습니다.

운 좋게도 우리는 검소한 캐시 업데이트를 가지고 있지만 여전히 시스템 비용이 듭니다. MT5에서는 로컬 캐시를 완전히 제거했으며 OnTick/OnStart를 호출하기 전에 시스템 오버헤드가 적습니다.

 
Renat :

예, OnTick/OnStart.

내가 이해하는 한, 많은 사람들에게 MT4의 로컬 차트에 대한 직접 액세스가 완전히 직접적이지 않다는 것이 폭로되었습니다. 이중 메모리 소비와 동기화 손실이 있습니다.

운 좋게도 우리는 검소한 캐시 업데이트를 가지고 있지만 여전히 시스템 비용이 듭니다. MT5에서는 로컬 캐시를 완전히 제거했으며 OnTick/OnStart를 호출하기 전에 시스템 오버헤드가 적습니다.

1년 전에 우리는 MT4/MT5 테스터의 성능에 대해 논의했습니다 . MT4의 표준 Expert Advisor "MovingAverage"는 유사한 테스트 조건에서 분당 단일 실행을 수행한 반면 MT5에서는 2:34가 소요되었습니다. 왜 그렇게 시간의 차이를 설명할 수 있습니까? 가장 먼저 떠오르는 것은 MT5의 "모듈화"와 MT5가 실행될 때 끌어야 하는 많은 거래 환경입니다.
 
C-4 :
1년 전에 우리는 MT4/MT5 테스터의 성능에 대해 논의했습니다 . MT4의 표준 Expert Advisor "MovingAverage"는 유사한 테스트 조건에서 분당 단일 실행을 수행한 반면 MT5에서는 2:34가 소요되었습니다. 왜 그렇게 시간의 차이를 설명할 수 있습니까? 가장 먼저 떠오르는 것은 MT5의 "모듈화"와 MT5가 실행될 때 끌어야 하는 많은 거래 환경입니다.

다중 통화 실행을 위해 연마된 모듈성, 외부 프로세스 및 더 나은 환경 모델링.