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

 
ivandurak :

EA에서 파일을 로드하는 동안 오류가 발생했습니다. 범주에서 10가지 차이점을 찾으십시오. 첫 번째 코드는 스크립트를 참조하고 두 번째 코드는 어드바이저로, Ctrl-C Ctrl-V와 동일합니다. 코드는 스크립트에서 작동하지만 EA에서는 작동하지 않습니다.

10가지 차이점을 찾으려면 파일 열기 코드를 살펴봐야 합니다. (그리고 이 여는 코드에 실패 시 오류 코드의 출력을 추가)

둘째, 이 파일로 EA를 테스트하려면 EA 코드에 #property tester_file "KitMaRsi.csv" 줄을 추가하세요.

 
안녕하세요. MQL4에서 프로그램 실행 시 다음과 같은 ERR_HISTORY_WILL_UPDATED(4066) 오류가 발생할 수 있으며, 그 코드는 GetLastError() 함수에 의해 반환됩니다. MQL5에 비슷한 오류가 있습니까? https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes 여기에서 보았지만 비슷한 것을 찾지 못했습니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки времени выполнения - Документация по MQL5
 
Druide :
안녕하세요. MQL4에서 프로그램 실행 시 다음과 같은 ERR_HISTORY_WILL_UPDATED(4066) 오류가 발생할 수 있으며, 그 코드는 GetLastError() 함수에 의해 반환됩니다. MQL5에 비슷한 오류가 있습니까? https://www.mql5.com/ru/docs/constants/errorswarnings/errorcodes 여기에서 보았지만 비슷한 것을 찾지 못했습니다.

나는 그것이 실수라고 말하지 않을 것이다. 단말기 자체에서 데이터가 동기화되었는지 모니터링하고 데이터를 프로그래밍 방식으로 동기화(다운로드)하고 이력이 동기화되었는지 여부를 확인할 수 있습니다.

데이터 액세스 구성은 여기 에 설명되어 있습니다(히스토리 로드 스크립트의 예가 있음).

필요한 기능: SeriesInfoIntegerSymbolIsSynchronized

 
awkozlov :

어떻게 든 스위치는 기호 변수와 함께 작동하지 않습니다 ...

대신에:

'유형' - 잘못된 스위치 표현식 유형
'구매' - 상수 표현식은 정수가 아닙니다.


텍스트가 아닌 ID를 사용하십시오. 더 쉽고 논리적 인 것은 ...

 //Что-то типа такого (или свои идентификаторы). Написать функцию конвертирующую текст в идентификатор и обратно (при необходимости) достаточно просто.
//Да и выглядит это более профессионально в конечном итоге.
   switch (type)
  {
   case ORDER_TYPE_BUY : {direction = type;  price = SymbolInfoDouble (zSymbol, SYMBOL_ASK ); break ;}
   case ORDER_TYPE_SELL : {direction = type; price = SymbolInfoDouble (zSymbol, SYMBOL_BID ); break ;}
   default : { return (lot_value);}
  }

   switch (type)
  {
   case OP_BUY: {direction = ORDER_TYPE_BUY ;  price = SymbolInfoDouble (zSymbol, SYMBOL_ASK ); break ;}
   case OP_SELL: {direction = RDER_TYPE_SELL; price = SymbolInfoDouble (zSymbol, SYMBOL_BID ); break ;}
   default : { return (lot_value);}
  }
 
awkozlov :

어떻게 든 스위치는 기호 변수와 함께 작동하지 않습니다 ...

대신에:

'유형' - 잘못된 스위치 표현식 유형
'구매' - 상수 표현식은 정수가 아닙니다.

다음과 같이 그려야 합니다.

너무 명확하고 비뚤어지지 않습니다.

다른 언어로 된 롤...

다르게 써야 하나요?

내가 그랬어

 #define  OP_BUY               0
#define  OP_SELL               1
#define  OP_BUYLIMIT           2
 
Interesting :

