3_Level_ZZ_Semafor Indicator For MT5
Table Of Contents:
- 3_Level_ZZ_Semafor Indicator For MT5
- Instalar la 3_Level_ZZ_Semafor Indicator For MT5
- Parámetros de la 3_Level_ZZ_Semafor Indicator For MT5
- Buffers of the 3_Level_ZZ_Semafor Indicator For MT5
- Partes principales del código
El 3_Level_ZZ_Semafor Indicator For MT5 es una versión mejorada del indicador en zigzag que dibuja los valores de 3 zigzags en el gráfico. Los 3 zigzag tienen un período diferente para la calcualción. Por lo tanto, se calculó un zigzag pequeño, uno medio y uno grande. En lugar de dibujar las líneas en zigzag en el gráfico (lo que saturaría el gráfico), este indicador dibuja puntos en los puntos en zigzag. Los puntos tienen diferentes tamaños para que pueda distinguir los diferentes zigzags.
Instalar la 3_Level_ZZ_Semafor Indicator For MT5
Después de descargar el indicador a través del formulario anterior, debe descomprimir el archivo zip. Luego, debe copiar el archivo 3_level_zz_semafor.mq5 en la carpeta MQL5Indicators de su instalación MT5 . Después de eso, reinicie MT5 y luego podrá ver el indicador en la lista de indicadores.
Parámetros de la 3_Level_ZZ_Semafor Indicator For MT5
3_Level_ZZ_Semafor Indicator For MT5 tiene parámetros 15 para configurar.
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;
Buffers of the 3_Level_ZZ_Semafor Indicator For MT5
3_Level_ZZ_Semafor Indicator For MT5 proporciona buffers 6 .
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);
Partes principales del código
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); } //+------------------------------------------------------------------+