Блог им. Dabelw

Нужна помощь зала по написанию индикатора (ТЗ)

Огромное спасибо всем, кто отозвался на мою просьбу. Я хотел написать каждому в личку, но слишком много слов. Поэтому я выкладываю в общий доступ и даю ссылки.

История вопроса. Как то так сложилось, что доступные индикаторы к нам приходят, наверное, из Форекса. И если там считают дельты, то есть пункты, то на фонде положено считать проценты. Однако, люди, которые называют аттракторы простыми скользящими средними, навязывают свое видение. Я не возражаю против ATR, но хотелось бы видеть волатильность в процентах, а не в попугаях. Тем более, работая на опционах, знать реализованную волатильность очень важно. И даже есть с чем ее сравнивать.

Индикатор/осцилятор будет называться HV, а также моим именем, извините за скромность. Это осциллятор, который рассчитывается по следующей формуле. Ссылка на них будет ниже.

1. Close–to–close ©

 2. Parkinson (HL)

 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. И готов помочь. Так что математик у нас есть!

 

 

Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
1.1К | ★13
6 комментариев
… а не проще ли АТР разделить на спот? И зачем нужен возврат к среднему, если он уже заложен в среднее квадратическое отклонение размером окна истории?
avatar
bozon, Тут расчет немного отличается от ADR и имеет более предсказательное поведение. 
Эко тебя вшторило то! Я обычно сразу ошибку вижу, а тут что то сразу не получилось. Ну давай как в мультике:
я бы еще добавил:
7. Exponential weighted
Oleg Mubarakshin ~ Quant-lab, Сейчас попробую. Надо с Мю от t разобраться. Ты бы шаги решений формул сбросил. 

Читайте на SMART-LAB:
🔄 ВТБ Мои Инвестиции обновили тарифы. Насколько это интересно?
С 1 августа в ВТБ Мои Инвестиции начали действовать обновленные тарифы. Если посмотреть на изменения целиком, видно, что основной акцент сделали на...
Фото
Как инвестировать спокойно, когда вокруг все паникуют
Когда рынок трясет, решения нередко принимаются здесь и сейчас — импульсивно. Ведь в такие периоды особенно легко поддаться эмоциям:...

теги блога Дмитрий Новиков

....все тэги



UPDONW
Новый дизайн