Indikator aus Strategietester löschen

Einloggen oder registrieren, um einen Kommentar zu schreiben
Marius May
108
Marius May  

Guten Tag,

Ich habe eine künstliche Intelligenz programmiert welche etwas anders als ein gewöhnlicher ea funktioniert. Die Werte für die Indikatoren werden nicht aus den den Input variablen genommen sondern werden immer geändert und in Dateien gespeichert. Jetzt habe ich das Problem, das immer wenn ein Indikator geändert wird, ein neuer dazu kommt und der alte bestehen bleibt. Deshalb habe ich versucht den Indikator danach manuell zu löschen. Dies geht aber nur im normalen Metatrader und nicht im Tester. Dort bleiben die Indikatoren einfach stehen. Ich bitte um Hilfe!

int subwindows=ChartGetInteger(0,CHART_WINDOWS_TOTAL);

for(int i=subwindows;i>=0;i--){
   int indicators=ChartIndicatorsTotal(0,i);

   for(int j=indicators-1; j>=0; j--){
      ChartIndicatorDelete(0,i,ChartIndicatorName(0,i,j));
   }
}
        

Der Code ist aus dem Internet aber ich weiß wie er funktioniert und mein eigener funktioniert nach dem selben Prinzip. 

amando
2950
amando  

Du erzeugst ja jedes mal wenn du den indikator mit anderen werten befüllst ein handle,

das machst du ja normalerweise in der oninit. Nachdem das ja so nicht geht, auch im livetrading nicht hast du nur 2 möglichkeiten

1) den indikator selber im ea berechnen

2) das handle gleich wieder rausschmeissen wenn er die werte berechnet hat, ist auf jeden fall die langsamere

Carl Schreiber
Moderator
10134
Carl Schreiber  

Es gibt aber schon IndicatorRelease(), um einen Indikator loszuwerden, und IndicatorCreate(), um einen neuen zu erstellen. Beispiele dazu gibt es in der Referenz.

Könnte halt Zeitintensiv sein.

Dokumentation zu MQL5: Zugang zu Zeitreihen und Indikatoren / IndicatorRelease
Dokumentation zu MQL5: Zugang zu Zeitreihen und Indikatoren / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2009, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
Marius May
108
Marius May  
Carl Schreiber:

Es gibt aber schon IndicatorRelease(), um einen Indikator loszuwerden, und IndicatorCreate(), um einen neuen zu erstellen. Beispiele dazu gibt es in der Referenz.

Könnte halt Zeitintensiv sein.

In wie fern Zeitintensiv? Programmieraufwand oder Ausführungsgeschwindigkeit?

IndicatorReleas() funktioniert nicht im Strategietester. Bringt mir also leider nichts :/
Marius May
108
Marius May  
amando:

Du erzeugst ja jedes mal wenn du den indikator mit anderen werten befüllst ein handle,

das machst du ja normalerweise in der oninit. Nachdem das ja so nicht geht, auch im livetrading nicht hast du nur 2 möglichkeiten

1) den indikator selber im ea berechnen

2) das handle gleich wieder rausschmeissen wenn er die werte berechnet hat, ist auf jeden fall die langsamere

Danke für die Antwort. Jetzt muss ich wohl in den sauren Apfel beißen und alle Indikatoren "nachbauen"..

Einloggen oder registrieren, um einen Kommentar zu schreiben