High-Volume Points with a Zone of Maximum Reaction
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «high-volume points with a zone of maximum reaction.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «High-Volume Points with a Zone of Maximum Reaction» отображает на графике значимые точки максимума и минимума цены, окружённые зонами реакции. Для определения пивотов используются встроенные функции Pine Script — ta.pivothigh и ta.pivotlow, а ширина зон рассчитывается на основе среднего истинного диапазона (ATR). Вокруг пивотов рисуются круги, диаметр которых пропорционален нормализованному объёму торгов, что позволяет визуально оценить значимость каждой точки.
Индикатор также отрисовывает уровни, проходящие через пивоты, и отслеживает их пересечение ценой, меняя стиль линий при пересечении. Доступны настройки фильтрации по объёму, цветов зон и кругов, а также параметры отображения уровней. Все расчёты выполняются средствами Pine Script и отображаются поверх графика в режиме реального времени.
Продукт представляет собой индикатор технического анализа для платформы TradingView, предназначенный для визуализации зон высокой активности объёма вокруг ключевых ценовых пивотов. Он не является автоматическим советником и не выполняет симуляцию торговых операций.
Настройки программы
| Настройка | Описание |
|---|---|
| lookback | Период поиска максимума и минимума цены для определения зон реакции и записи значимых пивотов. |
| multiplier | Множитель для расчёта ширины зон реакции на основе ATR. Увеличение значения расширяет зоны вокруг пивотов. |
| high_col | Цвет отображения зоны и маркеров для пивота максимума (верхнего пивота). |
| low_col | Цвет отображения зоны и маркеров для пивота минимума (нижнего пивота). |
| step | Диаметр кругов, отрисованных вокруг пивотов. Регулирует визуальный размер маркеров объёмных точек. |
| filter_vol | Порог объёма для фильтрации отображаемых точек. Значение определяет минимальный нормализованный объём, при котором круг вокруг пивота будет отрисован. |
| leftBars | Количество баров слева от пивота, используемое при определении точек разворота через ta.pivothigh и ta.pivotlow. |
| show_lvl | Логический переключатель, определяющий отображение уровней на графике. При отключении уровни удаляются. |
| upper_col | Цвет кругов и уровней, связанных с пивотами максимума. |
| lower_col | Цвет кругов и уровней, связанных с пивотами минимума. |
Поиск по коду файла
indicator("<[Точки большого объема c Зона максимальной реакции]>", '<{BV MR Zones}>', overlay = true, max_polylines_count = 100, max_lines_count = 17, max_labels_count = 500, max_bars_back = 1000)
var high_i = int(na)
var high_v = float(na)
var low_i = int(na)
var low_v = float(na)
lookback = input(72, title="Период поиска максимума и минимума")
multiplier = input.float(1, "Ширина зон", step = 0.1, inline = "h/l")
high_col = input.color(color.orange, "", inline = "h/l")
low_col = input.color(color.blue, "", inline = "h/l")
highest = ta.highest(lookback)
lowest = ta.lowest(lookback)
atr = ta.atr(200) * multiplier
if high[1] == highest[1] and high < highest
high_i := bar_index-1
high_v := high[1]
if low[1] == lowest[1] and low > lowest
low_i := bar_index-1
low_v := low[1]
draw_zone(x, y, h_l, color)=>
dist = h_l ? -atr : atr
line.delete(line.new(x, y, bar_index, y, color = color, style = line.style_solid, width = 2)[1])
line.delete(line.new(x+3, y+dist, bar_index, y+dist, color = color, style = line.style_dashed)[1])
label.delete(label.new(bar_index, y, str.tostring(y, "#,###.####"), color = color(na), style = label.style_label_left, textcolor = color)[1])
if barstate.islast
size = bar_index - (high_i > low_i ? low_i : high_i)
draw_zone(high_i, high_v, true, high_col)
draw_zone(low_i, low_v, false, low_col)
mid = math.avg(high_v, low_v)
mid_index = bar_index - size/2
line.delete(line.new(mid_index, mid, bar_index, mid, color = chart.fg_color, style = line.style_dashed)[1])
label.delete(label.new(bar_index, mid, str.tostring(mid, "#,###.####"), color = color(na), style = label.style_label_left, textcolor = chart.fg_color)[1])
for i = 0 to size
index = bar_index-i-2
if low[i+3] > low_v+atr and low[i+2] < low_v+atr and high[i+1] > low_v+atr and index > low_i
label.new(index, low[i+2], "", style = label.style_label_up, color = low_col, size = size.tiny)
if high[i+3] < high_v-atr and high[i+2] > high_v-atr and low[i+1] < high_v-atr and index > high_i
label.new(index, high[i+2], "", style = label.style_label_down, color = high_col, size = size.tiny)
step = input.float(0.6, 'Диаметр кругов', step = 0.1, group = 'Настройки')
filter_vol = input.float(2, 'Фильтр точек по объему', step = 0.1, group = 'Настройки', minval = 0, maxval = 6)
int leftBars = input(15, "Длина")
int rightBars = leftBars
show_lvl = input.bool(true, 'Показывать уровни', group = 'Визуализация')
float xScale = 2.0
float yScale = 0.5 * ta.atr(500)
color upper_col = input.color(#fda05e, "", inline = "1")
color lower_col = input.color(#2fd68e, "", inline = "1")
int width1 = 0
int width2 = 0
var points = array.new<chart.point>()
var levels = array.new<line>()
ph = ta.pivothigh(leftBars, rightBars)
pl = ta.pivotlow(leftBars, rightBars)
volume_ = math.sum(volume, leftBars * 2)
float vol = volume_
min_vol = ta.lowest(volume_, 300)
max_vol = ta.highest(volume_, 300)
reference_vol = ta.percentile_nearest_rank(volume_, 1000, 95)
norm_vol = volume_ / reference_vol * 5
check_cross(arrayOfLines) =>
int qtyOfLines = array.size(arrayOfLines)
for lineNo = 0 to qtyOfLines > 0 ? qtyOfLines - 1 : na by 1
if lineNo < array.sizПоказано первые 50% кода (символов: 5074)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.