Indicadores: Support and Resistance
El indicador no funciona correctamente. Los niveles se reflejan correctamente sólo en el historial, cuando aparecen barras nuevas, no se hace un seguimiento de las mismas.
En la figura: la línea roja, el momento en que el indicador se adjuntó al gráfico. Todo está correcto a la izquierda de la misma, y mal a la derecha.

El indicador no funciona correctamente. Los niveles se reflejan correctamente sólo en el historial, cuando aparecen nuevas barras, no se realiza un seguimiento de las mismas.
En la figura: la línea roja, el momento en que el indicador se adjuntó al gráfico. Todo está correcto a la izquierda de la misma, y mal a la derecha.
Desde la última actualización de MT5 este indicador está roto. Sólo imprime puntos en la alta y baja de cada vela.
¿Cuál es el problema?
Desde la última actualización de MT5 este indicador está roto. Sólo imprime puntos en la alta y baja de cada vela.
¿Cuál es el problema?
Sí, tengo la Build 1016. Volví a descargar el indicador y lo recompilé con 0 error(es) y 0 advertencia(es). Todavía no funciona, sólo muestra los puntos en la alta y baja.
Pero está bien, estoy usando Fibo retracement o dibujo s / r niveles por mi cuenta ahora en su lugar.
Sí, tengo la Build 1016. Volví a descargar el indicador y lo recompilé con 0 error(es) y 0 advertencia(es). Todavía no funciona, sólo muestra los puntos en la alta y baja.
Pero está bien, estoy usando Fibo retracement o dibujo s / r niveles por mi cuenta ahora en su lugar.
¿Puedes subir el gráfico?
Claro, aquí está:
Capturas de pantalla de la plataforma de trading MetaTrader
MetaQuotes Software Corp., MetaTrader 5, Demo
temp_file_screenshot_27398.png

Prueba esto
//+------------------------------------------------------------------+ //|Soporte y Resistencia.mq5 //|Copyright © 2005, Dmitry | //|Actualización Dic 2014 | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" //---- versión #property version "1.01" //---- indicador en la ventana del gráfico #property indicator_chart_window //---- Se utilizan 2 memorias intermedias indicadoras #property indicator_buffers 2 //---- Se utilizan 2 gráficos #property indicator_plots 2 //+----------------------------------------------+ //| Opciones de indicadores bajistas | //+----------------------------------------------+ //---- tipo de dibujo como flecha #property indicator_type1 DRAW_ARROW //---- Color magenta #property indicator_color1 Magenta //---- Anchura de línea #property indicator_width1 1 //---- Etiqueta de apoyo #property indicator_label1 "Support" //+----------------------------------------------+ //| Opciones de indicador alcista | //+----------------------------------------------+ //---- tipo de dibujo como flecha #property indicator_type2 DRAW_ARROW //---- Color lima #property indicator_color2 Lime //---- Anchura de línea #property indicator_width2 1 //---- Etiqueta de resistencia #property indicator_label2 "Resistance" //+----------------------------------------------+ //| Parámetros de entrada del indicador | //+----------------------------------------------+ //entrada int iPeriod=70; //periodo ATR //+----------------------------------------------+ //---- declaración de matrices dinámicas, utilizadas como memoria intermedia de indicadores double SellBuffer[]; double BuyBuffer[]; //--- int StartBars; int FRA_Handle; //+------------------------------------------------------------------+ //| Función de inicialización del indicador personalizada | //+------------------------------------------------------------------+ void OnInit() { //---- inicialización de variables globales StartBars=6; //---- obtener el indicador iFractals FRA_Handle=iFractals(NULL,0); if(FRA_Handle==INVALID_HANDLE)Print(" INVALID_HANDLE FRA"); //---- fijar SellBuffer como buffer indicador SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); //---- fijar indxex de la barra inicial a trazar PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,StartBars); //---- fijar etiqueta para soporte PlotIndexSetString(0,PLOT_LABEL,"Support"); //---- set arrow char code PlotIndexSetInteger(0,PLOT_ARROW,159); //---- establecer indexación como timeseries ArraySetAsSeries(SellBuffer,true); //---- establece BuyBuffer como búfer indicador SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); //---- establecer el índice de la barra inicial para trazar PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,StartBars); //--- fijar etiqueta para resistencia PlotIndexSetString(1,PLOT_LABEL,"Resistance"); //---- set arrow char code PlotIndexSetInteger(1,PLOT_ARROW,159); //---- establecer indexación como timeseries ArraySetAsSeries(BuyBuffer,true); //---- fijar precisión IndicatorSetInteger(INDICATOR_DIGITS,_Digits); //---- indicador nombre corto string short_name="Support & Resistance"; IndicatorSetString(INDICATOR_SHORTNAME,short_name); //---- } //+------------------------------------------------------------------+ //| Función de iteración del indicador personalizada| //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[] ) { //---- comprobación de barras if(BarsCalculated(FRA_Handle)<rates_total || rates_total<StartBars) return(0); //---- declaración de variables locales int to_copy,limit,bar; double FRAUp[],FRALo[]; //---- cálculo de compases a copiar //---- e índice inicial (límite) para el bucle de recálculo de barras if(prev_calculated>rates_total || prev_calculated<=0)// comprobación de la primera llamada { to_copy=rates_total; // barras a copiar limit=rates_total-StartBars-1; // índice inicial } else { to_copy=rates_total-prev_calculated+3; // barras a copiar limit=rates_total-prev_calculated+2; // índice inicial } //---- establecer indexación como timeseries ArraySetAsSeries(FRAUp,true); ArraySetAsSeries(FRALo,true); ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); //---- copiar datos del indicador en matrices if(CopyBuffer(FRA_Handle,0,0,to_copy,FRAUp)<=0) return(0); if(CopyBuffer(FRA_Handle,1,0,to_copy,FRALo)<=0) return(0); //---- bucle principal for(bar=limit; bar>=0; bar--) { BuyBuffer[bar] = 0.0; SellBuffer[bar] = 0.0; if(FRAUp[bar] != DBL_MAX) BuyBuffer[bar] = high[bar]; else BuyBuffer[bar] = BuyBuffer[bar+1]; if(FRALo[bar] != DBL_MAX) SellBuffer[bar] = low[bar]; else SellBuffer[bar] = SellBuffer[bar+1]; } //---- return(rates_total); } //+------------------------------------------------------------------+
Support and Resistance:
El indicador "Soporte y Resistencia" muestra los niveles de soporte y resistencia utilizando el indicador Fractals de Bill Williams.
Autor: Nikolay Kositsin