Fehler, Irrtümer, Fragen - Seite 328

 
DenisR:
Zuerst war es auch 15 505 1009, aber dann wurde das Terminal auf die neueste Version (408) aktualisiert und es wurde 5 505 1009. In jedem Fall aber darf das Dateiendungszeichen nicht größer sein als die Datei selbst. Das ist es, was mich im Moment am meisten beunruhigt.
Nun, ja, es ist ein bisschen seltsam...
 

Leicht verändertes Beispiel für einen Indikator aus dem Helpdesk:

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2010, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//---- plot Line
#property indicator_label1  "Line"
#property indicator_type1   DRAW_LINE
#property indicator_color1  DarkBlue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         LineBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,LineBuffer,INDICATOR_DATA);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- получим количество доступных баров для текущих символа и периода на графике
   if(prev_calculated<=0) 
     {
      int bars=Bars(Symbol(),0);
      Print("Bars = ",bars,", rates_total = ",rates_total,", prev_calculated = ",prev_calculated);
      Print("time[0] = ",time[0]," time[rates_total-1] = ",time[rates_total-1]);
      //--- return value of prev_calculated for next call
     }
   return(rates_total);
  }

Werfen Sie zum Beispiel USDJPY (1h). Dann lassen Sie es zum Beispiel auf #C (30m) laufen. Dies alles geschieht, während der Markt in den USA noch nicht geöffnet ist. Und wir sehen, dass, sobald ein Tick auf dem USDJPY kommt, OnCalculate bei #C auslöst, außerdem prev_calculated=0. Und auf dem USDJPY selbst, prev_calculated != 0 vor dem neuen Balken. Sieht für mich nach einem offensichtlichen Fehler aus, aber vielleicht übersehe ich ja etwas. Gebäude 408

 
notused:

Werfen Sie z.B. auf USDJPY (1h). Dann starten wir zum Beispiel auf #C (30m). All dies geschieht, während der US-Markt noch nicht geöffnet ist. Und wir sehen, dass, sobald ein Tick auf USDJPY kommt, OnCalculate bei #C auslöst, außerdem prev_calculated=0. Und auf dem USDJPY selbst, prev_calculated != 0 vor dem neuen Balken. Sieht für mich nach einem offensichtlichen Fehler aus, aber vielleicht übersehe ich ja etwas. Gebäude 408

Diese Art von Fragen wurde bereits erörtert: https://www.mql5.com/ru/forum/3283/page2#comment_50176(die letzten beiden Absätze; Sie können auch den gesamten Thread einsehen).
Почему срабатывает OnCalculate по выходным, когда нет тиков?
Почему срабатывает OnCalculate по выходным, когда нет тиков?
  • www.mql5.com
Событие Calculate генерируется только для индикаторов сразу после посылки события Init и при любом изменении ценовых данных.
 
Yedelkin:
Dies wurde bereits erörtert: https://www.mql5.com/ru/forum/3283/page2#comment_50176(die letzten beiden Absätze; und Sie können den gesamten Thread einsehen).
Danke, gut zu wissen
 
Frage. Der Indikatorpuffer enthält ganze Zahlen oder z. B. die Uhrzeit. Kann ich die Werte des Indikatorpuffers im DataWindow als Ganzzahlen oder z. B. als Zeit anzeigen lassen?
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 
Lizar:
Frage. Der Indikatorpuffer enthält ganze Zahlen oder z. B. die Uhrzeit. Kann ich das DataWindow dazu bringen, die Werte des Indikatorpuffers als ganze Zahlen oder z. B. als Zeit anzuzeigen?

als Ganzes können Sie - durch Reduzierung der INDICATOR_DIGITS


 
sergeev:

als Ganzes können Sie - durch Reduzierung der INDICATOR_DIGITS

Dann werden auch alle Doppelgänger zu ganzen Zahlen :(
 
Lizar:
Frage. Der Indikatorpuffer enthält ganze Zahlen oder z. B. die Uhrzeit. Kann ich dafür sorgen, dass die Werte des Indikatorpuffers in DataWindow als Ganzzahlen oder z. B. als Zeit angezeigt werden?
Im Moment sind die Indikatorpuffer als Arrays vom Typ double positioniert. Daher sollten in DataWindow die Pufferwerte als Werte vom Typ double angezeigt werden. Ohne die Entwickler werden wir wahrscheinlich nicht in der Lage sein, das Problem selbst zu lösen.
 
Yedelkin:
Derzeit ist индикаторные буферы als Array vom Typ double positioniert. Dementsprechend zeigt das DataWindow die Pufferwerte als Werte vom Typ double an. Offensichtlich können wir das Problem nicht allein, ohne Entwickler, lösen.
Wow...
 
Yedelkin:
Die Indikatorpuffer sind derzeit als Arrays vom Typ double positioniert. Dementsprechend werden die Pufferwerte in DataWindow als Werte vom Typ double angezeigt. Offensichtlich werden wir dieses Problem nicht ohne die Entwickler lösen können.
Die Indikatorpuffer sollen als Arrays vom Typ double positioniert werden. Es ist möglich, int und datatime aus double zu machen. Aber Sie können das umgewandelte Ergebnis nicht anzeigen. Die Indikatoren sind einfach leistungsfähiger, während die Anzeige der Ergebnisse im Datenfenster die gleiche bleibt. Ich möchte eine Anfrage an den Service Desk stellen.
Grund der Beschwerde: