오류, 버그, 질문 - 페이지 1400

 

새 빌드( 1178 )로 업데이트한 후 차트에 Expert Advisor를 로드할 때 프로그램이 차트에서 언로드될 때 로그에 다음 오류가 발생합니다.

 2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)        
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)         00 : 0x00000000028E1F21
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)        
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)                       00000000028 E1F37 C6467000          mov         byte [rsi+ 0x70 ], 0x0
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)                       00000000028 E1F30 C686AD02000000    mov         byte [rsi+ 0x2ad ], 0x0
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)        
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)                       00000000028 E1F2E 7 CA0              jl         0x28e1ed0
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)                       00000000028 E1F2C 39 C3              cmp        ebx, eax
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)                       00000000028 E1F26 8 B868B000000      mov        eax, [rsi+ 0x8b ]
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)                       00000000028 E1F24 FFC3              inc        ebx
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)           crash -->   00000000028 E1F21 FF5728            call       qword near [rdi+ 0x28 ]
2015.10 . 14 21 : 04 : 50.571 TestLibrary (EURUSD,M30)        Access violation at 0x00000000028E1F21 read to 0x0000000D5D01E928 in 'D:\#MetaTrader\MetaTrader 5 Test\MQL5\Experts\#TestLibrary\Article02\TestLibrary.ex5'

//---

내가 아는 한, 이 상황은 CChartObject::Timeframes ( OBJ_NO_PERIODS ) 메서드를 사용하여 그래픽 개체를 숨기려고 할 때 발생합니다.

추신 아니요, 문제는 다른 이유 때문일 가능성이 큽니다. 현지화를 하려고 하는데 계속해서 서비스 데스크에서 요청을 열었습니다.

 
transcendreamer :
저자는 이미 알고 있고 어떻게 그런 일이 일어났는지에 대해 열심히 생각하고 있습니다.

글쓴이가 이 순간을 고민하고 수정한 내용은 다음 업데이트에 공개될 예정입니다.

브로커의 설명되지 않은 기능이 원인이었습니다.

 
빌드 1178. 컴파일 오류: 'B' - 템플릿 불일치
 class A { template < typename T> A( T ) {} };
class B;
class B {};
모든 것이 괜찮아지기 전에
 
A100 :
빌드 1178. 컴파일 오류: 'B' - 템플릿 불일치
모든 것이 괜찮아지기 전에
감사합니다. 확인하겠습니다.
 
iCustom을 통해 호출된 표시기에서 OnTimer 이벤트가 실행되지 않는 이유는 무엇입니까?
 
Ilya Malev :
iCustom을 통해 호출된 표시기에서 OnTimer 이벤트가 실행되지 않는 이유는 무엇입니까?
구조적으로 타이머 이벤트는 차트 이벤트이므로 이 경우 표시기가 이를 수신할 수 없습니다.
 
Anton :
구조적으로 타이머 이벤트는 차트 이벤트이므로 이 경우 표시기는 이를 수신할 수 없습니다.
틱이 오지 않는 경우(예: 주말) iCustom을 통해 호출된 표시기를 프로그래밍 방식 으로 강제로 그리는 방법(즉, OnCalculate 호출 유발)은 무엇입니까?
 
이 표시기에서 다른 표시기가 호출되면 OnInit를 종료한 직후 OnCalculate의 첫 번째 자동 호출은 이러한 표시기의 데이터를 계산하지 않으며, 또한 표시기는 OnCalculate를 종료하지 않고 계산을 "대기"할 수 없습니다. 그리고 첫 번째 틱이 시작되는 주말이 끝날 때까지 OnCalculate에 대한 다음 호출은 없습니다. 동시에 이러한 표시기의 OnTimer 또는 OnChartEvent는 데이터 수신 시 다시 그리기를 유발하지 않습니다. 결과적으로 내가 볼 수있는 유일한 방법은 DLL을 통해 창의 컨텍스트 메뉴에서 차트의 "새로 고침"항목을 호출하는 것입니다. 개발자가 표시기의 정상적인 작동을 위해이 특정 방법을 계획했다고 생각하지 않습니다. MT5에서. 그렇지 않으면 사용자는 지표가 그려질 때까지 이 버튼을 눌러 차트에서 요리를 해야 하므로 만족할 것 같지 않습니다.
 
Ilya Malev :
이 표시기에서 다른 표시기가 호출되면 OnInit를 종료한 직후 OnCalculate의 첫 번째 자동 호출은 이러한 표시기의 데이터를 계산하지 않으며, 또한 표시기는 OnCalculate를 종료하지 않고 계산을 "대기"할 수 없습니다. 그리고 첫 번째 틱이 시작되는 주말이 끝날 때까지 OnCalculate에 대한 다음 호출은 없습니다. 동시에 이러한 표시기의 OnTimer 또는 OnChartEvent는 데이터 수신 시 다시 그리기를 유발하지 않습니다. 결과적으로 내가 볼 수 있는 유일한 방법은 DLL을 통해 창의 컨텍스트 메뉴에서 차트의 "새로 고침" 항목을 호출하는 것입니다. 개발자가 MT5에서 표시기의 정상적인 작동을 위해 이 특정 방법을 계획했다고 생각하지 않습니다. 그렇지 않으면 사용자는 지표가 그려질 때까지 이 버튼을 눌러 차트에서 요리를 해야 하므로 만족할 것 같지 않습니다.

MT4의 경우:

작동하지 않을까요? https://www.mql5.com/ru/code/11678

ChartRefresh
ChartRefresh
  • 투표: 11
  • 2014.08.13
  • Alexandr Bryzgalov
  • www.mql5.com
Скрипт для принудительно обновления текущего графика.
 
Alexandr Bryzgalov :
작동하지 않을까요? https://www.mql5.com/ru/code/11678

이 스크립트는 MetaTrader 4용입니다 :)

MT4에서 모든 데이터는 mql4 프로그램에서 수신되기 전에 터미널에서 계산됩니다.