Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1034

 
The_Sheikh:

Hallo, kann jemand in klaren Worten erklären, was"Plots" in MQL5 sind? Sie sind nicht mit Puffern verwandt, aber die indicator_plots-Eigenschaft erstellt eine Liste von Zeichnungsobjekteigenschaften ähnlich wie Puffer. Bei der Verwendung von MQL4-Tools, war es klar, dass ein Verweis auf eine bestimmte Zeichnung Objekt gemacht wurde, und jetzt gibt es eine neue Präprozessor-Eigenschaftindicator_plots, die die Anzahl der definiert, was unklar ist.

In MQL4 wurde die Anzahl der anzuzeigenden Puffer mit der Option

#property indicator_buffers 1

In der Funktion OnInit() können Sie mehrere Puffer für Berechnungen hinzufügen

IndicatorBuffers(3);

Und in MQL5 wird das Gleiche in zwei Direktiven geschrieben

#property indicator_buffers 3
#property indicator_plots   1

Das bedeutet, dass es insgesamt 3 Puffer gibt, während 1 Puffer auf dem Diagramm angezeigt wird. Die beiden anderen werden für Berechnungen verwendet. Und in MQL5 kann einer der zusätzlichen für die Farbdarstellung verwendet werden.

 
fxsaber:

Es ist wahrscheinlich klarer zu verstehen, wenn Sie diesen Indikator in MT4 und MT5 ausführen. Bei der Umstellung auf MT5 musste ich Plots verwenden

Denn es sollten nur zwei Puffer gezeichnet werden.

Schon näher an der Wahrheit. Was aber, wenn der zweite und der sechste Puffer gezogen werden sollen? Gibt es keine Möglichkeit?

Alexey Viktorov:

Wir könnten mehrere Puffer für Berechnungen in derFunktion OnInit() hinzufügen

Übrigens, gibt es eine Alternative zu dieser Funktion in MQL5?

 
The_Sheikh:

Dies entspricht eher der Wahrheit. Was aber, wenn die zweite und die sechste Karte gezogen werden sollen? Nichts?

Ich weiß es nicht.

 
The_Sheikh:

Dies entspricht eher der Wahrheit. Was aber, wenn die zweite und die sechste Karte gezogen werden sollen? Unmöglich?

1) "Zweiter und Sechster" - Sie entscheiden über die Verteilung der Zahlen ;)

2) INDICATOR_CALCULATIONS und DRAW_NONE vs. INDICATOR_DATA und non-DRAW_NONE (any other) funktioniert für jede Sequenznummer.

 
The_Sheikh:

Dies entspricht eher der Wahrheit. Was aber, wenn die zweite und die sechste Karte gezogen werden sollen? Unmöglich?

Sie stellen nur den Puffertyp ein, welcher angezeigt wird, welcher Farbe enthält und welcher nur Hilfswerte enthält.


INDIKATOR_DATEN

Zeichnungsdaten

INDIKATOR_FARBE_INDEX

Rendering-Farben

INDIKATOR_BERECHNUNGEN

Zusätzliche Puffer für Zwischenberechnungen

 
The_Sheikh:

Übrigens, gibt es eine Alternative zu dieser Funktion in MQL5?

In mql5 ist eine solche Funktion nicht erforderlich. Ich habe Ihnen ein Beispiel dafür gegeben, wie man es schreibt. Der Unterschied zu mql4 besteht nur in der Reihenfolge und der Schreibweise.

 
Vielen Dank an alle, die geantwortet haben!
 

Angenommen, die maximale Anzahl der Balken im Diagramm ist auf 10000 festgelegt. Im Skript und im Indikator gibt die Funktion Bars() dann die in den Einstellungen angegebene Anzahl + die Anzahl der neu erschienenen Candlesticks zurück.

Die Anzahl der im Diagramm angezeigten Candlesticks ist also nicht auf 10000 begrenzt?

Wie kann ich in MQL genau die in den Terminaleinstellungen angegebene Zahl erfahren?

Wenn die Anzahl der Balken die maximale Anzahl des Typs int erreicht, was geschieht dann mit der Anzahl der Kerzen und den Positionen der Array-Elemente?

 
The_Sheikh:

Woher weiß ich in MQL genau, wie viele Balken in den Terminaleinstellungen eingestellt sind?

TerminalInfoInteger(TERMINAL_MAXBARS))
Der_Scheich:

Wenn die Anzahl der Balken den Maximalwert des Typs int erreicht, was geschieht dann mit der Anzahl der Kerzenständer?

die Anzahl der Takte steigt, d.h. sie übersteigt denTERMINAL_MAXBARS-Wert

Und dann, durch irgendeinen unbekannten Algorithmus, "lässt das Terminal die zusätzlichen Balken fallen" - wenn die tatsächliche Anzahl der Balken im Diagramm in der const int rates_total sein wird, wird sie in der iBars()https://www.mql5.com/ru/docs/series/ibars sein.

d.h., wie oben gezeigt - TERMINAL_MAXBARS sind die Daten aus dem Terminal-Fenster, und iBars() ist der aktuelle Wert der Balken auf dem Diagramm


Der_Scheich:

und mit Positionen von Elementen von Arrays-Zeitreihen?

Wenn es sich um Indikatorpuffer handelt, weist das Terminal ihnen Speicher zu, und die Größe des Arrays, das mit dem Indikatorpuffer verbunden ist, ist immer gleich den rates_total Elementen

Indikator für die Prüfung:

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[])
  {
//---
   static datetime t=0;
   if(t!=time[rates_total-1])
     {
      Print("rates_total = ",rates_total, ", TERMINAL_MAXBARS = ",TerminalInfoInteger(TERMINAL_MAXBARS));
      t=time[rates_total-1];
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Indikatorprotokoll:

2019.04.30 19:10:12.247 rates (EURUSD,M1) rates_total = 50000, TERMINAL_MAXBARS = 50000

2019.04.30 19:10:29.699 Kurse (EURUSD,M1) rates_total = 50001, TERMINAL_MAXBARS = 50000

2019.04.30 19:11:29.392 rates (EURUSD,M1) rates_total = 50002, TERMINAL_MAXBARS = 50000

2019.04.30 19:12:30.125 Kurse (EURUSD,M1) rates_total = 50003, TERMINAL_MAXBARS = 50000


Документация по MQL5: Доступ к таймсериям и индикаторам / iBars
Документация по MQL5: Доступ к таймсериям и индикаторам / iBars
  • www.mql5.com
Количество баров в истории по соответствующему символу и периоду, но не более чем задано в настройках платформы параметром "Макс. баров в окне" ("Max bars in chart")
 

Ich möchte mich mit der Entwicklung von Schnittstellen in MQL5 auf EasyAndFastGUI vertraut machen

Es gibt 10 Teile (oder was?) von"Graphical Interfaces" Artikel von 2015

Ich habe eine Frage: Sind sie alle konsistent, oder ist es sinnlos, die älteren zu lesen?