Indikatoren: Mirror_Bands

 

Mirror_Bands:

Eine Indikator mit Signallinie und Bändern


Autor: Scriptor

 
Hallo, Scriptor. Dies ist ein schöner Indikator. Könnten Sie bitte einen ähnlichen Indikator auf Basis von LWMA und EMA erstellen?
 
FX-Navigator :
Hallo, Scriptor. Dies ist ein schöner Indikator. Könnten Sie bitte einen ähnlichen Indikator auf Basis von LWMA und EMA erstellen?

Scriptor antwortet schon seit langem nicht mehr. Aber Sie können den Code selbst korrigieren:

//+------------------------------------------------------------------+
//| Benutzerdefinierte Initialisierungsfunktion für Indikatoren |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- globale Variablen setzen
   period=int(InpPeriod<1 ? 1 : InpPeriod);
   period_ma=int(InpPeriodMA<1 ? 1 : InpPeriodMA);
   deviation=InpDeviation;
//--- Zuordnung von Indikatorpuffern
   SetIndexBuffer(0,BufferTop,INDICATOR_DATA);
   SetIndexBuffer(1,BufferBottom,INDICATOR_DATA);
   SetIndexBuffer(2,BufferMA,INDICATOR_DATA);
   SetIndexBuffer(3,BufferMirror,INDICATOR_DATA);
   SetIndexBuffer(4,BufferMA1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,BufferMAInd,INDICATOR_CALCULATIONS);
//--- Einstellung der Indikatorparameter
   IndicatorSetString(INDICATOR_SHORTNAME,"MBands("+(string)period+","+(string)period_ma+","+DoubleToString(deviation,1)+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- Einstellung von Pufferfeldern als Zeitreihen
   ArraySetAsSeries(BufferTop,true);
   ArraySetAsSeries(BufferBottom,true);
   ArraySetAsSeries(BufferMA,true);
   ArraySetAsSeries(BufferMirror,true);
   ArraySetAsSeries(BufferMA1,true);
   ArraySetAsSeries(BufferMAInd,true);
//--- MA's Handle erstellen
   ResetLastError();
   handle_ma=iMA(NULL,PERIOD_CURRENT,period_ma,0,MODE_SMA,InpAppliedPrice);
   if(handle_ma==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period_ma,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   ResetLastError();
   handle_ma1=iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,InpAppliedPrice);
   if(handle_ma1==INVALID_HANDLE)
     {
      Print("The iMA(1) object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   ResetLastError();
   handle_ma_ind=iMA(NULL,PERIOD_CURRENT,period,0,MODE_SMA,InpAppliedPrice);
   if(handle_ma_ind==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

Anstelle von MODE_SMA geben Sie den gewünschten MODE_EMA oder MODE_LWMA ein.

 
Artyom Trishkin:

Scriptor antwortet schon lange nicht mehr. Aber Sie können den Code selbst korrigieren:

Geben Sie anstelle von MODE_SMA den gewünschten MODE_EMA oder MODE_LWMA ein

Danke! Ich habe getan, was Sie mir gesagt haben, aber es hat sich nicht geändert.