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

 

MQL4에서 MQL5로 전환 할 때 결함이 발생했습니다.

코드:

재설정 마지막 오류();

int ObjTotal = ObjectsTotal(0);

정수 오류 = GetLastError();

보고:

개체 합계 = 0

오류=4022

이 오류는 무엇이며 문서에 없는 이유는 무엇입니까?

다른 옵션을 시도했습니다: ObjectsTotal(0, -1, -1), ObjectsTotal(ChartID(), 0, OBJ_TREND) 등.

결과는 동일합니다.

작동하게 하는 방법?

터미널: MetaTrader 5, 버전 5.00 빌드 2025.
 
Игорь Евдокимов :

팁: 질문을 하고 싶다면 한 조각이 아닌 전체 코드를 삽입하세요.

요점: 누구든지 여러분의 코드를 가져와 집에서 실행할 수 있습니다. 그리고 실질적으로 아무도 조각별 코드를 보지 않습니다. 조각별 코드는 무례합니다.

코드의 예:

 //+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   ResetLastError ();
   int ObjTotal= ObjectsTotal ( 0 );
   int Error= GetLastError ();
   Print ( "ObjectsTotal: " ,ObjTotal, ", GetLastError: " ,Error);
//---
  }
//+------------------------------------------------------------------+

단일 그래픽 개체가 없는 차트에서 시작합니다. 결과:

 2019.05 . 10 13 : 26 : 59.169 1 (EURUSD,H1)   ObjectsTotal : 0 , GetLastError : 0

즉, 오류가 없습니다.


나는 터미널을 사용한다:

 2019.05 . 10 13 : 25 : 35.665 MetaTrader 5 x64 build 2025 started (MetaQuotes Software Corp.)
2019.05 . 10 13 : 25 : 35.668 Windows 10 (build 17763 ) x64, IE 11 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, Memory: 3712 / 8077 Mb, Disk: 77 / 415 Gb, GMT+ 2
2019.05 . 10 13 : 25 : 35.668 C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
파일:
1.mq5  2 kb
 
Vladimir Karputov :

팁: 질문을 하고 싶다면 한 조각이 아닌 전체 코드를 삽입하세요.

조언 감사합니다. 그렇게 하겠습니다.

그러나 질문은 여전히 열려 있습니다.

설명: 이전 게시물의 코드 조각이 표시기의 OnDeinit() 함수에 있는 경우 결과는 다음과 같습니다.

2019.05.10 14:08:20.105 PtS(EURUSD,H1) 개체 총계: 0, GetLastError: 4022

차트에서 지표를 제거한 후 동일한 코드를 스크립트(이전 게시물의 1.mq5)로 실행하면 다음을 얻습니다.

2019.05.10 14:08:33.609 1(EURUSD,H1) 개체 총계: 8575, GetLastError: 0

이유를 알아낼 수 있도록 도와주세요.

개발자님! 설명서에 없는 이 오류는 무엇입니까?

 
Vladislav Andruschenko :

최적화 중 전략 테스터 의 오류입니다.

" 테스터 에이전트 가 작업을 거부했습니다 "

예를 들어 계정 통화가 EUR인 경우

  • EURJPY 문제 없습니다
  • GBPJPY 오류


계좌 통화가 미국 달러인 경우,

  • 문제 없습니다
  • USDJPY 문제 없습니다
  • EURAUD 오류


다른 통화 쌍이 코드에 사용될 때 나타납니다.

특히 내 예에서 - 이것은 동적 로트 계산의 사용입니다.



저것들. EA가 다른 통화의 가격을 요청할 때.

@Vladislav Andruschenko

안녕하세요, 이 문제에 대한 답변이나 해결책을 얻으셨습니까?

 
Vladimir Pastushak :

차트/기간을 변경할 때 입력 필드에 지정한 값에 관계없이 PBB는 값 10을 가져옵니다.

재초기화 시에는 마치 첫 번째 실행인 것처럼 발생합니다.

문제를 해결하는 두 가지 방법이 있습니다

1 - 터미널 전역 변수에 PBB 값을 저장하고 거기에서 기간 가져오기

2 - OnChartEvent 트리거 시 MA 표시기를 다시 초기화하고 새 핸들을 가져옵니다...

모든 옵션을 확인했습니다. 작동하지 않습니다.

MQL5 프로그램의 결함.

새 값은 초기화되지 않습니다. 매개변수 입력 int PBB_=에서만 가능합니다. 다른 옵션은 없습니다. 아주 나쁜.

 
Uladzimir Izerski :

모든 옵션을 확인했습니다. 작동하지 않습니다.

MQL5 프로그램의 결함.

새 값은 초기화되지 않습니다. 매개변수 입력 int PBB_=에서만 가능합니다. 다른 옵션은 없습니다. 아주 나쁜.

MQL에서는 모든 것이 정상이지만 코드에서 수행하는 작업과 모든 것이 어떻게 작동하는지 이해하지 못할 뿐입니다...

다시 한 번 ChartSetSymbolPeriod 를 호출할 때 ( 0 , _Symbol , _Period );

모든 것을 기본값으로 재설정 중입니다...

또는 인터넷의 텍스트 필드에서 값을 요청하십시오.

논리적으로 표시기가 처음 실행되면 모든 것이 생성되고 필드의 데이터가 변경되면 새로운 초기화 호출이 발생하고 텍스트 필드의 값을 설정하는 것과 같이 논리적으로 나타납니다...

 
Vladimir Pastushak :

MQL에서는 모든 것이 정상이지만 코드에서 수행하는 작업과 모든 것이 어떻게 작동하는지 이해하지 못할 뿐입니다...

다시 한 번 ChartSetSymbolPeriod 를 호출할 때 ( 0 , _Symbol , _Period );

모든 것을 기본값으로 재설정 중입니다...

또는 인터넷의 텍스트 필드에서 값을 요청하십시오.

논리적으로 표시기가 처음 실행되면 모든 것이 생성되고 필드의 데이터가 변경되면 새로운 초기화 호출이 발생하고 텍스트 필드의 값을 설정하는 것과 같이 논리적으로 나타납니다...

텍스트 필드와 GlobalVariable을 통해 모두 시도했지만 시도하지 않았습니다. 탱크처럼 귀머거리.

그렇지 않으면 OnCalculate 는 문제 없이 작동합니다.

 
Uladzimir Izerski :

텍스트 필드와 GlobalVariable을 통해 모두 시도했지만 시도하지 않았습니다. 탱크처럼 귀머거리.

그렇지 않으면 OnCalculate는 문제 없이 작동합니다.

그래서 당신은 뭔가 잘못하고 있습니다

 
이미 지원 서비스에 연락했습니다. 포럼에 글을 쓰라고 조언했습니다. 계정에 연결할 때 창이 열리고 준비되지 않은 "행"을 읽지 않아야한다고 쓰여 있습니다. 계정 ... 어떻게해야합니까? 조언 ... .
 
Vladimir Pastushak :

그래서 당신은 뭔가 잘못하고 있습니다

이미 코드를 게시했습니다.

내가 바보라면 누군가는 프로가 되어야 한다. 내가 그것을 보지 않는 한.

답을 찾기 위한 당신의 노력을 받아들입니다. 여기에 더 깊은 이해가 있습니다. 저것들. 개발자 수준에서.