Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL5 (http://www.expert-advisor.com/forum/forumdisplay.php?f=221)
-   -   Indikator-Darstellung in Haupt- und Unterfenster (http://www.expert-advisor.com/forum/showthread.php?t=6984)

Michael_ 05.05.21 15:19

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

Indikator-Trading 06.05.21 12:39

das es nicht funktioniert, wird wohl an dem Namen liegen, welchem du dem Indikator gegeben hast.

Code:

string shortname = "MACD_SHORTNAME";
IndicatorSetString(INDICATOR_SHORTNAME,shortname);
ChartIndicatorDelete(0,window,shortname);



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum