Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1196

 

@Oleg

Bitten Sie die Entwickler, die Fehlernummer wie in der Dokumentation anzugeben. Es ist nicht klar, warum sie in der Dokumentation steht und nicht im Editor in der Beschreibung verwendet wird.

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

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

einfach den bei der Initialisierung zuzuweisenden Pufferindex in SetIndexBufer angeben


Ich bin nicht gut im Programmieren, es gibt keinen Puffer im Code des Indikators, durch den er Daten ausgibt

 
edelweiss7:

Ich bin nicht gut im Programmieren, im Code des Indikators gibt es keinen Puffer, durch den er Daten ausgibt

Ich habe mich nicht tief in Ihren Code eingegraben, aber ich verstehe, dass er Ebenen zeichnet


... benötigen Sie den OnChartEvent-Handler

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

Überwachen Sie die Erstellung neuer Objekte (CHARTEVENT_OBJECT_CREATE), und wenn das Namenspräfix von Ihrem Indikator stammt, nehmen Sie die Eigenschaften der erstellten Linie (dort den Preis und die Zeit ihrer Punkte)

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

Ich habe mich nicht eingehend mit Ihrem Code befasst, aber ich verstehe, dass er Ebenen zeichnet


... Sie benötigen einen OnChartEvent-Handler

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

Überwachen Sie die Erstellung neuer Objekte (CHARTEVENT_OBJECT_CREATE), und wenn der Name Präfix ist von Ihrem Indikator - nehmen Sie die Eigenschaften der erstellten Linie (Preis und Zeit der Punkte gibt)

Wie man dies in einem EA implementiert
 

Bitte helfen Sie mir, einen Fehler zu korrigieren, der in meinem Protokoll erscheint:

MQL4 Market: Produkte können nicht geladen werden (get header failed [12150])

 
Der Handler (mt5, indictaor) verarbeitet wiederholt Tastendrucke. Was könnte der Grund dafür sein?
 
Yevhenii Levchenko:
Der Handler (mt5, indictaor) verarbeitet wiederholt Tastendrucke. Was kann der Grund dafür sein?

neu zeichnen - ChartRedraw()

 
Yevhenii Levchenko:
Der Event-Handler (mt5, indictaor) verarbeitet manchmal Tastendrücke. Was kann der Grund dafür sein?

ohne ein Beispieldiagramm, das zeigt, wie Sie die Ereignisse verarbeiten, kann man nur raten.

Alternativ können Sie es auch im Ordner Indicators Examle\SimplePanel ausführen

und wenn dieser Code korrekt funktioniert ... raten Sie selbst ;)

 
Yevhenii Levchenko:
Der Handler (mt5, indictaor) verarbeitet die Tastenbetätigungen in einem Zeitintervall. Was könnte der Grund dafür sein?

habe gerade heute Morgen den gleichen Fehler gemacht :-)

Die Schaltfläche ist so angepasst, dass sie im Tester funktioniert und durch Polling, nicht vollständig im OnChartEvent funktioniert.

Der Fehler lag in der Prüfungsart

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

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

    state=!state;

}

 

Guten Morgen.

Der Punkt ist, dass die letzten 50 Kerzen für den Durchschnitt berechnet werden.

Frage. Was hinzufügen, fix in den Code zu berechnen einmal und nicht jeden Tick. Das Problem ist, dass es bei ON-LINE eine Akkumulation von Werten gibt.

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
Grund der Beschwerde: