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

 
A100 :

그런 다음 버그는 32비트 버전의 경우 오류 없이 실행된다는 사실에도 있습니다. 유효하지 않은 포인터 - 클래스에 멤버를 추가하는 경우에만(예: int i)

분명히 MT4에서 테스트했지만 빌드가 더 낮습니다.

 
Kirill Belousov :

벌레.

NOT CURRENT에서 중복 객체를 생성할 때 오류 4200이 발생하지 않습니다(현재 객체에서 여전히 제공 - [로그의 "CURRENT CHART" 참조]).

또한 NON-CURRENT 차트에서 개체를 검색하는 것이 현재 차트에서 검색하는 것보다 최대 500배 더 많은 시간이 걸린다는 것도 발견되었습니다.

:) , 내가 이것을 가지고 있는 유일한 사람이 아니라는 것이 밝혀졌기 때문에

객체는 함수 호출 즉시 생성되지 않습니다. 비동기 명령이 차트로 전송됩니다. 일정을 위해 사전 점검을 할 기회가 있습니다. 다른 사람의 일정에는 그런 가능성이 없습니다. 또는 오히려 있지만 매우 비쌉니다.

따라서 반환 코드 "오류 없음"은 이 외계인 차트가 발견되었고 개체 생성 명령이 실행을 위해 대기열에 성공적으로 배치되었음을 나타냅니다.

 
fxsaber :

분명히 MT4에서 테스트했지만 빌드가 더 낮습니다.

MT5\1653\32\Win10 - //결과: false

32비트도 있고 유효하지 않은 포인터 가 발생하면 일반적으로 일종의 임의 오류가 발생합니다.

ServiceDesk는 다음과 같이 작성합니다. 함수 f는 비어 있고 복사 연산자에 대한 호출과 마찬가지로 최적화 프로그램에 의해 호출이 잘립니다.

하지만 만약

         void f() { Print ( __FUNCTION__ ); }

그런 다음 결과:

2017.09.26 14:03:55.853 데모 (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 데모 (GBPUSD,M15) false
본질적으로 변하지 않는다

 
A100 :

32비트도 있는 경우 - 일반적으로 일종의 임의 오류

아니요, Win7x64를 실행했습니다.

ServiceDesk는 다음과 같이 작성합니다. f 함수는 비어 있고 1단계에서 복사 연산자에 대한 호출과 마찬가지로 최적화 프로그램에 의해 호출이 잘립니다.

하지만 만약

그럼 아무것도 바뀌지 않아

SD가 확인없이 빠르게 응답하는 것을 보았습니다. 그리고 90%의 응용 프로그램에 대해 이것은 아마도 정확할 것입니다. 대부분의 응용 프로그램은 버그 때문이 아니라 무지 때문입니다. 자세히 살펴보십시오. 작동합니다.

 

링크가 있는 사이트 버그.

포럼 메시지가 중재자가 다른 스레드로 이동한 경우 "모든 메시지" 프로필 검색에서 이 메시지는 이전 장소를 나타냅니다. 따라서 전환하지 마십시오.

 
A100 :

MT5\1653\32\Win10 - //결과: false

32비트도 있고 유효하지 않은 포인터가 발생하면 일반적으로 일종의 임의 오류가 발생합니다.

ServiceDesk는 다음과 같이 작성합니다. 함수 f가 비어 있고 복사 연산자에 대한 호출과 마찬가지로 최적화 프로그램에 의해 호출이 잘립니다.

하지만 만약

그런 다음 결과:

2017.09.26 14:03:55.853 데모 (GBPUSD,M15) A::f
2017.09.26 14:03:55.853 데모 (GBPUSD,M15) false
본질적으로 변하지 않는다

추가하겠습니다. 함수 f는 객체의 필드에 대한 주소 지정을 포함하지 않으므로 객체에 대한 포인터(this)는 함수 f에 필요하지 않습니다.
옵티마이저는 핸들의 불필요한 역참조를 제거합니다(MQL에서 포인터는 핸들임을 기억하십시오). 그것은 (포인터) f 내부에서 사용되지 않습니다

 
Ilyas :

추가하겠습니다. 함수 f는 객체의 필드에 대한 주소 지정을 포함하지 않으므로 객체에 대한 포인터(this)는 함수 f에 필요하지 않습니다.
옵티마이저는 핸들의 불필요한 역참조를 제거합니다(MQL에서 포인터는 핸들임을 기억하십시오). 그것은 (포인터) f 내부에서 사용되지 않습니다

분명히 정적과 마찬가지로 f로 작업하십시오. 그러나 하나는 실행 중이고 다른 하나는 중단 되었음을 설명하는 방법은 무엇입니까?

 
사실, 적어도 편리 할 것입니다.
 input string Value = _MarketWatch; // Выпадающий список (а-ля enum) символов из Обзора рынка 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

ENUM 기호 목록을 INPUT으로

Martin Nohejl , 2017.09.26 13:01

안녕하세요, 저는 다음을 수행할 것입니다.

기호를 입력 매개변수 사용하고 싶기 때문에 다음과 같이 올바른 기호를 선택할 입력 변수(열거형)가 필요합니다.

나는이 코드로 이것을했습니다 :

 enum ENUM_SYMBOL
   { 
    EURUSD= 0 , 
    GPBUSD= 1 , 
    USDCHF= 2
   };

그것은 나를 위해 완벽하게 작동합니다. 그러나 전체 기호 목록(SymbolsTotal(0);)으로 열거형을 동적으로 채우고 싶습니다.

어떻게 든 아마도 코드로 :

 int a = SymbolsTotal ( 0 );
for ( int i= 0 ; i!=a;i++){
....
}
 
fxsaber :

분명히 정적과 마찬가지로 f로 작업하십시오. 그러나 하나는 실행 중이고 다른 하나는 중단 되었음을 설명하는 방법은 무엇입니까?

대부분 디버깅을 시작하고(F5), A100은 먼저 컴파일(F7)한 다음 차트에 넣습니다.

디버깅을 위해 컴파일할 때 최적화 프로그램은 분명히 사용되지 않은 코드만 제거하고 다른 모든 최적화는 수행되지 않습니다.
 
Ilyas :
대부분 디버깅을 시작하고(F5), A100은 먼저 컴파일(F7)한 다음 차트에 넣습니다.

디버깅을 위해 컴파일할 때 최적화 프로그램은 분명히 사용되지 않은 코드만 제거하고 다른 모든 최적화는 수행되지 않습니다 .

이 기능은 즉시 고려되었습니다. 이제 나는 나 자신을 다시 확인했다.

릴리스 옵션 :

Test (EURUSD,H1)        invalid pointer access in 'Test.mq5' (9,11)