Change in State of Delivery CISD [AlgoAlpha]
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «change in state of delivery cisd@shepherdfxtradingtools.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.