ChartIndicatorDelete

 

hallo,


hat wer eine Ahnung, wie ich das hinbekomme ohne das andauernd die Fehlermeldung 4116 erscheint?


      for(int i = (int)ChartGetInteger(0,CHART_WINDOWS_TOTAL) ; i>0; i--)
        {
         string deinitbutton = ChartIndicatorName(0,i,0);

         if(deinitbutton == "RSI("+(string)RSIPeriode+")")
           {
                        int handle =ChartIndicatorGet(0,i,deinitbutton);

            if(!ChartIndicatorDelete(0, i, deinitbutton))
               Print("Failure to delete: ",deinitbutton," Indicator", " Last Error: ",GetLastError());
           }
        }


 
amando:

hallo,


hat wer eine Ahnung, wie ich das hinbekomme ohne das andauernd die Fehlermeldung 4116 erscheint?

So ähnlich wie im Beispiel der Referenz: https://www.mql5.com/en/docs/chart_operations/chartindicatordelete?

Du brauchst den shortname des Indikators.
Documentation on MQL5: Chart Operations / ChartIndicatorDelete
Documentation on MQL5: Chart Operations / ChartIndicatorDelete
  • www.mql5.com
//|                                    Demo_ChartIndicatorDelete.mq5 | //|                        Copyright 2011, MetaQuotes Software Corp. | //|                                              https://www.mql5.com | //| Custom indicator initialization function                         |                           ...
 
Carl Schreiber:

So ähnlich wie im Beispiel der Referenz: https://www.mql5.com/en/docs/chart_operations/chartindicatordelete?

Du brauchst den shortname des Indikators.

Den hab ich ja, der indikator wird auch gelöscht, trotzdem komm5 immer die fehlermeldung

 

Geh mal mit dem Debugger durch und positioniere als oberste Variable _LastError und beobachte, wann der

ERR_CHART_INDICATOR_NOT_FOUND

4116

Der Indikator kann nicht auf dem angegebenen Chart gefunden werden


auftritt. Es scheint, dass der Indi gesucht wird nachdem er bereits gelöscht wurde.

 
Ja das ist mir schon klar, das tut er auch, ich verstehe nur nicht warum er den sucht, weil ich fange das ja in der schleife ab
 
Vielleicht ist die Reihenfolge verkehrt - es hilft nur testen bzw. debuggen.
 

geht eigentlich viel einfacher ;-)

int w = ChartWindowFind(0,"RSI("+(string)RSIPeriode+")");
      ChartIndicatorDelete(0,w,"RSI("+(string)RSIPeriode+")");
Grund der Beschwerde: