← К каталогу
Исходный код · ID 4282

Quantum Imbalance Trap

quantum imbalance trap@shepherdfxtradingtools.pine

Похожие материалы по тегам

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор написан на Pine Script v6 и использует технические расчёты, запрос данных других таймфреймов, графические примитивы и таблицы для отображения информации.

Настройки программы

НастройкаОписание
imb_len Длина окна импульса — Количество баров для расчёта среднего объёма и определения импульса
atr_len Период ATR — Период усреднения истинного диапазона для волатильности
imb_thresh Порог тела к диапазону — Минимальное соотношение тела свечи к полному диапазону для признака значимого тела
vol_mult Множитель объёмного скачка — Множитель среднего объёма, при превышении которого считается объёмный скачок
use_div Подтверждение расхождением RSI — Включает дополнительную проверку расхождения цены и RSI для подтверждения сигнала
use_liq_sweep Требовать пробой ликвидности — Включает проверку пробоя ближайшего экстремума предыдущих баров
use_mtf_align Выравнивание по старшему таймфрейму — Включает фильтрацию сигналов по направлению тренда на выбранном старшем таймфрейме
htf_tf Старший таймфрейм — Таймфрейм для анализа направления тренда при включённом выравнивании
use_ext_box Динамическая зона ре-входа — Продлевает горизонтальную зону входа при активной позиции до достижения стоп-лосса
sl_atr Множитель стоп-лосса ATR — Множитель ATR для расчёта расстояния стоп-лосса от точки входа
tp1_r Цель прибыли 1 (кратность R) — Первая цель прибыли в кратности от расстояния стоп-лосса
tp2_r Цель прибыли 2 (кратность R) — Вторая цель прибыли в кратности от расстояния стоп-лосса
tp3_r Цель прибыли 3 (кратность R) — Третья цель прибыли в кратности от расстояния стоп-лосса
alrt_bull Оповещение бычьего сигнала — Включает отправку оповещения при формировании бычьего сигнала
alrt_bear Оповещение медвежьего сигнала — Включает отправку оповещения при формировании медвежьего сигнала
use_session Включить фильтр сессий — Включает фильтрацию сигналов по времени торговой сессии
sess_london Лондонская сессия (07:00–10:30 UTC) — Разрешает сигналы в период лондонской утренней сессии
sess_ny Нью-Йоркская сессия (12:30–15:00 UTC) — Разрешает сигналы в период нью-йоркской сессии
show_zone Показать зону входа — Отображает прямоугольную зону вокруг точки входа
show_label Показать ценовые метки — Отображает метки с ценами входа, стоп-лосса и целей прибыли
dash_bg Цвет фона дашборда — Фоновый цвет элементов дашборда
dash_txt Цвет текста дашборда — Цвет текста в дашборде
bull_col Цвет бычьего сигнала — Цвет линий и меток для бычьих сигналов
bear_col Цвет медвежьего сигнала — Цвет линий и меток для медвежьих сигналов
sl_col Цвет стоп-лосса — Цвет линии стоп-лосса
tp1_col Цель прибыли 1 — цвет — Цель прибыли 1
tp2_col Цель прибыли 2 — цвет — Цель прибыли 2
tp3_col Цель прибыли 3 — цвет — Цель прибыли 3
zone_col Цвет зоны входа — Цвет фона зоны входа и её границы
Получить полный код

Поиск по коду файла

indicator("Quantum Imbalance Trap", overlay=true, max_lines_count=500, max_boxes_count=200, max_labels_count=300)

string GRP_QIT   = "Signal Detection"
string GRP_SMC   = "Smart Money Concepts"
string GRP_OF    = "Order Flow"
string GRP_RISK  = "Risk Management"
string GRP_ALERT = "Alerts & Sessions"
string GRP_DASH  = "Dashboard"
string GRP_VIS   = "Visual Style"
int    imb_len    = input.int(10,    "Imbalance Lookback (Bars)",    minval=3,   maxval=50,   group=GRP_QIT)
int    atr_len    = input.int(14,    "ATR Period",                   minval=5,   maxval=50,   group=GRP_QIT)
float  imb_thresh = input.float(0.55,"Body-to-Range Threshold",      minval=0.2, maxval=0.95, step=0.05, group=GRP_QIT)
float  vol_mult   = input.float(1.2, "Volume Spike Multiplier",      minval=0.5, maxval=4.0,  step=0.1,  group=GRP_QIT)
bool   use_div    = input.bool(false, "RSI Divergence Confirmation", group=GRP_QIT)
bool   use_liq_sweep = input.bool(false, "Require Liquidity Sweep",  group=GRP_SMC)
bool   use_mtf_align = input.bool(false, "Higher Timeframe Alignment", group=GRP_OF)
string htf_tf        = input.timeframe("60", "Higher Timeframe",      group=GRP_OF)
bool   use_ext_box   = input.bool(false, "Dynamic Re-entry Zone",    group=GRP_OF)
float  sl_atr     = input.float(1.5, "Stop Loss ATR Multiplier",     minval=0.5, maxval=5.0,  step=0.1,  group=GRP_RISK)
float  tp1_r      = input.float(1.5, "Take Profit 1 (R-Multiple)",   minval=0.5, maxval=5.0,  step=0.1,  group=GRP_RISK)
float  tp2_r      = input.float(2.5, "Take Profit 2 (R-Multiple)",   minval=1.0, maxval=8.0,  step=0.1,  group=GRP_RISK)
float  tp3_r      = input.float(3.5, "Take Profit 3 (R-Multiple)",   minval=2.0, maxval=12.0, step=0.1,  group=GRP_RISK)
bool   alrt_bull  = input.bool(true,  "Bullish Signal Alert",        group=GRP_ALERT)
bool   alrt_bear  = input.bool(true,  "Bearish Signal Alert",        group=GRP_ALERT)
bool   use_session = input.bool(false, "Enable Session Filter",      group=GRP_ALERT)
bool   sess_london = input.bool(false,  "London Open (07:00–10:30 UTC)", group=GRP_ALERT)
bool   sess_ny     = input.bool(false,  "New York Open (12:30–15:00 UTC)", group=GRP_ALERT)
bool   show_zone  = input.bool(true,  "Show Entry Zone",             group=GRP_DASH)
bool   show_label = input.bool(true,  "Show Price Labels",           group=GRP_DASH)
color  dash_bg    = input.color(color.rgb(5,   20,  10,  5),  "Background Color", group=GRP_DASH)
color  dash_txt   = input.color(color.rgb(235, 225, 190, 0),  "Text Color",       group=GRP_DASH)
color  bull_col   = input.color(color.rgb(0,   191, 255, 0),  "Bullish Color",    group=GRP_VIS)
color  bear_col   = input.color(color.rgb(255, 140, 0,   0),  "Bearish Color",    group=GRP_VIS)
color  sl_col     = input.color(color.rgb(220, 0,   180, 0),  "Stop Loss Color",  group=GRP_VIS)
color  tp1_col    = input.color(color.rgb(255, 230, 0,   0),  "Take Profit 1 Color", group=GRP_VIS)
color  tp2_col    = input.color(color.rgb(180, 255, 50,  0),  "Take Profit 2 Color", group=GRP_VIS)
color  tp3_col    = input.color(color.rgb(255, 100, 200, 0),  "Take Profit 3 Color", group=GRP_VIS)
color  zone_col   = input.color(color.rgb(0,   230, 255, 80), "Entry Zone Color", group=GRP_VIS)

string clean_ticker = syminfo.prefix + ":" + syminfo.ticker
float atr_val  = ta.atr(atr_len)
float vol_avg  = ta.sma(volume, imb_len)
float body     = math.abs(close - open)
float rng      = high - low
float body_rat = rng > 0.0 ? body / rng : 0.0
float vol_rat  = vol_avg > 0.0 ? volume / vol_avg : 1.0
bool  bull_body = close > open
bool  bear_body = close < open
float mom_fast  = ta.sma(close, 5)
float mom_slow  = ta.sma(close, imb_len * 2)
bool  bull_trend = mom_fast > mom_slow
bool  bear_trend = mom_fast < mom_slow
color neutral_col = color.rgb(175,160,120)

