RSI для спреда ETH/BTC в Pine Script v5: расчет и визуализация

RSI для спреда ETH/BTC в Pine Script v5: расчет и визуализация НАЛОГИ, ИП и САМОЗАНЯТОСТЬ
Пошаговое руководство по расчету и визуализации индекса относительной силы (RSI) для спреда ETH/BTC в Pine Script v5 с готовым кодом.
Суть: Расчет RSI для спреда ETH/BTC выполняется путем динамического запроса цен закрытия обоих активов через request.security(), вычисления их отношения (спреда) и последующего применения встроенной функции ta.rsi() к полученному ряду данных.

Исходный код

В количественном анализе (Quantitative Analysis) торговля спредом между коррелирующими активами, такими как ETH и BTC, является классической стратегией парного трейдинга (Pairs Trading). Вместо анализа стандартного RSI для одного инструмента, кванты часто оценивают индекс относительной силы синтетического спреда. Это позволяет находить точки экстремального отклонения цен активов друг от друга.

При разработке сложных торговых систем на Pine Script v5, таких как поиск паттернов Гартли, Bat и Butterfly на матрицах в Pine Script v5, часто возникает необходимость анализа относительной силы не одного актива, а целого спреда. Ниже представлена профессиональная реализация такого индикатора.

//@version=5
indicator("Quant Spread RSI [ETH/BTC]", shorttitle="Spread RSI", overlay=false, precision=2)

// Входные параметры для выбора активов и настроек RSI
asset1 = input.symbol("BINANCE:ETHUSDT", title="Base Asset (ETH)")
asset2 = input.symbol("BINANCE:BTCUSDT", title="Quote Asset (BTC)")
rsi_len = input.int(14, title="RSI Period", minval=1)
ob_level = input.int(70, title="Overbought Level", minval=50, maxval=100)
os_level = input.int(30, title="Oversold Level", minval=0, maxval=50)

// Получение данных закрытия баров для обоих активов
close1 = request.security(asset1, timeframe.period, close)
close2 = request.security(asset2, timeframe.period, close)

// Расчет синтетического спреда с проверкой на деление на ноль
spread = close2 != 0.0 ? close1 / close2 : na

// Расчет RSI на основе полученного ряда данных спреда
spread_rsi = ta.rsi(spread, rsi_len)

// Визуализация результатов
plot(spread_rsi, "Spread RSI", color=color.blue, linewidth=2)
hline_ob = hline(ob_level, "Overbought", color=color.red, linestyle=hline.style_dashed)
hline_os = hline(os_level, "Oversold", color=color.green, linestyle=hline.style_dashed)
hline(50, "Neutral", color=color.gray, linestyle=hline.style_dotted)

// Заполнение фона между уровнями перекупленности и перепроданности
fill(hline_ob, hline_os, color=color.new(color.blue, 95), title="RSI Range Fill")

Разбор параметров

  • asset1 и asset2: Входные переменные типа input.symbol, позволяющие пользователю динамически выбирать любые активы для расчета спреда прямо из настроек индикатора. По умолчанию установлены ETHUSDT и BTCUSDT.
  • request.security(): Функция, используемая для запроса исторических данных по указанным тикерам на текущем таймфрейме (timeframe.period).
  • spread: Синтетический ряд данных, представляющий собой отношение цен закрытия первого актива к цене закрытия второго. Защищен тернарным оператором от деления на ноль.
  • ta.rsi(): Встроенная математическая функция Pine Script v5, которая рассчитывает индекс относительной силы. В отличие от стандартного применения к цене закрытия одного актива, здесь она принимает на вход наш кастомный ряд spread.

Как запустить

Для запуска индикатора выполните следующие шаги:

1. Откройте платформу TradingView и перейдите на вкладку любого графика.

2. В нижней панели откройте вкладку Pine Editor (Редактор Pine).

3. Скопируйте представленный выше код и вставьте его в редактор, заменив весь существующий текст.

4. Нажмите кнопку Add to Chart (Добавить на график) на панели редактора.

5. Настройте алерты или автоматизируйте торговлю. Для этого отлично подойдет интеграция Pine Script v5 с Finandy через вебхуки.

Если вы хотите расширить этот индикатор до поиска разворотных точек на самом графике спреда, рекомендуем изучить статью Pine Script v5: Поиск паттерна ‘Три маленьких индейца’ с циклами for.

Оцените статью
FinFluct