즉, 데이터가 스크립트나 EA에서 즉시 사용 가능하면 Indicator에서도 동일하게 사용할 수 있습니다(여기에서는 데이터 가용성 문제 가 아님). 표시기는 OnCalculate()의 두 번째 패스(첫 번째 틱이라고도 함) 전에 단순히 인스턴스화에 실패합니다.
"가용성"이라는 단어를 너무 문자 그대로 이해하고 있습니다. 일부 데이터가 터미널 메모리에 존재할 수 있지만 터미널 자체에는 기본 데이터가 하나(아마도 다른) 타임프레임에 대해 확인되는 동안 모든 타임프레임에 대한 업데이트를 차단하는 일부 동기화 논리가 포함될 수 있습니다. 또는 자체 생성이 완료될 때까지 표시기의 데이터 요청을 차단할 수 있으며(표시기는 소위 핸들로 관리되지만 전문가와 스크립트는 관리하지 않음을 기억하십시오) 이것은 나에게 논리적입니다. 이것은 MQ 개발자의 관점에서 만든 추측일 뿐입니다. 서비스 데스크를 통해 직접 요청할 수 있습니다.
표시기에서 데이터를 요청할 때 요청한 시계열이 아직 구축되지 않았거나 서버에서 다운로드해야 하는 경우 함수는 즉시 -1을 반환 하지만 다운로드/구축 프로세스가 시작됩니다.
Expert Advisor 또는 스크립트에서 데이터를 요청할 때 터미널에 이러한 데이터가 로컬에 없으면 서버에서 다운로드 가 시작되고, 로컬 히스토리에서 데이터를 구축할 수 있지만 그렇지 않은 경우 필요한 시계열 구축이 시작됩니다. 아직 준비되었습니다. 이 함수는 시간 초과 만료 시점까지 준비될 데이터의 양을 반환합니다 .
따라서 전문가와 스크립트는 사전 정의된 시간 초과까지 동기적으로 처리되지만 표시기는 비동기적으로 처리됩니다.
"인스턴스화 실패"를 반복하고 있지만 정확하지 않습니다. 표시기는 모든 경우에 인스턴스화됩니다.
문제는 데이터를 동기적으로 사용할 수 없다는 것입니다. 처리해야 합니다. MT5 버그가 아니라 기능입니다.
나는 토론을 중단하고 SD 응답을 기다릴 것을 제안합니다.
아마도 나는 얼마나 많은 루프와 대기 가 있더라도 (*edit) OnCalculate();
나는 내가 틀릴 수 있다는 점을 기꺼이 받아들일 의향이 있습니다. 그래서 당신이 달리 증명할 수 있다면 10달러의 현상금을 가집니다. 제발... 제가 틀렸다는 걸 증명해 주세요. 이 어리석은 버그에 대한 해결 방법이 필요합니다. 죄송합니다. "기능"을 의미합니다.
아마도 나는 얼마나 많은 루프와 대기 가 있더라도 (*edit) OnCalculate();
나는 내가 틀릴 수 있다는 점을 기꺼이 받아들일 의향이 있습니다. 그래서 당신이 달리 증명할 수 있다면 10달러의 현상금을 가집니다. 제발... 제가 틀렸다는 걸 증명해 주세요. 이 멍청한 버그에 대한 해결 방법이 필요합니다. 죄송합니다. "기능"을 의미합니다.
첫 번째 "패스"에서 왜 필요합니까? 필요한 데이터를 사용할 수 없는 경우 사용할 수 있을 때까지 기다리면 됩니다.
다른 시간 프레임에서 동일한 표시기(동일한 기호)의 데이터에 액세스해야 하는 표시기를 개발 중이기 때문입니다. 두 번째 틱이 끝날 때까지 처리되지 않기 때문에 표시기 가 오프라인으로 작동하지 않고 두 번째 틱이 들어올 때만 작동함을 의미합니다.
왜 이 버그 때문에 타협해야 합니까? 당신이 그것을 맹렬히 옹호하는 데 무엇이 있습니까?
다른 시간 프레임에서 동일한 표시기(동일한 기호)의 데이터에 액세스해야 하는 표시기를 개발 중이기 때문입니다. 두 번째 틱이 끝날 때까지 처리되지 않기 때문에 표시기 가 오프라인으로 작동하지 않고 두 번째 틱이 들어올 때만 작동함을 의미합니다.
왜 이 버그 때문에 타협해야 합니까? 당신이 그것을 맹렬히 옹호하는 데 무엇이 있습니까?
???
나는 아무것도 변호하지 않으며 확실히 "격렬하게" 변호하지도 않습니다. 냉정하게 지내세요.
???
나는 아무것도 변호하지 않으며 확실히 "격렬하게" 변호하지도 않습니다. 냉정하게 지내세요.
ServiceDesk에 글을 쓰라고 제안할 수만 있으며 여기에서 답변을 보고해 주십시오.
확인.
누군가가 그것에 균열을 가하는 데 관심이 있는 경우를 대비하여 이 작업을 게시했습니다.
https://www.mql5.com/en/job/57516
즉, 데이터가 스크립트나 EA에서 즉시 사용 가능하면 Indicator에서도 동일하게 사용할 수 있습니다(여기에서는 데이터 가용성 문제 가 아님). 표시기는 OnCalculate()의 두 번째 패스(첫 번째 틱이라고도 함) 전에 단순히 인스턴스화에 실패합니다.
"가용성"이라는 단어를 너무 문자 그대로 이해하고 있습니다. 일부 데이터가 터미널 메모리에 존재할 수 있지만 터미널 자체에는 기본 데이터가 하나(아마도 다른) 타임프레임에 대해 확인되는 동안 모든 타임프레임에 대한 업데이트를 차단하는 일부 동기화 논리가 포함될 수 있습니다. 또는 자체 생성이 완료될 때까지 표시기의 데이터 요청을 차단할 수 있으며(표시기는 소위 핸들로 관리되지만 전문가와 스크립트는 관리하지 않음을 기억하십시오) 이것은 나에게 논리적입니다. 이것은 MQ 개발자의 관점에서 만든 추측일 뿐입니다. 서비스 데스크를 통해 직접 요청할 수 있습니다.
포인트 3으로 인해 귀하의 작업을 수행할 수 없습니다.
3. 초기화 시 버퍼에 접근해야 함
이것은 터미널 아키텍처 및 문서 에 대한 것입니다.
지표 데이터를 생성한 직후에는 지표 값을 계산하는 데 약간의 시간이 필요하므로 지표 데이터를 바로 참조할 수 없습니다.
또한 CopyBuffer 기능에 대해 읽어보십시오.
메모
표시기에서 데이터를 요청할 때 요청한 시계열이 아직 구축되지 않았거나 서버에서 다운로드해야 하는 경우 함수는 즉시 -1을 반환 하지만 다운로드/구축 프로세스가 시작됩니다.
Expert Advisor 또는 스크립트에서 데이터를 요청할 때 터미널에 이러한 데이터가 로컬에 없으면 서버에서 다운로드 가 시작되고, 로컬 히스토리에서 데이터를 구축할 수 있지만 그렇지 않은 경우 필요한 시계열 구축이 시작됩니다. 아직 준비되었습니다. 이 함수는 시간 초과 만료 시점까지 준비될 데이터의 양을 반환합니다 .
따라서 전문가와 스크립트는 사전 정의된 시간 초과까지 동기적으로 처리되지만 표시기는 비동기적으로 처리됩니다.
특정 작업은 다른 방법으로 쉽게 수행할 수 있습니다. 지표에 지표를 구축하고 오프라인에서 작동하기를 원하는 첫 번째 사람은 아닙니다. 타이머를 사용합니다.
그것을 시도했다. 작동하지 않았습니다.
샘플 코드로 더 구체적인 질문을 게시하세요. 버그가 있을 수 있습니다. 접근 방식은 저에게 효과적입니다.