MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1196

 

@올렉

문서에서와 같이 개발자에게 오류 수를 적어달라고 요청하십시오. 문서에 있는 이유는 명확하지 않지만 설명의 편집기에서는 사용되지 않습니다.

https://www.mql5.com/ru/docs/constants/errorswarnings/errorscompile

Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) Недопустимый возвращаемый тип. Например, такая ошибка будет выдана для функций, импортированных из...
 
Alexandr Sokolov :

SetIndexBufer에서 초기화하는 동안 할당되어야 하는 버퍼의 인덱스를 지정하기만 하면 됩니다.


나는 프로그래밍을 잘 못한다. 데이터를 표시하는 인디케이터 코드에 버퍼가 없다.

 
edelweiss7 :

나는 프로그래밍을 잘 못한다. 데이터를 표시하는 인디케이터 코드에 버퍼가 없다.

나는 당신의 코드를 깊이 파고들지 않았지만, 내가 이해할 때, 그것은 수준을 그립니다.


... OnChartEvent에 대한 이벤트 핸들러가 필요합니다.

https://www.mql5.com/ru/docs/event_handlers/onchartevent

새 객체의 생성을 모니터링하고(이것은 CHARTEVENT_OBJECT_CREATE임), 이름 접두사가 지표에서 가져온 것이라면 생성된 라인의 속성을 취합니다(포인트의 가격과 시간이 있음)

Документация по MQL5: Обработка событий / OnChartEvent
Документация по MQL5: Обработка событий / OnChartEvent
  • www.mql5.com
//|                                          OnChartEvent_Sample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Alexandr Sokolov :

나는 당신의 코드를 깊이 파고들지 않았지만, 내가 이해할 때, 그것은 수준을 그립니다.


... OnChartEvent에 대한 이벤트 핸들러가 필요합니다.

https://www.mql5.com/ru/docs/event_handlers/onchartevent

새 객체의 생성을 모니터링하고(이것은 CHARTEVENT_OBJECT_CREATE임), 이름 접두사가 지표에서 가져온 것이라면 생성된 라인의 속성을 취합니다(포인트의 가격과 시간이 있음)

Expert Advisor에서 구현하는 방법
 

오류를 수정하는 데 도움을 요청합니다. 이 로그에 나타납니다.

MQL4 Market: 제품 로드 실패(헤더 가져오기 실패[12150])

 
핸들러(mt5, 표시기)는 버튼 클릭을 한 번 처리합니다. 이유는 무엇입니까?
 
Yevhenii Levchenko :
핸들러(mt5, 표시기)는 버튼 클릭을 한 번 처리합니다. 이유는 무엇입니까?

다시 그리기 - ChartRedraw()

 
Yevhenii Levchenko :
핸들러(mt5, 표시기)는 버튼 클릭을 한 번 처리합니다. 이유는 무엇입니까?

예시적인 계획 없이 이벤트를 처리하는 방법은 추측에 불과합니다.

또는 표시기 폴더 Example\SimplePanel에서 실행

이 코드가 제대로 작동한다면... 스스로 추측해 보세요 ;)

 
Yevhenii Levchenko :
핸들러(mt5, 표시기)는 버튼 클릭을 한 번 처리합니다. 이유는 무엇입니까?

말 그대로 아침에 똑같은 버그를 일으켰습니다 :-)

버튼은 테스터에서 작동하도록 조정되고 OnChartEvent 에서 완전히 작동하지 않고 설문조사에서 작동합니다.

오류는 유형 검사에 있었습니다.

if (ObjectGetInteger(....,OBJPROP_STATE)!=state /* это баг, должен быть 0 */) {

    // состояние поменялось

    state=!state;

}

 

안녕하세요.

결론은 마지막 50개의 캔들이 평균값으로 계산된다는 것입니다.

문제. 추가할 사항은 모든 틱 이 아닌 한 번 계산하도록 코드를 수정합니다. 문제는 ON-LINE에 가치의 축적이 있다는 것입니다.

 for ( int j=rates_total-50- 1 ; j<rates_total- 1 ; j++)
     {
       if (open[j]>close[j])
         candleOC+=open[j]-close[j];
       if (close[j]>open[j])
         candleOC+=close[j]-open[j];
      candleHL+=high[j]-low[j];
      bar+= 1 ;
     }
   if (bar> 0 )
     {
      filterOC=candleOC/bar;
      filterOC= NormalizeDouble (filterOC, _Digits );
      filterHL=candleHL/bar;
      filterHL= NormalizeDouble (filterHL, _Digits );
     }
//filterHL=0.00500;  //пример среднего значения HL
//filterOC=0.00250;  //пример среднего значения OC