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

Code Zero Visual Trading for TradingView

Для модификации индикатор должен быть написан на pine-script версии 5

//@version=5

Для интеграции с CDZV Toolkit можно использовать индикаторы TradingView, отображающие информацию с помощью функции 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)

Результат:

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)

Результат:

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)

Результат:

Last updated