MT4에서 MT5로 옮기는 문제. 또는 더 정확하게는 MT5에서 일부 알고리즘의 오류 없는 실행이 불가능합니다. - 페이지 12

 
Vict :

fxsaber 가 올바르게 말했습니다 - 하나의 옵션이 있습니다

약간 해키 - EXPR은 두 번 계산되지만 여전히 더 유연합니다. 일반적으로 보편적이라고 할 수는 없다(산술형에 한함. 에러값이 같아야 하는데 불편하다. 구조체/함수의 명시적 특화를 통해 해결하려 했으나 불가능)

인사말!

나는 새로운 주제를 열고 싶습니다. 문제를 공식화할 수 없습니다 ... 나는 이것에 문제가 있습니다))), 자료는 매우 신선하고 흥미롭습니다.

사용성( @fxsaber 에서 그의 모든 업적은 하나의 플러그인으로 한 번에 연결됨)을 최종으로 가져오기 위해 훌륭한 작업을 수행했습니다. 이것은 실용적입니다!

글쎄, 모든 것을 전문적으로 보이게 하려면 구문을 기본으로 삼아야 합니다(또는 최대한 가깝게) C++ / C#

 
Artyom Trishkin :

나는 내 의견을 말할 수 있습니다.

우리는 현재 가지고 있는 것으로부터 침착하게 처리하고, 징징거리지 않으며, 버그 검색을 돕고 수정을 기대하며 요청합니다. 여전히 수정 중이며 새로운 멋진 기능이 나타납니다.

나는 이 접근 방식에 동의합니다.

----------

나는 부분적으로 첫 번째 버전의 캐시와 같은 것을 가지고 있었습니다. 즉, 처음 10개의 지그재그 극값에 대해 시간, 최소값 및 최대값이 있는 배열이 생성되었습니다.

MT5 버전에서는 막대 번호가 있는 배열도 추가했습니다. 처음 10개의 극단에 대해. 이것은 대부분의 경우에 도움이 됩니다. MT5에서는 비표준 바인딩만 문제가 됩니다.

모든 21개 기간 동안 사용 가능한 기록에 대한 전체 캐시를 만들지 않습니다. 이 방법을 사용하면 컴퓨터 메모리가 충분하지 않습니다.

이해를 돕기 위해 일부 매니아는 하나의 차트에 MT4 지표를 최대 9개까지 표시합니다. 동시에 다양한 통화 쌍에 대해 많은 차트가 열려 있습니다. 그리고 그들 모두에 9 개의 지표 사본이 표시되었습니다. 이 지표 응용 프로그램은 Putniuk에서 만든 DML&EWA 시스템에 대해 구현됩니다. 그는 자신이 지표의 최대 72개 인스턴스를 표시했습니다. 즉, 8개의 통화 쌍에 대한 것입니다.

이를 사용하면 28개 버퍼와 결합된 추가 21TF 캐시가 메모리를 많이 로드합니다.

이것은 메모리 로드만을 고려한 것입니다. iTime, iLow, iHight, iClose, iBarShift 기능 대신 캐시를 사용하도록 거대한 코드를 재설계하는 것은 너무 지루합니다.

==================

나는 이 마라톤을 여러 번 달렸다.

1. 메인 프로그램의 본문에 여러 개의 외부 지그재그 표시기를 포함하는 마라톤. 시장이 프로그램을 받아들일 수 있도록 외부 지표를 없앴다.

2. 모든 단일 버퍼 지그재그를 이중 버퍼 지그재그로 변환합니다. 약 6개월이 소요되었습니다.

3. 그래픽 인터페이스 생성 . 총 2년 정도 걸렸습니다. Year 3. 그리고 여전히 그래픽 인터페이스에 대한 흥미로운 아이디어가 있습니다. 그러나 구현 정신은 충분하지 않지만 ...

4. 처음에는 1년 전에 MT4에서 MT5로의 전환을 시도했습니다. 그런 다음 작동하지 않았습니다. 이제 효과가 있었습니다. 하지만 번역 품질에 만족하지 않습니다.

