> For the complete documentation index, see [llms.txt](https://docs.cdzv.com/code-zero-visual-trading_ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cdzv.com/code-zero-visual-trading_ru/rukovodstvo-polzovatelya/kak-izmenit-indikator-dlya-raboty-s-cdzv-toolkit.md).

# Как изменить индикатор для работы с CDZV Toolkit

{% hint style="info" %}
Для модификации индикатор должен быть написан на pine-script версии 5&#x20;

//@version=5
{% endhint %}

Для интеграции с CDZV Toolkit можно использовать индикаторы TradingView, отображающие информацию с помощью функции [plot](https://www.tradingview.com/pine-script-reference/v5/#fun_plot).

Все остальные индикаторы, которые имеют открытый исходный код, можно легко **модифицировать**.

CDZV Toolkit обрабатывает два вида входной информации с индикаторов:

1. *Числовые значения* (цена, объем и любое другое **числовое значение с плавающей запятой**).
2. *Сигнал* (это также числовое значение, но оно ограничено: **0 - сигнал отсутствует** или **1 - сигнал присутствует**).

Эти значения можно отправить из индикатора с помощью функции *PineScript* **plot()** с параметром **display = display.data\_window**. Этот параметр указывает, что мы не рисуем ничего на графике но будем доступны для **CDZV Toolkit**.

***Примеры:***

1️⃣ Индикатор рисует на графике надписи (**label**) BUY/SELL или присылает алерты (**alerts**). Нам необходимо передать их в **Condition Manager** как сигналы. <https://www.tradingview.com/script/lSHzm9zV-CM-I-RideTheWave7/>

```
// Здесь оригинальный индикатор рисует надписи
plotshape(buySignalk[1] and showsignalsk and O1[1] > K2 ? AlphaTrend[2] * 0.9999 : na, title='LONG', text='LONG', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))
plotshape(sellSignalk[1] and showsignalsk and O2[1] > K1 ? AlphaTrend[2] * 1.0001 : na, title='SHORT', text='SHORT', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))

// Здесь оригинальный индикатор отсылает алерты
alertcondition(buySignalk[1] and O1[1] > K2, title='Confirmed BUY Alarm', message='BUY SIGNAL APPROVED!')
alertcondition(sellSignalk[1] and O2[1] > K1, title='Confirmed SELL Alarm', message='SELL SIGNAL APPROVED!')
```

Вносим модификации в код индикатора:

```
// Мы добавляем код, для отправки сигналов в CDZV Toolkit
// Мы определили логику рисования и отправки сигналов
// и создаем объект plot(), который отправляет сигнал 0 или 1.
plot(buySignalk[1] and O1[1] > K2 ? 1 : 0, "SIGNAL: BUY", display = display.data_window)
plot(sellSignalk[1] and O2[1] > K1 ? 1 : 0, "SIGNAL: SELL", display = display.data_window)
```

Результат:

<figure><img src="/files/03YUlZGi4zNGyhZXmniE" alt=""><figcaption></figcaption></figure>

2️⃣ Индикатор рисует фракталы/пивоты на графике. Необходимо их цену передать в **CDZV Toolkit.**\
<https://www.tradingview.com/script/1yk1pUCb-CM-I-Williams-Fractals/>

```
// Индикатор рисует фракталы сверху и снизу с offset=-n
plotshape(downFractal, style=shape.triangledown, location=location.belowbar, offset=-n, color=#F44336, size = size.small)
plotshape(upFractal, style=shape.triangleup, location=location.abovebar, offset=-n, color=#009688, size = size.small)
```

добавляем код, передающий цену в CDZV Toolkit:

```
// получаем цену Low и High если ранее найден фрактал
if upFractal
    last_up_price := high[n]

if downFractal
    last_down_price := low[n]

// Мы добавляем код, для отправки цен фракталов в CDZV Toolkit
// создаем объект plot(), который отправляет цену (число с плавающей запятой)
plot(last_up_price, title = 'UP Price', display = display.data_window)
plot(last_down_price, title = 'DOWN Price', display =display.data_window)
```

Результат:

<figure><img src="/files/Qmm4xG7hdUjv9bozMtGq" alt=""><figcaption></figcaption></figure>

3️⃣ Индикатор рисует осциллятор, который меняет свой цвет и необходимо передавать сигналы когда осциллятор **ЗЕЛЕНЫЙ** или **КРАСНЫЙ**. <https://www.tradingview.com/script/JUK476pQ-CM-I-Schaff-Trend-Cycle-STC/>

```
// Находим код отвечающий за цвет осциллятора
mSTC = STC(defLen, fastLen, slowLen)
mColor = mSTC > mSTC[1] ? color.new(color.green, 20) : color.new(color.red, 20)

plot(mSTC, color=mColor, title='STC', linewidth=2)
```

и ниже добавляем логику, которая отправит сигнал **GREEN**/**RED**

```
plot(mSTC > mSTC[1] ? 1 : 0, 'SIGNAL: GREEN', display = display.data_window)
plot(mSTC <= mSTC[1] ? 1 : 0, 'SIGNAL: RED', display = display.data_window)
```

Результат:

<figure><img src="/files/HROKhSIGAYmIbk5ZGNv8" alt=""><figcaption></figcaption></figure>
