사용자 지정 지표를 사용할 때 Expert Advisor의 속도를 높이는 이론(기능 - iCustom) - 페이지 4

 
-Aleks- :

나는 그것이 가짜 문제라는 것을 이해합니다.

실제 프로젝트 에서 지표의 실제 브레이크에 부딪히면 토론을 계속할 준비가 되어 있습니다.

 
-Aleks- :

5명의 안타까운 사실이지만, 개발자들은 이에 대한 성스러운 의미를 설명하지 않고 있다?

분명히, 그것은 건축에 관한 것입니다. 나는 관심이 없었다.

관련 주제는 여기에서 논의되었습니다 - https://www.mql5.com/en/forum/8278

Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс. - - Категория: общее обсуждение
 

Topicstarter는 지표 작업의 기본을 이해하지 못하고 정글로 올라갑니다... 그러나 정보는 공개 도메인에 있습니다(기사 + 문서).

따라서 많은 잘못된 질문과 추측 ...

OpenCL을 사용하여 생성된 지표에 대한 또 다른 링크 입니다. 부하가 비디오 카드로 이동합니다.

사실, 비교 계산 속도를 얻으려면 작업이 정말 "무거워"야합니다 ...

 
komposter :

그런데 MT4는 기록의 일부만 계산하는 탁월한 작업을 수행하며 주기가 마지막 1000개 막대를 통과하는 경우 전체 버퍼에 대한 메모리를 차지하지 않습니다("창"이 50000인 경우에도).

그러나 MT5에서는 마지막 100개만 계산하더라도 메모리가 모든 50,000개 막대에 할당되는 이 문제에 봉착했습니다.

이거 확실하니?

두 플랫폼 모두 에서 표시기 버퍼 는 막대의 전체 현금 기록에 대해 동일한 방식으로 자동으로 할당됩니다.

 
Renat :

이거 확실하니?

두 플랫폼 모두 에서 표시기 버퍼 는 막대의 전체 현금 기록에 대해 동일한 방식으로 자동으로 할당됩니다.

저는 하반기를 확인하지 않았지만 MT4와 MT5에서 1000개의 막대를 그리는 동일한 인디케이터가 매우 다른 양의 메모리를 먹었습니다(창에 많은 수의 막대를 표시할 때).

이제 의심했습니다. 여기에서 논의한 개체 캐시의 문제일 수 있습니다. https://www.mql5.com/ru/forum/8278?

Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс. - - Категория: общее обсуждение
 
Renat Fatkhullin :

이거 확실하니?

두 플랫폼 모두 에서 표시기 버퍼 는 막대의 전체 현금 기록에 대해 동일한 방식으로 자동으로 할당됩니다.

MT4에서 문제가 발생했습니다. 차트에 지표를 표시하고 버퍼에서 데이터를 수집하고 수학적 계산 및 분석을 수행하는 스크립트가 있습니다.

내장형 표시기가 있는 스크립트 작업은 완벽하지만 iCustom을 통해 호출된 표시기에서는 상황이 좋지 않습니다. 터미널에 할당된 메모리(최대값)가 빠르게 소진되어 스크립트가 0 버퍼 값을 수신하기 시작합니다. 지표에서. 표시기가 차트에서 제거되는 순간 또는 다시 호출되지만 iCustom을 통해 다른 매개변수를 사용하여 RAM을 강제로 지울 수 있습니까?

 
-Aleks- :

MT4에서 문제가 발생했습니다. 차트에 지표를 표시하고 버퍼에서 데이터를 수집하고 수학적 계산 및 분석을 수행하는 스크립트가 있습니다.

내장형 표시기가 있는 스크립트 작업은 완벽하지만 iCustom을 통해 호출된 표시기에서는 상황이 좋지 않습니다. 터미널에 할당된 메모리(최대값)가 빠르게 소진되어 스크립트가 0 버퍼 값을 수신하기 시작합니다. 지표에서. 표시기가 차트에서 제거되는 순간 또는 다시 호출되지만 iCustom을 통해 다른 매개변수를 사용하여 RAM을 강제로 지울 수 있습니까?

다른 매개변수를 사용하여 몇 개의 iCustom을 생성했습니까?

수십 개와 수백 개(그럴 것 같으면)가 있으면 외부 지표의 틀 내에서 아무 것도 할 수 없습니다. 메모리를 소비하지 않는 계정 단위로만 Expert Advisor에 연결하십시오.

MetaTrader 5는 요청된 모든 지표를 완전히 제어할 수 있지만 "수백 개의 지표를 만들고 삭제"하는 게임에도 심각한 비용이 따릅니다.

 
Renat Fatkhullin :

다른 매개변수를 사용하여 몇 개의 iCustom을 생성했습니까?

수십 개와 수백 개(그럴 것 같으면)가 있으면 외부 지표의 틀 내에서 아무 것도 할 수 없습니다. 메모리를 소비하지 않는 계정 단위로만 Expert Advisor에 연결하십시오.

MetaTrader 5는 요청된 모든 지표를 완전히 제어할 수 있지만 "수백 개의 지표를 만들고 삭제"하는 게임에도 심각한 비용이 따릅니다.

표시기는 단독으로 생성된 다음 해당 매개변수가 변경됩니다. 지표 자체는 다른 지표에 대한 데이터 요청과 함께 iCustom 기능을 사용합니다. 그렇게 하는 것이 더 쉬웠습니다.
이 번들의 모든 요청을 계산하면 약 7개의 버퍼가 생깁니다.
iCustom 기능이 있는 다른 표시기이지만 더 간단하게 스크립트는 삐걱거리는 소리를 내며 갈립니다. 전체적으로 약 10,000개의 오버레이가 있습니다. 현재 표시기는 6번째 10번 패스에서 구부러집니다.
메모리가 부족하다는 것은 알지만 기존 데이터를 사용하지 않는 경우 새 데이터로 올바른 채우기가 발생하지 않는 이유는 무엇입니까?

MT4에는 왜 메모리에서 인디케이터를 제거하는 기능이 없는데 구현이 매우 어려운가요?

 
지표 사본의 수가 많으면 Expert Advisor로 통합하십시오. 다른 방법은 없습니다.
 
Renat Fatkhullin :
지표 사본의 수가 많으면 Expert Advisor로 통합하십시오. 다른 방법은 없습니다.

이것은 고문에 관한 것이 아니라 대본에 관한 것입니다! 스크립트는 지표를 분석합니다. 이와 관련하여 메모리를 확보할 수 있는 방법이 있습니까? 여러 단계(지표 매개변수 및 해당 분석의 변경) 후에 차트를 닫고 열도록 스크립트를 훈련하면 메모리를 지울 수 있습니까?

알렉산더 라우르 :

어드바이저에서 지표를 생성한 다음 삭제해야 하는 이유는 무엇입니까?

지표 계산과 유사한 계산을 할 수 있도록 EA 코드에 함수를 포함합니다. 이 기능에서 계산을 위한 매개변수를 쉽게 변경할 수 있으며 메모리 오버런이 발생하지 않습니다. 그리고 내가 이해하는 것처럼 필요하지 않은 모든 막대에 대한 계산은 피할 수 있습니다. 그리고 단순히 iCustom() 함수가 필요하지 않습니다.

기간 동안 모든 막대가 필요합니다. 스크립트가 작동합니다. 특정 유형의 지표를 분석하는 데 보편적입니다. 각 지표에 대한 스크립트를 작성하는 데 비용이 많이 듭니다. 이제 컴파일러(특정 명령에서)가 표시기를 Expert Advisors/스크립트/표시기에 넣으면 또 다른 삶이 시작됩니다! 아, 꿈이...