🚦Як змінити індикатор для роботи з 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