bool  vol_spike  = vol_rat >= vol_mult
bool  imb_bull   = bull_body and body_rat >= imb_thresh and vol_spike and bull_trend
bool  imb_bear   = bear_body and body_rat >= imb_thresh and vol_spike and bear_trend
bool  prev_bull  = imb_bull[1]
bool  prev_bear  = imb_bear[1]
bool  sig_bull_raw = imb_bull[1] and not imb_bull[2]
bool  sig_bear_raw = imb_bear[1] and not imb_bear[2]
float swing_lo_ref   = ta.lowest(low, imb_len)[4]
float swing_hi_ref   = ta.highest(high, imb_len)[4]
bool  liq_swept_bull = math.min(low[1], low[2], low[3]) < swing_lo_ref and close[1] > swing_lo_ref
bool  liq_swept_bear = math.max(high[1], high[2], high[3]) > swing_hi_ref and close[1] < swing_hi_ref
bool  liq_ok_bull    = not use_liq_sweep or liq_swept_bull
bool  liq_ok_bear    = not use_liq_sweep or liq_swept_bear
bool  in_london = not na(time(timeframe.period, "0700-1030:1234567", "UTC")[1])
bool  in_ny     = not na(time(timeframe.period, "1230-1500:1234567", "UTC")[1])
bool  sess_ok   = not use_session or ((sess_london and in_london) or (sess_ny and in_ny))
float htf_close_raw = request.security(syminfo.tickerid, htf_tf, close[1],             lookahead=barmerge.lookahead_on)
float htf_ma_raw    = request.security(syminfo.tickerid, htf_tf, ta.sma(close, 20)[1], lookahead=barmerge.lookahead_on)
bool  htf_bull  = htf_close_raw > htf_ma_raw
bool  htf_bear  = htf_close_raw < htf_ma_raw
string htf_trend_str = htf_bull ? "▲ Bull" : htf_bear ? "▼ Bear" : "◆ Neut"
color  htf_trend_col = htf_bull ? bull_col : htf_bear ? bear_col : neutral_col
float rsi_val = ta.rsi(close, 14)
bool  bull_div = low[1] < low[1 + imb_len] and rsi_val[1] > rsi_val[1 + imb_len]
bool  bear_div = high[1] > high[1 + imb_len] and rsi_val[1] < rsi_val[1 + imb_len]
bool  div_ok_bull  = not use_div      or bull_div
bool  div_ok_bear  = not use_div      or bear_div
bool  htf_ok_bull  = not use_mtf_align or htf_bull
bool  htf_ok_bear  = not use_mtf_align or htf_bear

bool  sig_bull = sig_bull_raw and liq_ok_bull and sess_ok and div_ok_bull and htf_ok_bull
bool  sig_bear = sig_bear_raw and liq_ok_bear and sess_ok and div_ok_bear and htf_ok_bear

var float entry_bull   = na
var float sl_bull      = na
var float tp1_bull     = na
var float tp2_bull     = na
var float tp3_bull     = na
var float zone_hi_b    = na
var float zone_lo_b    = na
var float entry_bear   = na
var float sl_bear      = na
var float tp1_bear     = na
var float tp2_bear     = na
var float tp3_bear     = na
var float zone_hi_bear = na
var float zone_lo_bear = na
var bool  bull_active  = false
var bool  bear_active  = false
var line  ln_entry_b   = na
var line  ln_sl_b      = na
var line  ln_tp1_b     = na
var line  ln_tp2_b     = na
var line  ln_tp3_b     = na
var line  ln_entry_s   = na
var line  ln_sl_s      = na
var line  ln_tp1_s     = na
var line  ln_tp2_s     = na
var line  ln_tp3_s     = na
var box   bx_zone_b    = na
var box   bx_zone_s    = na
var label lb_sig_b     = na
var label lb_entry_b   = na
var label lb_sl_b      = na
var label lb_tp1_b     = na
var label lb_tp2_b     = na
var label lb_tp3_b     = na
var label lb_sig_s     = na
var label lb_entry_s   = na
var label lb_sl_s      = na
var label lb_tp1_s     = na
var label lb_tp2_s     = na
var label lb_tp3_s     = na

int ext = bar_index + imb_len * 5
if use_ext_box
    if bull_active and not na(sl_bull) and low <= sl_bull
        bull_active := false
    if bear_active and not na(sl_bear) and high >= sl_bear
        bear_active := false
    if bull_active and not na(bx_zone_b)
        box.set_right(bx_zone_b, bar_index + imb_len * 5)
    if bear_active and not na(bx_zone_s)
        box.set_right(bx_zone_s, bar_index + imb_len * 5)
