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

 

먼저 MQL5 Language Reference의 인용문입니다. 루브릭 데이터 액세스 조직.

"...데이터 가용성

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

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

즉시 설명된 문제를 해결하는 방법에 대한 조언을 제공하지 말 것을 요청합니다. 이것은 주로 MQL5 개발자를 위해 작성되었습니다.

프랙탈 필터링 알고리즘은 МТ4용 ZUP에서 구현됩니다. ZUP 기사에서 - Pesavento 패턴이 있는 보편적인 지그재그. 그래픽 인터페이스 는 그것에 대해 약간 작성되었습니다. 그러나 여기에서 알고리즘을 다시 설명하겠습니다.

선택한 그래픽 도구(예: Andrews Pitchfork 또는 기타)를 지그재그 극값 또는 웨이브 카운팅에 바인딩하여 차트에 그래픽 도구를 표시할 때 프랙탈 필터링 알고리즘은 그래픽 인터페이스를 사용하여 활성화됩니다.

프랙탈 필터링은 이 그래픽 도구의 출력이 의미가 없는 시간 프레임에서 생성된 그래픽 도구를 제거합니다.

예를 들어, 선택된 극값의 경우 일부 기간에는 인용 부호가 없거나(낮은 기간에 해당) 더 높은 기간에는 막대 내에서 위치 변동이 서로 다른 하나의 막대 본문에 둘 이상의 극한값이 나타납니다.

이러한 기간에 이전에 만든 그래픽 도구를 표시하는 것은 의미가 없습니다. 기능을 잃습니다. 이러한 경우 프랙탈 필터링은 "문제가 있는" 그래픽 도구의 출력을 자동으로 방지합니다. ... 도중에 신경망 사용자를 위해 추가하겠습니다... 신경망 구현에 대한 매우 흥미로운 아이디어가 있습니다... 하지만 이것은 다른 계획의 주제입니다.

MQL5의 문제점은 그래픽 도구가 첨부된 모든 극한값에 대한 모든 타임프레임에 대해 생성된 시계열에도 불구하고 조직 데이터 액세스(위 참조)의 특성으로 인해 선택된 일부 타임프레임에 액세스하는 경우가 있다는 것입니다. 극한이 종료됩니다. 결과적으로 프랙탈 필터링 알고리즘에 대해 잘못된 시간 프레임 데이터가 생성됩니다. 즉, 예를 들어 모든 시간대에 접근할 때 프랙탈 필터링을 위한 데이터의 상위 TF는 월간 시간대의 상위 TF 값을 제공합니다. 그러나 가용성이 보장되지 않는 순간 이 극한값에 대한 상위 TF는 현재 시간 프레임에 의해 제한됩니다.

사용자는 그래픽 도구가 연결된 기호를 클릭합니다. 그래픽 도구가 표시됩니다. 사용자가 이전 TF로 전환합니다. 그래픽 도구 프랙탈 필터링 알고리즘은 제거합니다. 사용자가 혼란스러워합니다. 극단은 모두 표시되지만 그래픽 도구는 사라졌습니다.

그리고 여기서 사용자가 선택한 심볼에 마우스를 클릭한 후 현재 시간대와 다른 시계열에 대한 액세스가 나타날 때까지 그래픽 도구의 바인딩을 기다리는 것을 구성하는 것은 불가능합니다.

MT4에는 그런 문제가 없습니다.

설명된 상황은 이 경우 내가 MT5용 프로그램을 만드는 것을 금지한 문제입니다. 이 문제는 MT5가 시장에 출시될 당시에도 분명했습니다...

ZUP 코드가 MT5로 전송되었습니다. 그리고 시장에 내놓았다. 그러나 위에서 설명한 문제가 있습니다. 나는 이 문제를 우회하기 위해 목발을 쌓아두지 않았다. ... 이 문제를 알고 있으면 생성된 그래픽 도구를 삭제하면 됩니다. 그리고 다시 꺼냅니다. 하지만 이건, 쉽게 말해서...

설명된 문제는 여전히 MQL5 언어나 MT5 터미널의 결함이라고 생각합니다. 해야 한다!!! 언제든지 이미 형성된 시계열에 대한 액세스가 보장됩니다!

후에. ZUP에서 웨이브 표시를 만들 때 프랙탈 필터링이 활성화됩니다. 다음이 있습니다. 모든 시계열에 액세스할 수 있는 경우 모든 TF 웨이브 카운팅이 올바르게 표시됩니다. 그러나 시계열에 대한 액세스가 갑자기 종료되는 경우 웨이브 표시가 예측할 수 없는 방식으로 표시될 수 있습니다. 즉, 웨이브 마킹이 생성되었을 때 모든 것이 최상위 유형이었습니다. 그리고 이후의 어떤 순간에 다른 TF로 전환하는 동안 웨이브 마킹이 생성될 때 예측할 수 없는 방식으로 표시됩니다. 그리고 여기에서 터미널의 잘못된 작동을 제거하기 위해 목발을 만드는 것이 쉽지는 않습니다.

 
그래픽 개체는 잊어버리십시오. 이것은 매우 불편하고 제한적입니다. 캔버스를 사용하면 모든 것이 더 쉽고 빠르며 무제한 그래픽 가능성으로 작동합니다.
 

네, 그건 그렇고, 어제 저는 W1에서 1년 동안 지속되는 조각으로 데이터를 주기적으로 복사해야 하는 지표를 작성했습니다. 매우 자주 복사 시도가 실패했습니다. 결국 아무 일도 일어나지 않았고 완전히 다른 방식으로 모든 것을 해야 했습니다.

 
Eugeni Neumoin :

