0
(0)
ชื่อ:
HVR [ รู | ซีเอ็น ]
ผู้เขียน: นักเขียน (2008.02.11 10:02)
ดาวน์โหลดแล้ว: 1206
ดาวน์โหลด:
HVR 1
HVR.mq4 (2.9 Kb) ดู
ผู้เขียน: Albert, (idea and code into MQL2 - podval)

HVR indicator.

HVR 2
1 ความคิดเห็น หากต้องการโพสต์ความคิดเห็นใหม่, โปรด เข้าสู่ระบบ หรือ ลงทะเบียน

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

//+------------------------------------------------------------------+ 
//|                                                          HVR.mq4 | 
//|      ลิขสิทธิ์ © 2005, Albert,(idea and code into MQL2 - podval) | 
//|      Refactored © 2010, Brewmanz (เพิ่ม 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[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int init()
  {
   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 + ")");
//---- 
//---- 
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
   {
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;
   สำหรับ(int ix=ixLimit; ix>=0; ix--)
   {
      ถ้า(ix+PeriodLong >= Bars)
         continue;
      meanVeryShort=0;
      meanShort=0;
      meanLong=0;
      สำหรับ(int i = 0; ฉัน<PeriodLong; ฉัน ++)
      {
         double myLog=MathLog(ปิด[ix+i]/ปิด[ix+i+1]);
         xLong[ฉัน]=myLog;
         meanLong+=myLog;
         ถ้า(ฉัน<PeriodShort)
         {
            xShort[ฉัน]=myLog;
            meanShort+=myLog;
         }
         ถ้า(ฉัน<PeriodVeryShort)
         {
            xVeryShort[ฉัน]=myLog;
            meanVeryShort+=myLog;
         }
      }

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

      hvVeryShort=0;
      สำหรับ(i=0; ฉัน<PeriodVeryShort; ฉัน ++)
         hvVeryShort+=(xVeryShort[ฉัน] - meanVeryShort)*(xVeryShort[ฉัน] - meanVeryShort);
      hvVeryShort=MathSqrt(hvVeryShort/(PeriodVeryShort-1)) * kVolfactor;

      hvShort=0;
      สำหรับ(i=0; ฉัน<PeriodShort; ฉัน ++)
         hvShort+=(xShort[ฉัน] - meanShort)*(xShort[ฉัน] - meanShort);
      hvShort=MathSqrt(hvShort/(PeriodShort-1)) * kVolfactor;

      hvLong=0;
      สำหรับ(i=0; ฉัน<PeriodLong; ฉัน ++)
         hvLong+=(xLong[ฉัน] - meanLong)*(xLong[ฉัน] - meanLong);
      hvLong=MathSqrt(hvLong/(PeriodLong-1)) * kVolfactor;

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

โพสต์นี้มีประโยชน์เพียงใด?

คลิกที่ดาวเพื่อให้คะแนน!

คะแนนเฉลี่ย 0 / 5. นับคะแนนเสียง: 0

ยังไม่มีคะแนนโหวต! เป็นคนแรกที่ให้คะแนนโพสต์นี้.

ขออภัยที่โพสต์นี้ไม่มีประโยชน์สำหรับคุณ!

ให้เราปรับปรุงโพสต์นี้!

บอกเราว่าเราจะปรับปรุงโพสต์นี้ได้อย่างไร?



ผู้เขียน: ทีมงาน Forex Wiki
เราคือทีมผู้ซื้อขาย Forex ที่มีประสบการณ์สูง [2000-2023] ที่อุทิศตนเพื่อใช้ชีวิตในแบบของเรา. วัตถุประสงค์หลักของเราคือการได้รับอิสรภาพทางการเงินและอิสรภาพ, และเราได้ติดตามการศึกษาด้วยตนเองและได้รับประสบการณ์ที่กว้างขวางในตลาด Forex เพื่อเป็นหนทางในการบรรลุวิถีชีวิตที่ยั่งยืนด้วยตนเอง.