Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 05.05.21
Michael_ Michael_ ist offline
Mitglied
 
Registriert seit: Jun 2020
Beiträge: 41
Michael_ befindet sich auf einem aufstrebenden Ast
Standard Indikator-Darstellung in Haupt- und Unterfenster

Hallo zusammen,

ich habe eine Frage bzgl. grafische Darstellung von Indikatoren (in MQL5). Und zwar hab ich einen EA, der verschiedene Indikatoren zur Trade-Eröffnung nutzt. Man kann auswählen, ob man den einen oder anderen Indikator verwenden will oder nicht.

Das Gleiche soll mit der grafischen Darstellung möglich sein: Ich will z.B. den Stochastics im Unterfenster darstellen, ebenso den MACD (in einem weiteren Unterfenster) und noch zusätzlich einen MA im Hauptfenster. ALL diese Indikatoren sollen aber NUR in einem bestimmten Timeframe und Symbol dargestellt werden, wo der EA auch läuft. --> Sobald ich den Chart wechsle, sollen die Indis wieder entfernt werden.

Derzeit sieht das so aus in der OnInit-Funktion:

Code:
// Moving Average HAUPTFENSTER:
if(_Symbol==Symbol_Auswahl && _Period==Timeframe)
   {
      if(chart_MA == true)   //Wenn der MA im Hauptfenster angezeigt werden soll
         {
	     MA_Filter = iMA(NULL,MA_Periode,50,0,MODE_EMA,PRICE_CLOSE);
             int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
             ChartIndicatorAdd(0,0,MA_handle);
             shortname_MA = ChartIndicatorName(0,0,ChartIndicatorsTotal(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL)));
         }
   }
      
if(_Symbol!=Symbol_Auswahl || _Period!=Timeframe)
   ChartIndicatorDelete(0,0,shortname_MA);

// Stochastics UNTERFENSTER:
if(_Symbol==Symbol_Auswahl && _Period==Stochastics_Periode)
   {
       if(chart_stoch == true)    //Wenn der Stochastics im Unterfenster angezeigt werden soll
          {
             Stochastics_handle = iStochastic(NULL,Stochastics_Periode,Stoch_K_Periode,Stoch_D_Periode,Stoch_Verlangsamung,MODE_EMA,STO_LOWHIGH);
             int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
             ChartIndicatorAdd(0,subwindow,Stochastics_handle);
             shortname_Stochastics = ChartIndicatorName(0,subwindow,ChartIndicatorsTotal(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL)));
          }
   }
if(_Symbol!=Symbol_Auswahl || _Period!=Stochastics_Periode)
   ChartIndicatorDelete(0,ChartWindowFind(0,shortname_Stochastics),shortname_Stochastics);     

// MACD UNTERFENSTER
if(_Symbol==Symbol_Auswahl && _Period==MACD_Periode)
   {
      if(chart_MACD == true)   //Wenn der MACD im Unterfenster angezeigt werden soll
         {
            MACD_handle = iMACD(NULL,MACD_Periode,12,26,9,PRICE_CLOSE);
            int subwindow=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
            ChartIndicatorAdd(0,subwindow,MACD_handle);
            shortname_MACD = ChartIndicatorName(0,subwindow,ChartIndicatorsTotal(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL)));
         }
   }
if(_Symbol!=Symbol_Auswahl || _Period!=MACD_Periode)
   ChartIndicatorDelete(0,ChartWindowFind(0,shortname_MACD),shortname_MACD);
Leider bringt das nicht das gewünschte Ergebnis... ist das allgemein der falsche Weg oder was ist daran nicht richtig?

Danke im Voraus für eure Antworten!

Liebe Grüße,
Michael