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

Change in State of Delivery CISD [AlgoAlpha]

change in state of delivery cisd@shepherdfxtradingtools.pine

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

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор «Change in State of Delivery CISD» реализован на Pine Script v6 и предназначен для анализа структуры цены на графике TradingView. Он определяет точки разворота (swing high и swing low) заданного периода, отслеживает уровни ликвидности и выявляет их пробой ценой. При пробое уровня свинга индикатор фиксирует событие «wicked» и при необходимости удаляет устаревшие или уже смягчённые уровни.

Основная функциональность — обнаружение паттерна CISD (Change in State of Delivery), при котором происходит смена состояния доставки цены. Индикатор анализирует соотношение тела свечи и её тени относительно заданного порога допуска (Noise Filter), определяет бычьи и медвежьи варианты CISD и отображает их цветными линиями на графике. При совпадении CISD с ликвидностным забором (liquidity sweep) рисуются дополнительные метки.

Визуализация включает цветные свечи с настраиваемой прозрачностью, линии swing-уровней, графические метки CISD и дашборд в верхней части графика. Индикатор поддерживает шесть условий оповещений для автоматических уведомлений TradingView.

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

НастройкаОписание
tolerence Определяет, какие уровни используются в качестве триггеров CISD. Более высокое значение снижает количество ложных срабатываний. Диапазон от 0 до 1 с шагом 0.1.
len Период обнаружения точек разворота. Более большое значение выявляет долгосрочные свинги.
expiry_bars Количество баров, после которых старые линии ликвидности перестают обновляться.
liquidity_lookback Период просмотра для проверки, был ли противоположный уровень ликвидности забран перед CISD.
green Цвет, используемый для бычьих визуальных элементов и текстов положительного настроения.
red Цвет, используемый для медвежьих визуальных элементов и текстов отрицательного настроения.
t1 Уровень прозрачности тела свечи. Диапазон от 0 до 100.
t2 Уровень прозрачности теней и обводки свечи. Диапазон от 0 до 100.
hide_expired_levels Удаляет линии ликвидности, если они превышают пороговое количество баров до истечения.
hide_mitigated_levels Удаляет линии ликвидности с графика, как только цена их смягчает.
Получить полный код

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

indicator("Change in State of Delivery CISD [AlgoAlpha]", "AlgoAlpha - CISD", true, max_lines_count = 500, behind_chart = false)

tolerence = input.float(0.7, "Noise Filter", group = "Calculations", tooltip = "Determines which levels to use as CSID triggers, a larger setting results in less noise", maxval = 1, minval = 0, step = 0.1)
len = input.int(12, "Swing Period", group = "Calculations", tooltip = "The period to detect swing points, a larger setting will detect longer term swings")
expiry_bars = input.int(100, "Expiry Bars", group = "Calculations", tooltip = "Number of bars after which old liquidity lines stop updating")
liquidity_lookback = input.int(10, "Liquidity Lookback", group = "Calculations", tooltip = "Lookback period to check if opposing liquidity was wicked before a CISD")

green = input.color(#00ffbb, title = "Bullish Colour", group = "Appearance", tooltip = "Color used for bullish visuals and positive sentiment texts.")
red   = input.color(#ff1100, title = "Bearish Colour", group = "Appearance", tooltip = "Color used for bearish visuals and negative sentiment texts.")
t1 = input.int(90, "Candle Body Transperency", maxval = 100, minval = 0, group = "Appearance")
t2 = input.int(40, "Candle Wick/Border Transperency", maxval = 100, minval = 0, group = "Appearance")
hide_expired_levels = input.bool(true, "Hide Expired Levels", group = "Appearance", tooltip = "Delete liquidity levels once they exceed the expiry bar threshold.")
hide_mitigated_levels = input.bool(false, "Hide Mitigated Levels", group = "Appearance", tooltip = "Delete liquidity levels from the chart as soon as price mitigates them.")

pivlow = ta.pivotlow(len, len)
pivhigh = ta.pivothigh(len, len)

var swinghighs = array.new_line()
var swinglows = array.new_line()

if not na(pivhigh)
    swinghighs.unshift(line.new(bar_index-len, high[len], bar_index, high[len], color = color.new(chart.fg_color, 50)))
if not na(pivlow)
    swinglows.unshift(line.new(bar_index-len, low[len], bar_index, low[len], color = color.new(chart.fg_color, 50)))

var float last_wicked_high_level = na
var float last_wicked_low_level = na

wicked_high = false
wicked_low = false

if swinghighs.size() > 0
    for i = swinghighs.size() - 1 to 0
        if i < swinghighs.size()
            l = swinghighs.get(i)
            if bar_index - line.get_x1(l) < expiry_bars
                lvl = line.get_y1(l)
                line.set_x2(l, bar_index)
                if high >= lvl and barstate.isconfirmed
                    if hide_mitigated_levels
                        line.delete(l)
                    swinghighs.remove(i)
                    wicked_high := true
                    last_wicked_high_level := lvl
            else
                if hide_expired_levels
                    line.delete(l)
                    swinghighs.remove(i)

if swinglows.size() > 0
    for i = swinglows.size() - 1 to 0
        if i < swinglows.size()
            l = swinglows.get(i)
            if bar_index - line.get_x1(l) < expiry_bars
                lvl = line.get_y1(l)
                line.set_x2(l, bar_index)
                if low <= lvl and barstate.isconfirmed
                    if hide_mitigated_levels
                        line.delete(l)
                    swinglows.remove(i)
                    wicked_low := true
                    last_wicked_low_level := lvl
            else
                if hide_expired_levels
                    line.delete(l)
                    swinglows.remove(i)

while swinghighs.size() > 100
    line.delete(swinghighs.pop())

while swinglows.size() > 100
    line.delete(swinglows.pop())

bars_since_high = ta.barssince(wicked_high)
bars_since_low = ta.barssince(wicked_low)

var potential_bull_cisd_level = 0.0
var potential_bear_cisd_level = 0.0

var o = 0.0
var c = 0.0

var bear_potential = array.new_float()
var bull_potential = array.new_float()

if close[1] < open[1] and close > open
    bear_potential.unshift(bar_index)
    bear_potential.unshift(open)

if close[1] > open[1] and  close < open
    bull_potential.unshift(bar_index)
    bull_potential.unshift(open)

cisd = 0
origin_lvl = 0.0
origin_idx = 0.0

if bear_potential.size() > 0
    inloop = true
    while inlo

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

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

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

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

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

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

Стоимость полного кода
611,80₽ ≈ $7.48