OnDeinit in Indikatoren

 

Warum werden nach dem Öffnen eines Diagramms die Indikatoren, die dem Diagramm zugeordnet sind, nicht deinitiert?

Das ist logisch!

 

mehr Details, aber nur eine Vermutung, was Sie meinen (über Drag and Drop von der Marktübersicht zu einem Diagramm mit einem Indikator???)

 

Zum Beispiel zeichnet der Indikator Unterstützungs- und Widerstandszonen für die letzten 3 Tage. Deaktivieren bzw. Entfernen von Zonen. Abends schalte ich den PC aus, morgens schalte ich ihn ein und siehe da, es werden 4 Zonen angezeigt (3 alte und eine neue).

Ich möchte, dass das Deinit vor dem Init und nach der Freigabe des Indikators ausgelöst wird.

 
Ich frage mich, wie der Indikator erkennt, was gelöscht werden muss, wenn das, was gelöscht werden soll, nicht im Deinit definiert ist?
 
eevviill:


Bitte stellen Sie sicher, dass das Deinit vor dem Init und nach dem Abhängen des Indikatorsausgelöst wird.

Nennen Sie es selbst - wo ist das Problem?

void OnDeinit(const  int reazon)
{
// .........................
}
int OnInit(void)
  {
   string short_name;
// -------
    OnDeinit(0);
// -------
// .............................
//--- initialization done
   return(INIT_SUCCEEDED);
  }
 
eevviill:

Zum Beispiel zeichnet der Indikator Unterstützungs- und Widerstandszonen für die letzten 3 Tage. Deaktivieren bzw. Entfernen von Zonen. Abends schalte ich den PC aus, morgens schalte ich ihn ein und siehe da, es werden 4 Zonen angezeigt (3 alte und eine neue).

Ich beantrage, dass das Deinit vor dem Init, also nach dem Ablegen des Indikators, ausgelöst wird.

In der 670er Version - Fehler bei der Deinitialisierung beim Schließen des Terminals (gibt 4 - Diagramm geschlossen und erfordert 9 - Terminal ist geschlossen)

Geschrieben - behoben, 711-Build funktioniert gut.

 
Ich habe mich daran gewöhnt, ich deinitialisiere während der Initialisierung wie oben beschrieben.
 
eevviill:

Zum Beispiel zeichnet der Indikator Unterstützungs- und Widerstandszonen für die letzten 3 Tage. Deaktivieren bzw. Entfernen von Zonen. Abends schalte ich den PC aus, morgens schalte ich ihn ein und siehe da, es werden 4 Zonen angezeigt (3 alte und eine neue).

Ich würde deinit vor init und nach dem Entfernen des Indikators auslösen lassen.

Wennich meinen PC abends herunterfahre, ist davon auszugehen, dass ein Shutdown gestartet wird und das Terminal beim Herunterfahren des PCs als Prozess beendet wird...

Wenn das Terminal geschlossen ist, funktioniert OnDeinit gut und löscht Objekte ( 711 build)...

 

Nein, das tut es nicht. Ich schalte das Terminal normal aus.

Wenn Deinit in Init gesetzt wird, funktioniert es auch nicht.

Nur die benutzerdefinierte Funktion zum Löschen von Objekten half.

 
Zählen Sie die Gesamtzahl der Objekte im Diagramm, vielleicht sind andere Zeitpläne verstopft? Für die Deinitialisierung steht nur eine begrenzte Zeit zur Verfügung, und es kann sein, dass die Zeit nicht ausreicht, um alle Objekte durchzugehen.
 
Leute, wenn ihr einen leeren Bildschirm haben wollt, bevor ein Indikator/Ratgeber/Skript angezeigt wird, müsst ihr ihn löschen.