다른 마라톤도 있었다.

캐시를 생성하면 막다른 골목으로 이어질 수 있습니다. 이런거 다루면 위험해...

----------

Artem, 나는 당신의 접근 방식을 전적으로 지지합니다(위에서 인용).

 
다시 말하지만, 첫 번째 게시물의 인용문은 다음과 같습니다.

...MQL5 언어 참조에서 인용. 루브릭 데이터 액세스 조직.

"...데이터 가용성

HCC 형식 또는 즉시 사용 가능한 HC 형식의 데이터 가용성이 차트에 표시하거나 mql5 프로그램에서 사용하기 위해 이 데이터의 무조건적인 가용성을 항상 의미하지는 않습니다.

mql5 프로그램에서 가격 데이터 또는 지표 값에 액세스할 때 특정 시점이나 특정 시점부터 사용 가능하다는 보장이 없다는 점을 기억하십시오 ..."

--------------

문제가 남아 있습니다.

프로그램에는 프로그램의 다른 부분에 있는 따옴표 기록에 대한 수백 개의 호출이 있습니다. 프로그램 목록은 약 50,000행입니다.

히스토리 접근의 특성상 -1이 반환되는 경우가 있습니다. 결과적으로 오류가 발생합니다. 배열이 범위를 벗어났습니다. 다른 오류도 있습니다. 프로그램의 일부에서 기록에 액세스할 때 -1이 반환될 수 있는지 확인했습니다. 이 경우 -1을 받으면 그래픽 구성 의 개별 요소 그리기가 발생하지 않습니다. 코드에 수백 개의 검사를 추가하면 기록에 대한 액세스의 특성으로 인해 이미 존재하는 브레이크가 있습니다.

MT5용 프로그램을 만들 수 있습니다. 그러나 이를 위해서는 전체 아키텍처를 변경해야 합니다. 그런 위업을 위한 시간이 없습니다.

어리석은 일을 하지 않기로 결정했습니다. 프로그램은 MT4에서 작동합니다. 그리고 저는 MT5로 전환할 계획이 없습니다. MT5에서 ZUP을 무료로 만들었습니다.

누구나 다운로드하여 MT5에서 작동하는 방법을 볼 수 있습니다. 또한 MT4의 옵션과 비교하십시오.

여기에서 MT5를 만지작거리지 않습니다. 시간 낭비일 뿐입니다.

다른 포럼에 비슷한 메시지가 게시되었습니다.

 
Renat Fatkhullin :
데이터 액세스 불가능성을 재현 가능하게 입증할 수 있습니까?

재현 가능한 증거 없이 주장하고 있습니다.

서비스 데스크에서 문제를 재현하는 방법을 설명했습니다. 문제를 재현하기 위한 소스 코드가 있습니다.

===========

MQL5 언어 문서 https://www.mql5.com/en/docs/series/timeseries_access의 텍스트:

데이터 가용성

HCC 형식 또는 즉시 사용 가능한 HC 형식의 데이터 가용성이 차트에 표시하거나 mql5 프로그램에서 사용하기 위해 이 데이터의 무조건적인 가용성을 항상 의미하지는 않습니다.

mql5 프로그램에서 가격 데이터 또는 지표 값에 액세스할 때 특정 시점 또는 특정 시점부터 사용 가능하다는 보장이 없음을 기억하십시오. 이는 리소스를 절약하기 위해 MetaTrader 5가 mql5 프로그램에 필요한 데이터의 전체 복사본을 저장하지 않고 터미널 데이터베이스에 대한 직접 액세스를 제공하기 때문입니다.


러시아어로 번역된 이 텍스트는 다음을 의미합니다. 언제든지 무엇을 하든 데이터에 액세스하지 못할 수 있습니다.

즉, 데이터 접근 중단으로 인한 오류를 피할 방법이 없다.

이것이 내가 이 텍스트를 인식하는 방식입니다.

Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...