ICT Sessions & Killzones [JOAT]
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ict sessions & killzones.txt» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «ICT Sessions & Killzones [JOAT]» отображает на графике TradingView информационные блоки и уровни четырёх основных торговых сессий — Азии, Лондона, Нью-Йорка (утро и вечер). Для каждой сессии рисуется прямоугольник диапазона цен и линии, продолжающие высокие и низкие уровни за пределы сессии.
Индикатор отслеживает события забора (sweep), когда последующая сессия достигает уровня предыдущей, и помечает их на графике. Также рассчитывается дневной биас относительно полуночного открытия и формируются метки сигналов BUY/SELL при совпадении забора с восстановлением уровня и соответствующим биасом.
Встроенная информационная панель показывает текущую активную сессию, её диапазон, дневной биас и последний сигнал. Поддерживаются условные оповещения TradingView для сигналов покупки, продажи, забора уровней и открытия сессий.
Все элементы визуализации настраиваются пользователем: сессионные окна, цвета, отображение свечей, положение и размер текста панели, а также количество хранимых дней истории.
Настройки программы
| Настройка | Описание |
|---|---|
| tz | Часовой пояс сессии — Часовой пояс, используемый для расчёта времени всех торговых сессий. |
| keepDays | Количество дней истории — Количество дней истории, в течение которых хранятся сессионные блоки и линии уровней. Более старые данные удаляются. |
| extBars | Продление уровней (баров) — Количество баров, на которое линии уровней продлеваются за пределы завершения сессии. |
| asiaOn | Азия — Включает или отключает отображение азиатской сессии и связанных с ней элементов. |
| asiaSes | Время азиатской сессии — Временное окно азиатской торговой сессии в выбранном часовом поясе. |
| asiaCol | Цвет азиатской сессии — Цвет заливки прямоугольника азиатской сессии на графике. |
| lonOn | Лондон — Включает или отключает отображение лондонской сессии и связанных с ней элементов. |
| lonSes | Время лондонской сессии — Временное окно лондонской торговой сессии в выбранном часовом поясе. |
| lonCol | Цвет лондонской сессии — Цвет заливки прямоугольника лондонской сессии на графике. |
| nyaOn | Нью-Йорк (утро) — Включает или отключает отображение нью-йоркской утренней сессии и связанных с ней элементов. |
| nyaSes | Время нью-йоркской утренней сессии — Временное окно нью-йоркской утренней торговой сессии в выбранном часовом поясе. |
| nyaCol | Цвет нью-йоркской утренней сессии — Цвет заливки прямоугольника нью-йоркской утренней сессии на графике. |
| nypOn | Нью-Йорк (вечер) — Включает или отключает отображение нью-йоркской вечерней сессии и связанных с ней элементов. |
| nypSes | Время нью-йоркской вечерней сессии — Временное окно нью-йоркской вечерней торговой сессии в выбранном часовом поясе. |
| nypCol | Цвет нью-йоркской вечерней сессии — Цвет заливки прямоугольника нью-йоркской вечерней сессии на графике. |
| showPDH | Предыдущий день (верх/низ) — Отображает пунктирные линии и метки максимума и минимума предыдущего торгового дня. |
| showMid | Полуночное открытие — Отображает горизонтальную линию полуночного открытия (00:00) и метку уровня. |
| showBox | Коробки сессий — Отображает прямоугольники (коробки) для каждой торговой сессии. |
| showLiq | Линии ликвидности сессий — Отображает линии высоких и низких уровней завершённых сессий. |
| showSwp | Метки забора — Отображает метки и маркеры забора уровней (sweep) на графике. |
| paintOn | Монохромные свечи — Включает монохромную окраску свечей: белые для роста, серые для падения. |
| showSig | Метки сигнала BUY/SELL — Отображает метки сигналов BUY и SELL на графике при выполнении условий забора и биаса. |
| showHUD | Панель мониторинга — Отображает или скрывает информационную панель (дашборд) на графике. |
| hudPos | Позиция панели — Положение информационной панели (дашборда) на графике. |
| hudSize | Размер текста панели — Размер текста в информационной панели. |
Поиск по коду файла
indicator("ICT Sessions & Killzones [JOAT]", "Sessions KZ [JOAT]", overlay = true, max_lines_count = 500, max_labels_count = 500, max_boxes_count = 500)
WHITE = #F5F7FA
LGREY = #C7CDD6
MGREY = #8A93A3
DGREY = #4A505C
INK = #14181F
PAPER = #FFFFFF
gGen = "General"
tz = input.string("America/New_York", "Session timezone", options = ["America/New_York", "America/Chicago", "Europe/London", "Europe/Berlin", "Asia/Tokyo", "Asia/Shanghai", "Australia/Sydney", "UTC"], group = gGen)
keepDays= input.int(3, "Days of history to keep", minval = 1, maxval = 10, group = gGen, tooltip = "Older session boxes and their liquidity lines are pruned beyond this many days.")
extBars = input.int(24, "Level extension (bars)", minval = 2, maxval = 200, group = gGen)
gAsia = "Asia"
asiaOn = input.bool(true, "Asia", inline = "as", group = gAsia)
asiaSes = input.session("2000-0000", "", inline = "as", group = gAsia)
asiaCol = input.color(color.new(#8A93A3, 90), "Shade", group = gAsia)
gLon = "London"
lonOn = input.bool(true, "London", inline = "lo", group = gLon)
lonSes = input.session("0200-0500", "", inline = "lo", group = gLon)
lonCol = input.color(color.new(#4A505C, 90), "Shade", group = gLon)
gNYa = "New York AM"
nyaOn = input.bool(true, "New York AM", inline = "na", group = gNYa)
nyaSes = input.session("0700-1000", "", inline = "na", group = gNYa)
nyaCol = input.color(color.new(#14181F, 90), "Shade", group = gNYa)
gNYp = "New York PM"
nypOn = input.bool(true, "New York PM", inline = "np", group = gNYp)
nypSes = input.session("1330-1600", "", inline = "np", group = gNYp)
nypCol = input.color(color.new(#8A93A3, 92), "Shade", group = gNYp)
gLvl = "Classic Levels"
showPDH = input.bool(true, "Previous day high / low", group = gLvl)
showMid = input.bool(true, "Midnight (00:00) open", group = gLvl)
gVis = "Visuals"
showBox = input.bool(true, "Session boxes", group = gVis)
showLiq = input.bool(true, "Session high / low lines", group = gVis)
showSwp = input.bool(true, "Sweep tags", group = gVis)
paintOn = input.bool(true, "Paint monochrome candles", group = gVis)
showSig = input.bool(true, "Bias BUY / SELL tags", group = gVis)
showHUD = input.bool(true, "Dashboard", group = gVis)
hudPos = input.string("Top Right", "Position", options = ["Top Right", "Top Left", "Bottom Right", "Bottom Left", "Middle Right"], group = gVis)
f_pos(string s) =>
switch s
"Top Right" => position.top_right
"Top Left" => position.top_left
"Bottom Right" => position.bottom_right
"Bottom Left" => position.bottom_left
=> position.middle_right
f_price(float p) =>
str.tostring(p, format.mintick)
f_prune(array<box> bxs, array<line> his, array<line> los, array<label> lbs, array<label> lhs, array<label> lls, int cap) =>
while array.size(bxs) > cap
box.delete(array.shift(bxs))
while array.size(his) > cap
line.delete(array.shift(his))
while array.size(los) > cap
line.delete(array.shift(los))
while array.size(lbs) > cap
label.delete(array.shift(lbs))
while array.size(lhs) > cap
label.delete(array.shift(lhs))
while array.size(lls) > cap
label.delete(array.shift(lls))
newDay = timeframe.change("D")
var bool asIn = false
var float asHi = na
var float asLo = na
var int asL = na
var array<box> asBx = array.new<box>()
var array<line> asHl = array.new<line>()
var array<line> asLl = array.new<line>()
var array<label> asLb = array.new<label>()
var array<label> asLh = array.new<label>()
var array<label> asLo2 = array.new<label>()
var bool loIn = false
var float loHi = na
var float loLo = na
var int loL = na
var array<box> loBx = array.new<box>()
var array<line> loHl = array.new<line>()
var array<line> loLl = array.new<line>()
var array<label> loLb = array.new<label>()
var array<label> loLh = array.new<label>()
var array<label> loLo2 = array.new<label>()
var bool naIn = false
var float naHi = na
var float naLo = na
var int naL = na
var array<box> naBx = array.new<box>()
var array<line> naHl = array.new<line>()
var array<line> naLl = array.new<line>()
var array<label> naLb = array.new<label>()
var array<label> naLh = array.new<label>()
var array<label> naLo2 = array.new<label>()
var bool npIn = false
var float npHi = na
var float npLo = na
var int npL = na
var array<box> npBx = array.new<box>()
var array<line> npHl = array.new<line>()
var array<line> npLl = array.new<line>()
var array<label> npLb = array.new<label>()
var array<label> npLh = array.new<label>()
var array<label> npLo2 = array.new<label>()
asActive = asiaOn and not na(time(timeframe.period, asiaSes, tz))
loActive = lonOn and not na(time(timeframe.period, lonSes, tz))
naActive = nyaOn and not na(time(timeframe.period, nyaSes, tz))
npActive = nypOn and not na(time(timeframe.period, nypSes, tz))
if asActive and not asIn
asIn := true
asHi := high
asLo := low
asL := bar_index
else if asActive and asIn
asHi := math.max(asHi, high)
asLo := math.min(asLo, low)
if asIn and not asActive
asIn := false
if showBox
bx = box.new(asL, asHi, bar_index - 1, asLo, border_color = color.new(INK, 40), border_width = 1, bgcolor = asiaCol)
array.push(asBx, bx)
array.push(asLb, label.new(asL, asHi, "Asia " + f_price(asHi - asLo), style = label.style_label_lower_right, color = color.new(PAPER, 100), textcolor = MGREY, size = size.tiny))
if showLiq
array.push(asHl, line.new(bar_index - 1, asHi, bar_index - 1 + extBars, asHi, color = color.new(INK, 30), width = 1))
array.push(asLl, line.new(bar_index - 1, asLo, bar_index - 1 + extBars, asLo, color = color.new(INK, 30), width = 1))
array.push(asLh, label.new(bar_index - 1 + extBars, asHi, " Asia H " + f_price(asHi), style = label.style_label_left, color = color.new(PAPER, 100), textcolor = MGREY, size = size.tiny))
array.push(asLo2, label.new(bar_index - 1 + extBars, asLo, " Asia L " + f_price(asLo), style = label.style_label_left, color = color.new(PAPER, 100), textcolor = MGREY, size = size.tiny))
if loActive and not loIn
loIn := true
loHi := high
loLo := low
loL := bar_index
else if loActive and loIn
loHi := math.max(loHi, high)
loLo := math.min(loLo, low)
if loIn and not loActive
loIn := false
if showBox
bx = box.new(loL, loHi, bar_index - 1, loLo, border_color = color.new(INK, 40), border_width = 1, bgcolor = lonCol)
array.push(loBx, bx)
array.push(loLb, label.new(loL, loHi, "London " + f_price(loHi - loLo), style = label.style_label_lower_right, color = color.new(PAPER, 100), textcolor = DGREY, size = size.tiny))
if showLiq
array.push(loHl, line.new(bar_index - 1, loHi, bar_index - 1 + extBars, loHi, color = color.new(INK, 25), width = 1))
array.push(loLl, line.new(bar_index - 1, loLo, bar_index - 1 + extBars, loLo, color = color.new(INK, 25), width = 1))
array.push(loLh, label.new(bar_index - 1 + extBars, loHi, " London H " + f_price(loHi), style = label.style_label_left, color = color.new(PAPER, 100), textcolor = DGREY, size = size.tiny))
array.push(loLo2, label.new(bar_index - 1 + extBars, loLo, " London L " + f_price(loLo), style = label.style_label_left, color = color.new(PAPER, 100), textcolor = DGREY, size = size.tiny))
if naActive and not naIn
naIn := true
naHi := high
naLo := low
naL := bar_index
else if naActive and naIn
naHi := math.max(naHi, high)
naLo := math.min(naLo, low)
if naIn and not naActive
naIn := false
if showBox
bx = box.new(naL, naHi, bar_index - 1, naLo, border_color = color.new(INK, 20), border_width = 1, bgcolor = nyaCol)
array.push(naBx, bx)
array.push(naLb, label.new(naL, naHi, "NY AM " + f_price(naHi - naLo), style = label.style_label_lower_right, color = color.new(PAPER, 100), textcolor = INK, size = size.tiny))
if showLiq
array.push(naHl, line.new(bar_index - 1, naHi, bar_index - 1 + extBars, naHi, color = color.new(INK, 15), width = 1))
array.push(naLl, line.new(bar_index - 1, naLo, bar_index - 1 + extBars, naLo, color = color.new(INK, 15), width = 1))
array.push(naLh, label.new(bar_index - 1 + extBars, naHi, " NY AM H " + f_price(naHi), style = label.style_label_left, color = color.new(PAPER, 100), textcolor = INK, size = size.tiny))
array.push(naLo2, label.new(bar_index - 1 + extBars, naLo, " NY AM L " + f_price(naLo), style = label.style_label_left, color = color.new(PAPER, 100), textcolor = INK, size = size.tiny))
if npActive and not npIn
npIn := true
npHi := high
npLo := low
npL := bar_index
else if npActive and npIn
npHi := math.max(npHi, high)
npLo := math.min(npLo, low)
if npIn and not npActive
npIn := false
if showBox
bx = box.new(npL, npHi, bar_index - 1, npLo, border_color = color.new(INK, 40), border_width = 1, bgcolor = nypCol)
array.push(npBx, bx)
array.push(npLb, label.new(npL, npHi, "NY PM " + f_price(npHi - npLo), style = label.style_label_lower_right, color = color.new(PAPER, 100), textcolor = MGREY, size = size.tiny))
if showLiq
array.push(npHl, line.new(bar_index - 1, npHi, bar_index - 1 + extBars, npHi, color = color.new(INK, 30), width = 1))
array.push(npLl, line.new(bar_index - 1, npLo, bar_index - 1 + extBars, npLПоказано первые 50% кода (символов: 15218)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.