Indicadores: Support and Resistance

 

Support and Resistance:

El indicador "Soporte y Resistencia" muestra los niveles de soporte y resistencia utilizando el indicador Fractals de Bill Williams.

Indicador de los niveles de soporte y resistencia

Autor: Nikolay Kositsin

 

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.

Correcto e incorrecto

 
gdtt:

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.

Oh sí, ¡olvidé totalmente que fractal es un pavo contando retrospectivamente! ¡Arreglémoslo!
 

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?

 
yohmm:

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?

Este indicador funciona normalmente. Build 1016.
 

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.

 
yohmm:

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?
 
belido:
¿Puedes subir el gráfico?

Claro, aquí está:

Capturas de pantalla de la plataforma de trading MetaTrader

EURUSD, M5, 2014.11.28

MetaQuotes Software Corp., MetaTrader 5, Demo

temp_file_screenshot_27398.png

EURUSD, M5, 2014.11.28, MetaQuotes Software Corp., MetaTrader 5, Demo


 
tengo el mismo problema! una reinstalación de metatrader no ayuda allso..:-(
Archivos adjuntos:
sup.png  36 kb
 

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);
  }
//+------------------------------------------------------------------+