...

4k 이후 데이터 접근도 낯설고 불편하다.

5k 데이터에 대한 액세스는 TF에 의해 제한됩니다.

TF D1 또는 W1에 상당히 긴 시간 추세선을 그린 경우 M1 또는 M5로 전환하면 추세선의 먼 지점에 대한 제한된 액세스 로 인해 볼 수 없습니다.

쉽게 확인하실 수 있습니다.

캔버스를 다루어야 합니다. 그러나 아마도 그러한 매복이 기다리고 있습니다.

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

재현 가능한 증거 없이 주장하고 있습니다.
 
놀라운! 나는 지표를 준비하고 불필요한 것을 제거하여 중요한 것을 보여주고 싶었습니다. 만들어진. 그러나 갑자기 모든 것이 스위스 시계처럼 작동했습니다.
 
Uladzimir Izerski :

4k 이후 데이터 접근도 낯설고 불편하다.

5k 데이터에 대한 액세스는 TF에 의해 제한됩니다.

TF D1 또는 W1에 상당히 긴 시간 추세선을 그린 경우 M1 또는 M5로 전환하면 추세선의 먼 지점에 대한 제한된 액세스 로 인해 볼 수 없습니다.

쉽게 확인하실 수 있습니다.

캔버스를 다루어야 합니다. 그러나 아마도 그러한 매복이 기다리고 있습니다.

완전히 다른 이야기입니다. 먼 지점에서 추세선이 표시되려면 작은 TF에 대한 이력이 있어야 합니다.

우리는 W1 갈퀴에 바인딩으로 빌드합니다. 최소 tf m20. 이것은 프랙탈 필터링 알고리즘에 의해 표시됩니다. 이 경우 툴팁에서. 더 작은 TF에서는 갈퀴의 첫 번째 지점을 참조하여 무언가를 구축하는 것은 의미가 없습니다.

m20에 다음 그림에서 위쪽 화살표로 표시된 곳이 수직선으로 표시되어 있습니다. 모든 것이 훌륭하게 나옵니다. 그러나 더 작은 TF에서는 프랙탈 필터링이 이러한 갈퀴 표시를 금지합니다. 더 작은 TF에서 기록은 TERMINAL_MAXBARS 이상입니다. 따라서 m20 미만의 TF로 철수하는 것은 작동하지 않습니다.

모든 것이 훌륭하게 나옵니다. 오프셋이 없습니다. 그리고 그것은 MT5에서 훌륭하게 작동합니다. 하지만 이런 식으로 표시하기 위해서는 갈퀴를 빼낼 때 극한값의 정확한 시간을 최소 TF, 이 경우 m20으로 설정해야 합니다.

그건 그렇고, 2018년 9월 11일에 SLM318 라인(점선)이 아름답게 작동했음을 알 수 있습니다. 민스크의 포렉스 아카데미가 추진하는 저격수 기술과 같다. 그러나 여기서 시장은 SLM318 라인을 "보고" 단순히 능숙하게 작동했습니다 ...

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

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

사진을 저장하지 않았습니다. 그러나 그런 일이 발생하면 사진을 게시하겠습니다. 일부 테스트 코드를 사용하여 재현할 수 없습니다. 생성할 코드가 너무 많습니다.

어땠는지 간단하게 설명하겠습니다. 갈퀴를 H3로 가져왔습니다. 이전 TF에서도 사용할 수 있는 극한값에 연결됩니다. H4로 변경되었습니다. 갈퀴가 사라졌습니다. 왜 이런 일이 일어났는지 이해하기 시작했습니다. 프랙탈 필터링 테두리가 있는 TF의 툴팁을 확인했습니다. 위쪽 경계 가 H3에 있음이 밝혀졌습니다. 차트에서 갈퀴를 제거했습니다. 나는 갈퀴를 같은 극값에 다시 묶었습니다. 상한선을 확인했습니다. 그녀는 월간 전화를 받고 있었습니다. 그리고 그러한 상황이 반복되었습니다. 하지만 자주는 아닙니다.

프로그램은 지그재그를 표시할 때 처음 10개의 극한값에 대한 모든 시간 프레임을 호출합니다. 지그재그가 다시 그려질 때마다. 지그재그는 가격이 0바를 벗어날 때만 다시 그려집니다. 매 틱마다 아닙니다.

터미널을 닫습니다. 컴퓨터의 메모리에서 언로드합니다. *.hc 파일이 있는 history 폴더로 이동합니다. 모든 시간대에 대한 시계열 파일에는 터미널이 컴퓨터 메모리에서 언로드된 날짜와 시간이 있습니다. 즉, 모든 시계열이 형성됩니다.

 
그림은 관심이 없으며 코드에서 파생된 것입니다.

명확한 로그가 포함된 데이터 제공을 거부하는 것이 중요합니다.
 
Renat Fatkhullin :
그림은 관심이 없으며 코드에서 파생된 것입니다.

명확한 로그가 포함된 데이터 제공을 거부하는 것이 중요합니다.

모델링해야 합니다. 로그를 생성합니다. 어떻게 하면 좋을지 생각해 보겠습니다.

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

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

이것이 나를 위한 질문이라면?

여기에서 간단한 예를 재현합니다.

D1.

v1

H4로 이동

H4


H1으로 이동

H1


작은 시간 프레임에는 깨끗한 차트가 있습니다.

목록에 개체가 있지만 차트에는 없습니다.

m1