10-дневеная ма волатильности.

 
http://www.micex.ru/markets/futures/section/documents/1106
(Параметры обязательств маркет-мейкеров по расчетным фьючерсам на доллар США, евро и курс евро к доллару США в Секции срочного рынка (стандартные контракты) ММВБ
DOC, 61.0 KB

Вступили в силу 13 июля 2009 года)

*

Средняя дневная волатильность рассчитывается по формуле скользящей средней арифметической из значений дневной волатильности за последние десять торговых дней на рынке базового актива.
Дневная волатильность Фьючерса / базового актива V в целях настоящего документа рассчитывается по следующей формуле:
V = (A-B) / CloseЦ-1 * 100%
где:
A= Max {HighЦ-1, OpenЦ} (максимальное из двух значений);
B= Min {LowЦ-1, OpenЦ} (минимальное из двух значений)

хЦ-1 вчера

*

Что означает 100% в формуле???

Формулы напоминают нечто типа индикатора Чайкина CHO или CHV

но вот не соображу как ввести расчёт...

В любом опробованном варианте получаю "зеро девайс"

//--- это только секция старт!!!
int start()
{
double curr_value,shift_value;
int i, d=10, TF=1440;
string s=Symbol();

for (i=d;i>=0;i--)
   {
   //HL[i]=High[i]-Low[i];
   A[i]=MathMax(iHigh(s,TF,i+1),iOpen(s,TF,i));
   B[i]=MathMin(iLow(s,TF,i+1),iOpen(s,TF,i));
   C[i]=iClose(s,TF,i+1);
   //MMVB10dvol[i]=(A[i]-B[i]) / C[i] * 100;
   }

ArrayResize(A,d);
ArrayResize(B,d);
ArrayResize(C,d);
ArrayResize(V,d);

for(i=d;i>=0;i--)
   {
   //curr_value=iMAOnArray(HL,0,SmoothPeriod,0,TypeSmooth,i);
   //shift_value=iMAOnArray(HL,0,SmoothPeriod,0,TypeSmooth,i+ROCPeriod);
      V[i]=(A[i]-B[i]) / C[i] * 100;
   //MMVB10dvol[i]=iMAOnArray(V,0,SmoothPeriod,0,TypeSmooth,i);
   MMVB10dvol[i]=V[i];
   //MMVB10dvol[i]=(curr_value-shift_value)/1*100;
   }
//}            
//----
return(0);
}
 

Как ты сам понимаешь смысл этой конструкции?

V[i]=(A[i]-B[i]) / C[i] * 100;
 
Kos >>:

Как ты сам понимаешь смысл этой конструкции?

В момент очередной итерации в массив V по индексу i запишется результат выражения (A[i]-B[i]) / C[i] * 100;

с имеющимся в массивах данных по тем-же индексам на момент итерации...

Если принять как простую формулу, то примерно нечто: 0.025=(10-5)/2*100

А что там сложного то?

 

А почему Вы начинаете цикл с i=d, а не с i=d-1 ?


А если сделать вот так, чтобы показатель учитывал волатильность текущего дня:

(может я заблуждаюсь, поправьте если что:) )

 A[i]=MathMax(iHigh(s,TF,i+1),iHigh(s,TF,i));
 B[i]=MathMin(iLow(s,TF,i+1),iLow(s,TF,i));
 

А до ресайза размеры массива были какими? Почему размер не был задан еще перед первым циклом?

Причина обращения: