3_Level_ZZ_Semafor Indicator For MT5
Table Of Contents:
- 3_Level_ZZ_Semafor Indicator For MT5
- Installation des 3_Level_ZZ_Semafor Indicator For MT5
- Parameter des 3_Level_ZZ_Semafor Indicator For MT5
- Puffer des 3_Level_ZZ_Semafor Indicator For MT5
- Hauptteile des Codes
Der 3_Level_ZZ_Semafor Indicator For MT5 ist eine verbesserte Version des Zick-Zack-Indikators, mit dem die Werte von 3 Zick-Zack-Werten im Diagramm dargestellt werden. Die 3 Zickzack haben unterschiedliche Zeiträume für die Berechnung. Daher wird ein kleiner, ein mittlerer und ein großer Zickzack berechnet. Anstatt die Zickzacklinien auf dem Diagramm zu zeichnen (was das Diagramm überladen würde), zeichnet dieser Indikator Punkte an den Zickzackpunkten. Die Punkte haben unterschiedliche Größen, so dass Sie die verschiedenen Zickzacklinien unterscheiden können.
Installation des 3_Level_ZZ_Semafor Indicator For MT5
Nachdem Sie den Indikator über das obige Formular heruntergeladen haben, müssen Sie die Zip-Datei entpacken. Anschließend müssen Sie die Datei 3_level_zz_semafor.mq5 in den Ordner MQL5Indicators Ihrer MT5 Installation kopieren. Starten Sie danach MT5 neu und Sie können den Indikator in der Liste der Indikatoren sehen.
Parameter des 3_Level_ZZ_Semafor Indicator For MT5
Der 3_Level_ZZ_Semafor Indicator For MT5 verfügt über 15 zu konfigurierende Parameter.
input int Period1=5; input int Deviation1=1; input int Backstep1=3; input int HighSymbol1=159; input int LowSymbol1=159; input int Period2=13; input int Deviation2=8; input int Backstep2=5; input int HighSymbol2=108; input int LowSymbol2=108; input int Period3=34; input int Deviation3=21; input int Backstep3=12; input int HighSymbol3=163; input int LowSymbol3=163;
Puffer des 3_Level_ZZ_Semafor Indicator For MT5
Der 3_Level_ZZ_Semafor Indicator For MT5 stellt 6 Puffer bereit.
SetIndexBuffer(0,LowBuffer1,INDICATOR_DATA); SetIndexBuffer(1,HighBuffer1,INDICATOR_DATA); SetIndexBuffer(2,LowBuffer2,INDICATOR_DATA); SetIndexBuffer(3,HighBuffer2,INDICATOR_DATA); SetIndexBuffer(4,LowBuffer3,INDICATOR_DATA); SetIndexBuffer(5,HighBuffer3,INDICATOR_DATA);
Hauptteile des Codes
int OnCalculate(const int rates_total, // number of bars in history at the current tick const int prev_calculated,// number of bars calculated at previous call const datetime &time[], const double &open[], const double& high[], // price array of maximums of price for the indicator calculation const double& low[], // price array of minimums of price for the indicator calculation const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //---- checking the number of bars to be enough for the calculation if(rates_total lt StartBar) return(0); //---- declarations of local variables int limit,to_copy1,to_copy2,to_copy3; //---- calculation of the first starting index for the bars recalculation loop if(prev_calculated gt rates_total || prev_calculated lt =0) // checking for the first start of calculation of an indicator { limit=rates_total-StartBar; // starting index for calculation of all bars to_copy1=rates_total; to_copy2=rates_total; to_copy3=rates_total; } else { limit=rates_total-prev_calculated; to_copy1=limit+StartBar1; to_copy2=limit+StartBar2; to_copy3=limit+StartBar3; } //---- copy the newly appeared data in the indicator buffers if(CopyBuffer(Handle1,1,0,to_copy1,HighBuffer1) lt =0) return(0); if(CopyBuffer(Handle1,2,0,to_copy1,LowBuffer1) lt =0) return(0); if(CopyBuffer(Handle2,1,0,to_copy2,HighBuffer2) lt =0) return(0); if(CopyBuffer(Handle2,2,0,to_copy2,LowBuffer2) lt =0) return(0); if(CopyBuffer(Handle3,1,0,to_copy3,HighBuffer3) lt =0) return(0); if(CopyBuffer(Handle3,2,0,to_copy3,LowBuffer3) lt =0) return(0); //---- return(rates_total); } //+------------------------------------------------------------------+