MOD=Volatility Shock Half-Life Monitor(Overlay)
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «mod=volatility shock half-life monitor(overlay)=v6.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор предназначен для мониторинга эпизодов повышенной волатильности на ценовых графиках в TradingView. Он сравнивает текущую (быструю) волатильность с базовым уровнем и фиксирует момент, когда их соотношение превышает заданный порог, что обозначается как SHOCK.
В рамках активного эпизода индикатор отслеживает обновления локальных максимумов волатильности (PEAK), вторичные ускорения (REHEAT) и достижение целевого уровня затухания избыточной волатильности (HALF-LIFE). Также предусмотрена защита от слишком длительных эпизодов через механизм таймаута.
Визуализация включает графические метки событий на графике и подсветку фона в периоды активной волатильности. Индикатор поддерживает условия оповещений для ключевых событий: начало шока, раскачка, достижение целевого уровня затухания и таймаут.
Настройки программы
| Настройка | Описание |
|---|---|
| fastLen | Быстрая волатильность — Длина — Количество свечей (период), используемых для расчёта текущей быстрой волатильности (скользящего стандартного отклонения). Меньшее значение делает индикатор более чувствительным к резким ценовым движениям. |
| baseLen | Базовая волатильность — Длина — Количество свечей (период), используемых для расчёта базовой (нормальной) волатильности. Служит эталоном спокойного рынка, против которого сравнивается текущая волатильность. |
| shockMultiple | Порог SHOCK — Множитель от базы — Множитель для срабатывания шока. Событие SHOCK активируется, когда быстрая волатильность превышает базовую по заданному множителю (например, в 1,75 раза). |
| decayFraction | Цель HALF-LIFE — Доля затухания — Целевая доля остаточной волатильности для затухания. Значение 0,50 означает момент, когда избыточная волатильность от пика до базового уровня снизилась ровно на половину (50%). |
| reheatPercent | Порог REHEAT — Превышение пика (%) — Порог вторичного ускорения в процентах. REHEAT срабатывает, когда новый максимум волатильности внутри текущего эпизода превышает предыдущий пик как минимум на заданный процент. |
| maxEpisodeBars | Максимальная длительность SHOCK — Максимальная продолжительность шока в свечах (внутренний таймаут). Верхний предел свечей, которое может длиться активный эпизод до принудительного завершения. |
| useLogReturns | Использовать логарифмические доходности — Использование логарифмических доходностей (ln(close/close[1])) вместо простых. Рекомендуется для повышения точности расчётов на разных ценовых диапазонах. |
| showShock | SHOCK — Начало всплеска — Отображение метки SHOCK на графике в момент официального начала нового эпизода повышенной волатильности. |
| showPeak | PEAK — Новый максимум — Отображение метки PEAK при каждом обновлении нового локального максимума волатильности внутри активного шока. |
| showReheat | REHEAT — Вторичное ускорение — Отображение метки REHEAT при вторичном ускорении, когда волатильность пробивает предыдущий локальный пик. |
| showHalfLife | HALF-LIFE — Достигнута цель затухания — Отображение метки HALF-LIFE на графике в момент, когда избыточная волатильность успешно снижается до целевого уровня затухания. |
| showBackground | Фон активного SHOCK — Подсветка фона графика на протяжении всей продолжительности активного эпизода шока (стандартно оранжевый, после вторичного ускорения — фуксия). |
Поиск по коду файла
indicator("MOD=Volatility Shock Half-Life Monitor(Overlay)", overlay=true, max_labels_count=500)
groupCalc = "Volatility Calculation"
fastLen = input.int(10, "Fast Volatility — Length", minval=2, group=groupCalc, tooltip="Number of candles (period) used to calculate the current fast volatility (moving standard deviation). A smaller value makes the indicator more sensitive to sharp price movements.")
baseLen = input.int(100, "Base Volatility — Length", minval=10, group=groupCalc, tooltip="Number of candles (period) used to calculate the base (normal) volatility. Serves as a market calm benchmark against which current volatility is compared.")
shockMultiple = input.float(1.75, "SHOCK Threshold — Base Multiple", minval=1.05, step=0.05, group=groupCalc, tooltip="Multiplier for shock triggering. The SHOCK event activates when fast volatility exceeds base volatility by the specified multiple (for example, 1.75 times).")
decayFraction = input.float(0.50, "HALF-LIFE Target — Residual Volatility", minval=0.05, maxval=0.95, step=0.05, group=groupCalc, tooltip="Target proportion of residual volatility for decay. A value of 0.50 means the point where excess volatility from the peak down to the base level has decreased by exactly half (50%).")
reheatPercent = input.float(10.0, "REHEAT Threshold — New Peak Above (%)", minval=0, step=1, group=groupCalc, tooltip="Secondary acceleration threshold in percentages. REHEAT triggers when a new volatility maximum within the current episode exceeds the previous peak by at least the specified percentage.")
maxEpisodeBars= input.int(40, "Maximum SHOCK Duration", minval=2, group=groupCalc, tooltip="Maximum duration of the shock in bars (internal timeout). The upper limit of candles an active episode can last before a forced termination.")
useLogReturns = input.bool(true, "Use Logarithmic Returns", group=groupCalc, tooltip="Use logarithmic returns (ln(close/close[1])) instead of simple returns. Recommended for calculation accuracy across different price ranges.")
groupDisplay = "Chart Labels"
showShock = input.bool(true, "SHOCK — Surge Start", group=groupDisplay, tooltip="Display the SHOCK label on the chart at the exact moment of the official start of a new volatility surge.")
showPeak = input.bool(false, "PEAK — New Maximum", group=groupDisplay, tooltip="Display the PEAK label every time a new local volatility maximum is recorded inside an active shock.")
showReheat = input.bool(true, "REHEAT — Secondary Acceleration", group=groupDisplay, tooltip="Display the REHEAT label during secondary acceleration when volatility breaks above the previous local peak.")
showHalfLife = input.bool(false, "HALF-LIFE — Decay Target Reached", group=groupDisplay, tooltip="Display the HALF-LIFE label at the moment when excess volatility successfully drops down to the target decay level.")
showBackground = input.bool(true, "Active SHOCK Background", group=groupDisplay, tooltip="Highlight the background of the price chart with color throughout the entire duration of the active shock episode (orange is standard, fuchsia is after secondary acceleration).")
if barstate.isfirst and fastLen >= baseLen
runtime.error("The base volatility period must be greater than the fast volatility period.")
float ret = useLogReturns ? math.log(close / close[1]) : close / close[1] - 1.0
float fastVoПоказано первые 50% кода (символов: 5546)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.