Огромное спасибо всем, кто отозвался на мою просьбу. Я хотел написать каждому в личку, но слишком много слов. Поэтому я выкладываю в общий доступ и даю ссылки.
История вопроса. Как то так сложилось, что доступные индикаторы к нам приходят, наверное, из Форекса. И если там считают дельты, то есть пункты, то на фонде положено считать проценты. Однако, люди, которые называют аттракторы простыми скользящими средними, навязывают свое видение. Я не возражаю против ATR, но хотелось бы видеть волатильность в процентах, а не в попугаях. Тем более, работая на опционах, знать реализованную волатильность очень важно. И даже есть с чем ее сравнивать.
Индикатор/осцилятор будет называться HV, а также моим именем, извините за скромность. Это осциллятор, который рассчитывается по следующей формуле. Ссылка на них будет ниже.
1. Close–to–close ©
3. Garman-Klass (OHLC).
4. Rogers-Satchell (OHLC)
5. Garman-Klass Yang-Zhang extension (OHLC)
6. Yang-Zhang (OHLC)
Соответственно, или делается 6 индикаторов, или в его настройках переключаются данные параметры. Количество запущенных индикаторов не должно быть ограниченным.
Кроме этого должна быть предусмотрена возможность выбора периода расчета скользящей средней. Для временного ряда экспоненциально-взвешенной дисперсии выбор фактора усреднения. (возможно это и не надо, надо посмотреть при отладке. В примере ниже это одна переменная N)
Время, которое используется в индикаторе берется из тайм фрейма и корректируется на коофициент, ввод которого должен быть предусмотрен в настройках индикатора. Используемые таймфреймы 15 мин 1 час 4 часа День Неделя Месяц.
Привожу ссылку на статью на русском с данными формулами. Это наш одноклубник перевел. http://quant-lab.com/2014/06/23/measuring-historical-volatility/#comment-11
Показания индикатора с расчетом по закрытию и на текущий момент. Должен быть предусмотрен выбор.
Пример расчета НV волатильности Close-Close.
Берем отношение закрытия дня сегодня и дня вчера, то есть делим С на С-1. получаем X
Вычисляем натуральный логарифм из числа X. Получаем Y
Устанавливаем, через настройки, число N. Это период усреднения. Усредняем. То есть складываем N штук Y и делим на N штук. Это усреднение простое. Еще надо сделать усреднение экспонентное. Способ усреднения и период выбирается в настройках индикатора. Полученное значение определяем переменной С.
Находим разность между Y и средним значением С, получаем Z. Y-С = Z
Возводим Z в квадрат, или Z умножаем на Z получаем K. Z*Z=К
Находим сумму N штук K. N у нас уже задано в настройках, пункт три. Получаем V.
Берем V и делим на N-1. Получаем А. То есть, если у нас задан период N=10, то N-1=9 ;))) ( последние символы обозначают ржаку)
Берем корень квадратный из А. Получаем Q.
Готовим переменную T. Это количество времени в данном тайм фрейме. В дневном тайм фрейме 256. Это условное количество рабочих дней в году. Так как у нас могут быть праздники или просто выходные, то это значение ставится по умолчанию в настройках, но должна быть возможность изменять эту цифру из настроек.( По идеи нам надо найти средневзвешенную величину, но я пока не придумал как это сделать. Мысли придут при отладке.) Соответственно, что бы найти цифру для недельного тайм фрейма нам надо 256 разделить на 5 дней в рабочей недели. А что бы найти по часу, то 256 умножаем на количество часов в торговом дне. В первой версии мы можем брать количество свечей в торговой сессии, (Потом откалибруем и найдем средне взвешенное для каждого тайм фрейма.) После вычисления переменной T мы извлекаем из нее квадратный корень и получаем D.
Дальше, умножаем переменную Q на D и все это умножаем на 100. Получается W.
W выводим на график с возможностью выбора методов отрисовки.
Если что то непонятно, вот тут есть: ruforum.mt5.com/threads/3459-raschet-volatilnosti
Так как Lua работает с картинками, необходимо предусмотреть различные гаджетные фишки. Типа, при растущей волатильности выскакивает моя фотография где я кручу дули. При падающей, появляется рисунок с котиком. Ну и тому подобное.
По формулам приведенным в статье. Меня сильно не доставайте. Я написал Олегу Мубаракшину, видел у него картинки, по моему в Екселе, может, откликнется и пришлет. Ну, если что, будем вместе сочинять. Один я ошибок могу напороть.
Извините за сумбурность, но что можно написать еще про осциллятор. Задавайте вопросы, отвечу.
ЗЫ У Олега есть все эти формулы на R. И готов помочь. Так что математик у нас есть!
7. Exponential weighted