Fehler, Irrtümer, Fragen - Seite 2584

 
Georgiy Merts:

Ich habe eine Frage.

Manchmal erhalte ich während der Optimierung einen Array-Überlauf-Fehler mit einem bestimmten Satz von Parametern. Der Fehler tritt eher selten auf und ich kann ihn nicht reproduzieren. Ich muss wissen, bei welchen Parametern dieser Fehler auftritt. Wie lässt sich dieser Parametersatz ermitteln? Im Protokoll des Prüfers ist eine Erfolgszahl angegeben, aber dieser Parametersatz ist nicht im Bericht enthalten. Wo kann ich sehen, welche Parameter in diesem Lauf verwendet wurden?

Ändern Sie diese Bibel, um die Ausdrucke in die Datei Common zu schreiben.

 
Und ein weiterer Fehler - wenn einer der Parameter ist ENUM_TIMEFRAMES Zeitraum, dann auf einem 1D oder 2D-Diagramm durch diesen Parameter - ich habe keine Anzeige aus irgendeinem Grund. Geht es nur mir so?
 
fxsaber:

Ändern Sie dieses biblio, um die Ausdrucke in die Datei Common zu schreiben.

Ja, wenn es keine anderen Möglichkeiten gibt, ist das eine gute Lösung. Ich danke Ihnen.

Und lassen Sie uns beim Vornamen bleiben, wir kennen uns virtuell schon sehr lange.

 
Verstehe ich richtig, dass Zeiger auf eine Variable nicht in mql funktionieren?
void OnStart()
{ 
   int *ptr;
}

Der Compiler sagt, dass der Zeiger nicht verwendet werden kann.

 
Roman:
Verstehe ich richtig, dass Zeiger auf eine Variable nicht in mql funktionieren?

Der Compiler sagt, dass der Zeiger nicht verwendet werden kann.

Es scheint, dass Zeiger nur auf Objekte verweisen können und durch den Aufruf von GetPointer() erhalten werden.

 
Georgiy Merts:

Es scheint, dass Zeiger nur auf Objekte sein können und durch den Aufruf von GetPointer() erhalten werden.

Ich danke Ihnen. Ja, keine Probleme mit Klassenobjekten, deshalb war ich überrascht, dass es nicht mit Variablen funktioniert, das ist zwar traurig.

 

Ich habe keinen Platz für die Maklerkonten in meinem Computer.

Wenn ich "Favoriten" öffne, sehe ich nur eine weiße Seite.

Was ist mit Ihnen los?

Ich kann keine Konten auf mql5 sehen oder mich bei jemandem anmelden.

 

Der Indikator ruft beim Löschen des Indikators nicht OnDeinit auf, wenn er über die FunktionChartIndicatorGet verfügt, die einfach ein Handle von sich selbst liest, ohne es zu einer Variablen hinzuzufügen.

#property indicator_chart_window

int OnInit() {
   for (int i=0; i<ChartIndicatorsTotal(0,0); i++)  
       ChartIndicatorGet(0,0,ChartIndicatorName(0,0,i));
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+

void OnDeinit(const int reason) {
   Print("Deinit");
}

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) {
   return(rates_total);
}

Und wenn Sie den Indikator nach dem Löschen neu kompilieren, erfolgt der verzögerte Aufruf von OnDeinit (Print("Deinit");).

Ist das in Ordnung?


Gebäude 2168

Dateien:
 
Nikolai Semko:

Ein Indikator ruft beim Löschen eines Indikators nicht OnDeinit auf, wenn er über die Funktion ChartIndicatorGet verfügt, die einfach ihren eigenen Handle liest, ohne ihn in eine Variable zu setzen.

IndicatorRelease ist obligatorisch, wenn es seinen eigenen Handle erhalten hat.

 
fxsaber:

IndicatorRelease ist obligatorisch, wenn Sie Ihren eigenen Griff bekommen.

Hm...
Und wo und zu welchem Zeitpunkt lösche ich einen Indikatorgriff?

Es wäre logisch, OnDeinit zu verwenden, aber das funktioniert nicht.

ZS Es ist ein seltsames Bild.
Ich habe es ausprobiert: Wenn ich den Handle direkt nach dem Erhalt lösche, wird er gelöscht, aber der Indikator selbst nicht, der Name bleibt, und er hat bereits einen neuen Handle und funktioniert weiter. Und in der Tat wird dann beim Löschen des Indikators OnDeinit ausgeführt.

Ich habe es allerdings mit einem pufferlosen Indikator versucht. Ich weiß nicht, wie sich der Datenpuffer verhält, wenn das Handle gelöscht wird.
Ich versteh das nicht...


Grund der Beschwerde: