Author: piccioli@gmail.com
Price Data Components
Series array that contains the highest prices of each barSeries array that contains the lowest prices of each barSeries array that contains close prices for each bar
Miscellaneous
Implements a curve of type %1
0 Views
0 Downloads
0 Favorites
i-VaR95_v1
//+------------------------------------------------------------------+
//|                                                      i-VaR95.mq4 |
//|                                    http://piccstick.blogspot.com |
//|                                    http://piccstick.blogspot.com |
//+------------------------------------------------------------------+
//| Èíäèêàòîð îòîáðàæàåò çíà÷åíèå èñòîðè÷åñêîé âîëàòèëüíîñòè         |
//| Âîçìîæåí ðàñ÷åò âîëàòèëüíîñòè íåñêîëüêèìè ìåòîäàìè               |
//|  - Simple Historical Volatility                                  |
//|  - Exponential Historical Volatility                             |
//|  - High-Low Historical Volatility                                |
//|                                                                  |  
//| Íåñêîëüêî çàìå÷àíèé:                                             |
//| 1. Äàííûé èíäèêàòîð íå ïîêàçûâàåò òî÷åê âõîäà â ðûíîê            |
//|    è âûõîäà èç íåãî ;-)                                          |
//| 2. Êàðòèíêà èíäèêàòîðà ïîõîæà íà êðòèíêó èçâåòíîãî ATR, îñîáåííî |
//|    ïðè ðàñ÷åòå ìåòîäîì Ïàðêèíñîíà, çíà÷åíèÿ òåì íå ìåíåå, ðàçíûå |
//| 3. Äëÿ ðàñ÷åòà VaR èñïîëüçóåòñÿ 95-ïðîöåíòíàÿ âåðîÿòíîñòü,       |
//|    òî åñòü èíäèêàòîð îòîáðàæàåò çíà÷åíèå â ïóíêòàõ (áåç ó÷åòà    | 
//|    5-ãî ñèìâîëà), êîòîðîå ìîæåò áûòü äîñòóãíóòî öåíîé ñ          |
//|    âåðîÿòíîñòüþ 5% çà ïåðèîä ðàâíûé èíâåòèöèîííîìó               |
//|    ãîðèçîíòó (grznt)                                             |
//|                                                                  |
//|                                                                  |   
//|                                                                  |
//| Ïî âñåì âîïðîñàì îáðàùàòüñÿ â ëè÷êó íà ýòîì ôîðóìå               |
//| èëè íà ïî÷òó.                                                    |
//|                                                                  |
//| Ïèøó íà çàêàç.                                                   |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "piccioli@gmail.com"
#property link      "http://piccstick.blogspot.com"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 clrOrangeRed

extern int HV_Period = 21;    // Ïåðèîä ðàñ÷åòà èñòîðè÷åñêîé âîëàòèëüíîñòè
extern int HV_Type = 0;       // Ñïîñîá âû÷èñëåíãèÿ âîëàòèëüíîñòè
                              // Âîçìîæíûå çíà÷åíèÿ:
// 0 - ìåòîä ïðîñòîé (ðàâíîâçâåøåííîé) ñêîëüçÿùåé ñðåäíåé
// 1 - ìåòîä ýêñïîíåíöèàëüíî-âçâåøåííîé ñêîëüçÿùåé 
// 2 - ýêñòðåìàëüíàÿ âîëàòèëüíîñòü, âîëàòèëüíîñòü Ïàðêèíñîíà
// Õ - ïðè ëþáîì äðóãîì çíà÷åíèè áóäåò âûâîäèòñÿ 95-ïðîöåíòíûé VaR (ñì. ñïåö. ëèòåðàòóðó)

extern double decline=0.94;   // êîýôôèöèåíò ñãëàæèâàíèÿ
                              // Òðàäèöèîííî ïðèíèìàåòñÿ ðàâíûì 0.94
// äàííûé ïàðàìåòð âëèÿåò òîëüêî íà åêñïîíåíöèàëüíî-âçâåøåííûé ìåòîä, òî åñòü êîãäà HV_Type = 1

extern int grznt=3;           // èíâåñòèöèîííûé ãîðèçîíò äëÿ âû÷èñëåíèÿ 95% VaR

double VAR[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,EMPTY,2,clrOrangeRed);
   SetIndexBuffer(0,VAR);
   SetIndexLabel(0,"VaR");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted();
   int limit;

//----
   if(counted_bars>0) counted_bars=counted_bars-HV_Period;
   limit=Bars-counted_bars;
   if(counted_bars==0)
      limit-=HV_Period;
//---- îñíîâíîé öèêë
   for(int i=0; i<limit; i++)
     {
      VAR[i]=HV(i);
     }

//----
   return(0);
  }
//+------------------------------------------------------------------+

double HV(int j)
  {
   double shv=0;
   double tshv= 0;
   double ehv = 0;
   double hlhv= 0;
   double var95=0;

   for(int i=j; i<(HV_Period+j); i++)
     {
      hlhv=hlhv+(MathLog(iHigh(Symbol(),0,i)/iLow(Symbol(),0,i))*MathLog(iHigh(Symbol(),0,i)/iLow(Symbol(),0,i)))/(4*MathLog(2));
     }

   hlhv=MathSqrt(hlhv/HV_Period);

   for(i=j; i<(HV_Period+j); i++)
     {
      tshv=tshv+MathLog(iClose(Symbol(),0,i)/iClose(Symbol(),0,i+1));
     }

   tshv=tshv/(HV_Period>0 ? HV_Period : 1);

   for(i=j; i<(HV_Period+j); i++)
     {
      shv=shv+(tshv -(MathLog(iClose(Symbol(),0,i)/iClose(Symbol(),0,i+1))))*(tshv -(MathLog(iClose(Symbol(),0,i)/iClose(Symbol(),0,i+1))));
     }

   shv=MathSqrt(shv/((HV_Period-1)>0 ?(HV_Period-1) : 1));

   if(decline>= 1 || decline <= 0)
      decline = 0.94;

   for(i=j; i<(HV_Period+j); i++)
     {
      ehv=ehv+decline*(tshv -(MathLog(iClose(Symbol(),0,i)/iClose(Symbol(),0,i+1))))*(tshv -(MathLog(iClose(Symbol(),0,i)/iClose(Symbol(),0,i+1))));
     }
   ehv=MathSqrt((1-decline)*shv);

   var95=1.65 *(shv)*10000*MathSqrt(grznt)+2*MarketInfo(Symbol(),MODE_SPREAD);

   if(HV_Type==0)
      return(shv);
   else if(HV_Type==1)
      return(ehv);
   else if(HV_Type==2)
      return(hlhv);
   else
      return(MathCeil(var95));
  }
//+------------------------------------------------------------------+

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---