if sig_bull
    entry_bull  := close[1]
    sl_bull     := close[1] - sl_atr * atr_val[1]
    float rb     = entry_bull - sl_bull
    tp1_bull    := entry_bull + tp1_r * rb
    tp2_bull    := entry_bull + tp2_r * rb
    tp3_bull    := entry_bull + tp3_r * rb
    zone_hi_b   := entry_bull + atr_val[1] * 0.35
    zone_lo_b   := entry_bull - atr_val[1] * 0.35
    bull_active := true
    bear_active := false
    line.delete(ln_entry_b)
    line.delete(ln_sl_b)
    line.delete(ln_tp1_b)
    line.delete(ln_tp2_b)
    line.delete(ln_tp3_b)
    box.delete(bx_zone_b)
    label.delete(lb_sig_b)
    label.delete(lb_entry_b)
    label.delete(lb_sl_b)
    label.delete(lb_tp1_b)
    label.delete(lb_tp2_b)
    label.delete(lb_tp3_b)
    line.delete(ln_entry_s)
    line.delete(ln_sl_s)
    line.delete(ln_tp1_s)
    line.delete(ln_tp2_s)
    line.delete(ln_tp3_s)
    box.delete(bx_zone_s)
    label.delete(lb_sig_s)
    label.delete(lb_entry_s)
    label.delete(lb_sl_s)
    label.delete(lb_tp1_s)
    label.delete(lb_tp2_s)
    label.delete(lb_tp3_s)
    ln_entry_b := line.new(bar_index - 1, entry_bull, ext, entry_bull, color=bull_col, width=2, style=line.style_solid)
    ln_sl_b    := line.new(bar_index - 1, sl_bull,    ext, sl_bull,    color=sl_col,                width=2, style=line.style_dashed)
    ln_tp1_b   := line.new(bar_index - 1, tp1_bull,   ext, tp1_bull,   color=color.new(tp1_col, 0), width=1, style=line.style_dotted)
    ln_tp2_b   := line.new(bar_index - 1, tp2_bull,   ext, tp2_bull,   color=color.new(tp2_col, 0), width=1, style=line.style_dotted)
    ln_tp3_b   := line.new(bar_index - 1, tp3_bull,   ext, tp3_bull,   color=color.new(tp3_col, 0), width=1, style=line.style_dotted)
    if show_zone
        bx_zone_b := box.new(bar_index - 1, zone_hi_b, ext, zone_lo_b, bgcolor=zone_col, border_color=color.new(bull_col, 40), border_width=1)
    if show_label
        lb_sig_b   := label.new(bar_index - 1, low[1] - atr_val[1] * 0.6, "▲ QIT LONG", style=label.style_label_up, color=color.new(bull_col, 5), textcolor=color.black, size=size.small)
        lb_entry_b := label.new(ext, entry_bull, "ENTRY  " + str.tostring(entry_bull, format.mintick), style=label.style_label_left, color=color.new(bull_col, 0), textcolor=color.black, size=size.small)
        lb_sl_b    := label.new(ext, sl_bull, "SL  "    + str.tostring(sl_bull, format.mintick), style=label.style_label_left, color=color.new(sl_col,   0), textcolor=color.black, size=size.small)
        lb_tp1_b   := label.new(ext, tp1_bull, "TP1  "   + str.tostring(tp1_bull, format.mintick) + "  (" + str.tostring(tp1_r, "#.#") + "R)", style=label.style_label_left, color=color.new(tp1_col,  0), textcolor=color.black, size=size.small)
        lb_tp2_b   := label.new(ext, tp2_bull, "TP2  "   + str.tostring(tp2_bull, format.mintick) + "  (" + str.tostring(tp2_r, "#.#") + "R)", style=label.style_label_left, color=color.new(tp2_col,  0), textcolor=color.black, size=size.small)
        lb_tp3_b   := label.new(ext, tp3_bull, "TP3  "   + str.tostring(tp3_bull, format.mintick) + "  (" + str.tostring(tp3_r, "#.#") + "R)", style=label.style_label_left, color=color.new(tp3_col,  0), textcolor=color.black, size=size.small)
if sig_bear
    entry_bear   := close[1]
    sl_bear      := close[1] + sl_atr * atr_val[1]
    float rs      = sl_bear - entry_bear
    tp1_bear     := entry_bear - tp1_r * rs
    tp2_bear     := entry_bear - tp2_r * rs
    tp3_bear     := entry_bear - tp3_r * rs
    zone_hi_bear := entry_bear + atr_val[1] * 0.35
    zone_lo_bear := entry_bear - atr_val[1] * 0.35
    bear_active  := true
    bull_active  := false
    line.delete(ln_entry_s)
    line.delete(ln_sl_s)
    line.delete(ln_tp1_s)
    line.delete(ln_tp2_s)
    line.delete(ln_tp3_s)
    box.delete(bx_zone_s)
    label.delete(lb_sig_s)
    label.delete(lb_entry_s)
    label.delete(lb_sl_s)
    label.delete(lb_tp1_s)
    label.delete(lb_tp2_s)
    label.delete(lb_tp3_s)
    line.delete(ln_entry_b)
    line.delete(ln_sl_b)
    line.delete(ln_tp1_b)
    line.delete(ln_tp2_b)
    line.delete(ln_tp3_b)
    box.delete(bx_zone_b)
    label.delete(lb_sig_b)
    label.delete(lb_entry_b)
    label.delete(lb_sl_b)
    label.delete(lb_tp1_b)
    label.delete(lb_tp2_b)
    label.delete(lb_tp3_b)
    ln_entry_s := line.new(bar_index - 1, entry_bear, ext, entry_bear, color=bear_col, w

Показано первые 50% кода (символов: 19787)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 978,70₽ ≈ $24.18