이 표시기에서 다른 표시기가 호출되면 OnInit를 종료한 직후 OnCalculate의 첫 번째 자동 호출은 이러한 표시기의 데이터를 계산하지 않으며, 또한 표시기는 OnCalculate를 종료하지 않고 계산을 "대기"할 수 없습니다. 그리고 첫 번째 틱이 시작되는 주말이 끝날 때까지 OnCalculate에 대한 다음 호출은 없습니다. 동시에 이러한 표시기의 OnTimer 또는 OnChartEvent는 데이터 수신 시 다시 그리기를 유발하지 않습니다. 결과적으로 내가 볼 수있는 유일한 방법은 DLL을 통해 창의 컨텍스트 메뉴에서 차트의 "새로 고침"항목을 호출하는 것입니다. 개발자가 표시기의 정상적인 작동을 위해이 특정 방법을 계획했다고 생각하지 않습니다. MT5에서. 그렇지 않으면 사용자는 지표가 그려질 때까지 이 버튼을 눌러 차트에서 요리를 해야 하므로 만족할 것 같지 않습니다.
Ilya Malev : 이 표시기에서 다른 표시기가 호출되면 OnInit를 종료한 직후 OnCalculate의 첫 번째 자동 호출은 이러한 표시기의 데이터를 계산하지 않으며, 또한 표시기는 OnCalculate를 종료하지 않고 계산을 "대기"할 수 없습니다. 그리고 첫 번째 틱이 시작되는 주말이 끝날 때까지 OnCalculate에 대한 다음 호출은 없습니다. 동시에 이러한 표시기의 OnTimer 또는 OnChartEvent는 데이터 수신 시 다시 그리기를 유발하지 않습니다. 결과적으로 내가 볼 수 있는 유일한 방법은 DLL을 통해 창의 컨텍스트 메뉴에서 차트의 "새로 고침" 항목을 호출하는 것입니다. 개발자가 MT5에서 표시기의 정상적인 작동을 위해 이 특정 방법을 계획했다고 생각하지 않습니다. 그렇지 않으면 사용자는 지표가 그려질 때까지 이 버튼을 눌러 차트에서 요리를 해야 하므로 만족할 것 같지 않습니다.
새 빌드( 1178 )로 업데이트한 후 차트에 Expert Advisor를 로드할 때 프로그램이 차트에서 언로드될 때 로그에 다음 오류가 발생합니다.
//---
내가 아는 한, 이 상황은 CChartObject::Timeframes ( OBJ_NO_PERIODS ) 메서드를 사용하여 그래픽 개체를 숨기려고 할 때 발생합니다.
추신 아니요, 문제는 다른 이유 때문일 가능성이 큽니다. 현지화를 하려고 하는데 계속해서 서비스 데스크에서 요청을 열었습니다.
저자는 이미 알고 있고 어떻게 그런 일이 일어났는지에 대해 열심히 생각하고 있습니다.
글쓴이가 이 순간을 고민하고 수정한 내용은 다음 업데이트에 공개될 예정입니다.
브로커의 설명되지 않은 기능이 원인이었습니다.
모든 것이 괜찮아지기 전에
빌드 1178. 컴파일 오류: 'B' - 템플릿 불일치
모든 것이 괜찮아지기 전에
iCustom을 통해 호출된 표시기에서 OnTimer 이벤트가 실행되지 않는 이유는 무엇입니까?
구조적으로 타이머 이벤트는 차트 이벤트이므로 이 경우 표시기는 이를 수신할 수 없습니다.
이 표시기에서 다른 표시기가 호출되면 OnInit를 종료한 직후 OnCalculate의 첫 번째 자동 호출은 이러한 표시기의 데이터를 계산하지 않으며, 또한 표시기는 OnCalculate를 종료하지 않고 계산을 "대기"할 수 없습니다. 그리고 첫 번째 틱이 시작되는 주말이 끝날 때까지 OnCalculate에 대한 다음 호출은 없습니다. 동시에 이러한 표시기의 OnTimer 또는 OnChartEvent는 데이터 수신 시 다시 그리기를 유발하지 않습니다. 결과적으로 내가 볼 수 있는 유일한 방법은 DLL을 통해 창의 컨텍스트 메뉴에서 차트의 "새로 고침" 항목을 호출하는 것입니다. 개발자가 MT5에서 표시기의 정상적인 작동을 위해 이 특정 방법을 계획했다고 생각하지 않습니다. 그렇지 않으면 사용자는 지표가 그려질 때까지 이 버튼을 눌러 차트에서 요리를 해야 하므로 만족할 것 같지 않습니다.
MT4의 경우:
작동하지 않을까요? https://www.mql5.com/ru/code/11678
작동하지 않을까요? https://www.mql5.com/ru/code/11678
이 스크립트는 MetaTrader 4용입니다 :)
MT4에서 모든 데이터는 mql4 프로그램에서 수신되기 전에 터미널에서 계산됩니다.