Блог им. tashik

Историческая волатильность "по-быстрому" для TradingView

    • 24 ноября 2021, 10:00
    • |
    • tashik
  • Еще
Длинная историческая волатильность по-быстрому Использовать на часовом ТФ или выше (до дневки). Периоды указываются кратно барам. В моем примере 17 на часовике — это 17 часов, одна торговая сессия, суточное окно.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

//@version=4

study("Historical Volatility")

// Настройки окон
HVPeriod1 = input(17, minval=1, title="Окно 1")
HVPeriod2 = input(34, minval=1, title="Окно 2")
HVPeriod3 = input(51, minval=1, title="Окно 3")
HVPeriod4 = input(85, minval=1, title="Окно 4")

// Настройка периода для сглаживания
EMAPeriod = input(17, minval=2, title="Период сглаживания")

// Собственно индикатор

// мультипликатор, для нормирования к году
mul = 252 * 1210 / timeframe.multiplier
//приращение за бар
ch = log(close) - log(close[1]) 

// Историческая волатильность в окнах
HV1 = ema(sqrt(sum(ch * ch, HVPeriod1) * mul / HVPeriod1) * 100, EMAPeriod)
HV2 = ema(sqrt(sum(ch * ch, HVPeriod2) * mul / HVPeriod2) * 100, EMAPeriod)
HV3 = ema(sqrt(sum(ch * ch, HVPeriod3) * mul / HVPeriod3) * 100, EMAPeriod)
HV4 = ema(sqrt(sum(ch * ch, HVPeriod4) * mul / HVPeriod4) * 100, EMAPeriod)

// Рисуем красивое
plot(HV1, color=#cccccc)
plot(HV2, color=#ffcccc)
plot(HV3, color=#ff9999)
plot(HV4, color=#ff0000)
Чтобы использовать, копируем, в TradingView открываем Редактор Pine, создаем там новый индикатор (Открыть -> Новый индикатор), удаляем все что там в скрипте по умолчанию и вставляем этот код. Жмем Сохранить. Дальше скрипт будет доступен в выпадающем списке над графиком под кнопкой Индикаторы во вкладке Мои скрипты. Модно, быстро и удобно )

Держим опционный строй даже когда на море качка!

★19
14 комментариев

Небольшие предложения по оптимизации:
1. @version=5
2. ch = log(close/close[1])

avatar
/../, пятая версия хуже.
добавила кучу ненужного дерьма и ничего нового.

avatar
В опционах существует куда более интересные стратегии, чем арбитраж к исторической волатильности. К примеру 1% skew стоит примерно 1,125% счёта к экспирации. На недельках брента, расхождение бывает и по 20%, а это примерно 100% в МЕСЯЦ!
avatar
bozon, получается забирать?
avatar
tashik, теоретически да:)) Это как продавать var-своп. Практически — спреды всё съедают, но тоже решаемо!
avatar
tashik, вы берет окно.
размером с день.
и это правильно только в рамках дня.
большую часть времени окно на раскоряку между двумя днями.
а раз в неделю между пятницей и воскресеньем.
это как-то учитывается?
avatar
Антон Б, я дала возможность взять любые 4 окна (у меня там сутки, двое, трое, пять суток (неделя)), в TradingView побарный учет, не календарный. Вы можете эти параметры менять в настройках индикатора — нажмите на шестеренку рядом с его именем. Нерабочее время и возможные гэпы учитывается в  mul, не нравится как — поправьте на свою формулу. Я исходила из того, что немного удлинила день, но взяла только рабочие дни. Так многие делают, начиная с Курбаковского. По-быстрому — там выше тоже было не просто так написано )
avatar
tashik, 1555 — это удлинение дня?
avatar
_sg_, очевидно ) Может тупанула — многовато вышло, надо от торгового времени делать. Поправьте у себя как сочтете нужным
avatar
tashik, а откуда такая волшебная цифра?
avatar
_sg_, выше написала — сделайте у себя как сочтете нужным — удлините торговое время. Сейчас поправлю для торгового (1210). Спасибо за бдительность )
avatar
tashik, но у меня все равно «Error: cannot compile script».
avatar
_sg_, не, только что попробовала — работает все. Тут не грешна. Открываем Новый индикатор в TradingView, ВСЕ УДАЛЯЕМ. Вставляем этот код.
avatar
Если нужно этим индикатором смотреть таймфреймы от дневки, добавьте после строки про mul вот такой код
if timeframe.ismonthly
    mul := 12
else if timeframe.isweekly
    mul := 52
else if timeframe.isdaily
    mul := 252 / timeframe.multiplier
avatar

теги блога tashik

....все тэги



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