나는 그것이 실수라고 말하지 않을 것이다. 단말기 자체에서 데이터가 동기화되었는지 모니터링하고 데이터를 프로그래밍 방식으로 동기화(다운로드)하고 이력이 동기화되었는지 여부를 확인할 수 있습니다.

데이터 액세스 구성은 여기 에 설명되어 있습니다(히스토리 로드 스크립트의 예가 있음).

필요한 기능: SeriesInfoIntegerSymbolIsSynchronized

고맙습니다! 이해했다.
 

MQL5에 stdlib.mqh, WinUser32.mqh, stderror.mqh와 같은 라이브러리와 유사한 것이 있습니까? 특히 PostMessageA 기능에 관심이 있습니까?

 

여러 에이전트로 최적화할 때 결과는 처리된 순서대로 그래프에 표시됩니다. 산재. MT4에서와 같이 매개변수 선택에 따라 결과의 출력 순서를 만들 수 있습니까? 저것들. 나중에 나온 결과가 올바른 위치에 삽입되었습니다. 이는 최적화 과정에서 추세와 패턴을 추적하는 것이 불편하고, 계산이 완료된 후에야 결과 분석이 가능하기 때문이다.

++: 이것은 철저한 검색을 통한 최적화에 관한 것입니다. 물론 유전학에서는 이것은 말이 되지 않습니다.

 
Konstantin83 :

핸드북의 설명

사실로

bool ObjectCreate (
chart_id , // 차트 ID
name , // 객체 이름
ENUM_OBJECT 유형, // 객체 유형
정수 n win , // 창 인덱스 );


감사합니다 수정했습니다
 
x100intradayhttps://www.mql5.com/ru/forum/1111/page610#comment_130250 을 작성했습니다.

OnCalculate() 함수 호출의 두 번째 전체 형식이 사용되는 M1 도움말에서 iFractals 예제 코드를 실행해 보겠습니다. 하지만 그 전에 이 함수 내에서 수정

표시된 결과와 함께 줄을 놓치지 않기 위해(그대로 두면 다른 값이 드물고 즉시 1로 대체되기 때문에 1이 항상 시각적으로 표시되므로 단위가 항상 표시됨). 출시 후에는 코드가 검소한 알고리즘을 사용한다는 사실에도 불구하고 표시기 가 매분 완전히 다시 그려지는 것이 분명한 매분, 즉 모든 새 막대에 단일 값이 아닌 값이 나타나는지 확인합니다. . 의심하는 사람은 각 프랙탈에 수직선을 그리는 몇 줄의 코드를 추가할 수 있습니다. 그런 다음 첫 번째 그림을 그린 후 이를 삭제하고 잠시 기다리면 새 막대가 나타나고 동일한 집합의 완전한 집합이 나타납니다. 윤곽. 어떤 이유에서인지 마지막 프랙탈이나 선만 그리는 것은 문제가 없습니다.

예, 실제로 iFractals() 함수의 예에서 표시기는 기본 제공 표시기의 값으로 표시 버퍼를 다시 업데이트 합니다. 이에 대한 "유죄"는 행의 두 번째 조건(노란색으로 강조 표시됨)입니다.

 //--- если это первый запуск вычислений нашего индикатора или изменилось количество значений в индикаторе iFractals
//--- или если необходимо рассчитать индикатор для двух или более баров (значит что-то изменилось в истории)
   if (prev_calculated== 0 || calculated!=bars_calculated || rates_total>prev_calculated+ 1 )
     {

설명: 각 틱에서 이 두 값이 비교되고 함수 끝에 할당이 있습니다.

 //--- запомним количество значений в индикаторе Fractals
   bars_calculated=calculated;

그리고 그들 사이의 차이점은 영적 경우에 발생할 수 있습니다.

  1. 프랙탈 지표가 계산되는 히스토리 자체가 변경됨(사용자 업로드 히스토리)
  2. 다가오는 이벤트 새로운 바

이 경우 이 두 이벤트의 분리가 이루어지지 않고 발견되었습니다. 이러한 질문이 발생하지 않도록 이 예를 편집할지 여부는 아직 말할 수 없습니다.