0
(0)
Nombre:
HVR [ tu | cn ]
Autor: El escritor (2008.02.11 10:02)
descargado: 1206
Descargar:
HVR 1
HVR.mq4 (2.9 Kb) Vista
Autor: Albert, (idea and code into MQL2 - podval)

HVR indicator.

HVR 2
1 comentario Para publicar un nuevo comentario, por favor acceso o registro

The following code displays both 6 & 10 HVR with 100 (all periods as params). Also for more periods on chart.

//+------------------------------------------------------------------+ 
//|                                                          HVR.mq4 | 
//|      Derechos de autor © 2005, Albert,(idea and code into MQL2 - podval) | 
//|      Refactored © 2010, Brewmanz (agregar 2 HVR lines)               | 
//|                                                                  | 
//+------------------------------------------------------------------+ 
#property indicator_separate_window
//----
//#property indicator_minimum 0
//#property indicator_maximum 3
#property indicator_buffers 3
//----
#property indicator_color1 Blue
#property indicator_color2 Purple

extern int PeriodLong=100;
extern int PeriodShort=10;
extern int PeriodVeryShort=6;

double
   xVeryShort[],
   xShort[],
   xLong[];

#define kVolfactor 7.211102550927978586238442534941
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
//---- buffers 
double HVRSBuffer[];
double HVRVSBuffer[];
//+------------------------------------------------------------------+ 
//| Función de inicialización de indicador personalizado                         | 
//+------------------------------------------------------------------+ 
int inicio()
  {
   ArrayResize(xVeryShort, PeriodVeryShort);
   ArrayResize(xShort, PeriodShort);
   ArrayResize(xLong, PeriodLong);
   SetLevelValue(0, 0.0);
   SetLevelValue(1, 0.5);
   SetLevelValue(2, 1.0);
   SetLevelValue(3, 2.0);
//---- 2 additional buffers are used for counting. 
   IndicatorBuffers(2);
   SetIndexBuffer(0,HVRSBuffer);
   SetIndexBuffer(1,HVRVSBuffer);
//---- indicator line 
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
//---- name for DataWindow and indicator subwindow label 
   IndicatorShortName("HVR( " + PeriodVeryShort +" & " + PeriodShort + " /" + PeriodLong + ")");
   SetIndexLabel(0,"HVR(" + PeriodShort + "/" + PeriodLong + ")");
   SetIndexLabel(1,"HVR(" + PeriodVeryShort + "/" + PeriodLong + ")");
//---- 
//---- 
   devolver(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
inicio int()
   {
double  hvVeryShort,
   hvShort,
   hvLong,
   meanVeryShort,
   meanShort,
   meanLong;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) 
      counted_bars--;
   int ixLimit=Bars-counted_bars-1;
   para(int ix=ixLimit; ix>=0; ix--)
   {
      si(ix+PeriodLong >= Bars)
         continue;
      meanVeryShort=0;
      meanShort=0;
      meanLong=0;
      para(int i=0; i<PeriodLong; i++)
      {
         double myLog=MathLog(Cerca[ix+i]/Cerca[ix+i+1]);
         xLong[i]=myLog;
         meanLong+=myLog;
         si(i<PeriodShort)
         {
            xShort[i]=myLog;
            meanShort+=myLog;
         }
         si(i<PeriodVeryShort)
         {
            xVeryShort[i]=myLog;
            meanVeryShort+=myLog;
         }
      }

      meanVeryShort/=PeriodVeryShort;
      meanShort/=PeriodShort;
      meanLong/=PeriodLong;

      hvVeryShort=0;
      para(i=0; i<PeriodVeryShort; i++)
         hvVeryShort+=(xVeryShort[i] - meanVeryShort)*(xVeryShort[i] - meanVeryShort);
      hvVeryShort=MathSqrt(hvVeryShort/(PeriodVeryShort-1)) * kVolfactor;

      hvShort=0;
      para(i=0; i<PeriodShort; i++)
         hvShort+=(xShort[i] - meanShort)*(xShort[i] - meanShort);
      hvShort=MathSqrt(hvShort/(PeriodShort-1)) * kVolfactor;

      hvLong=0;
      para(i=0; i<PeriodLong; i++)
         hvLong+=(xLong[i] - meanLong)*(xLong[i] - meanLong);
      hvLong=MathSqrt(hvLong/(PeriodLong-1)) * kVolfactor;

      HVRVSBuffer[ix]= hvVeryShort/hvLong;
      HVRSBuffer[ix]= hvShort/hvLong;
   }
}
//+------------------------------------------------------------------+

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Diez centavos, ¿cómo puedo mejorar este contenido?



Autor: Equipo Wiki de Forex
Somos un equipo de comerciantes de Forex altamente experimentados [2000-2023] que se dedican a vivir la vida en nuestros propios términos. Nuestro principal objetivo es lograr la independencia financiera y la libertad., y hemos buscado la autoeducación y adquirido una amplia experiencia en el mercado Forex como nuestro medio para lograr un estilo de vida autosostenible..