Динамический bgcolor по фазам луны в Pine Script v5

Динамический bgcolor по фазам луны в Pine Script v5 Pine Script
Пошаговое руководство по математическому расчету фаз луны в Pine Script v5 и динамическому изменению цвета фона (bgcolor) графика для квантового анализа.
Суть: Расчет фаз луны в Pine Script v5 строится на вычислении разницы во времени между текущим баром и известным астрономическим новолунием (эпохой) по модулю синодического месяца (29.53059 дней). Полученное значение от 0.0 до 1.0 определяет текущую фазу и динамически меняет цвет фона с помощью функции bgcolor().

Исходный код

Для точного расчета мы используем астрономическую эпоху новолуния от 6 января 2000 года. Этот метод позволяет избежать тяжелых запросов к сторонним серверам и работает полностью автономно на стороне клиента. Если вы хотите объединить этот метод с другими сложными стратегиями, рекомендуем ознакомиться с нашей статьей о том, как реализована реализация стратегии парного трейдинга (Statistical Arbitrage) в Pine Script v5.

//@version=5
indicator('Dynamic Moon Phase Background', overlay=true)

// Эпоха известного новолуния: 6 января 2000 года, 18:14:00 UTC
var float NEW_MOON_EPOCH = 947182440000.0
var float SYNODIC_MONTH = 2551442849.28 // 29.530588853 дней в мс

// Расчет текущей фазы
float time_diff = time - NEW_MOON_EPOCH
float phase_cycle = (time_diff % SYNODIC_MONTH) / SYNODIC_MONTH
float phase = phase_cycle < 0 ? phase_cycle + 1.0 : phase_cycle

// Определение цветов с прозрачностью
color new_moon_color = color.new(color.black, 85)
color waxing_color = color.new(color.orange, 90)
color full_moon_color = color.new(color.blue, 85)
color waning_color = color.new(color.purple, 90)

color bg_color = na

if phase >= 0.975 or phase < 0.025
	bg_color := new_moon_color
else if phase >= 0.025 and phase < 0.475
	bg_color := waxing_color
else if phase >= 0.475 and phase < 0.525
	bg_color := full_moon_color
else
	bg_color := waning_color

bgcolor(bg_color, title='Moon Phase Background')

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

  • NEW_MOON_EPOCH: Точка отсчета (эпоха) в миллисекундах, соответствующая известному новолунию 6 января 2000 года в 18:14:00 UTC.
  • SYNODIC_MONTH: Продолжительность одного лунного цикла (синодический месяц) в миллисекундах, составляющая примерно 29.530588853 суток.
  • phase: Нормализованное значение от 0.0 до 1.0, где 0.0 (и 1.0) — новолуние, 0.25 — первая четверть, 0.5 — полнолуние, а 0.75 — последняя четверть.
  • bgcolor(): Встроенная функция TradingView для изменения цвета заднего фона графика на основе рассчитанной фазы.

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

Чтобы запустить этот скрипт, откройте редактор Pine Editor в TradingView, скопируйте код выше и нажмите кнопку «Добавить на график». Вы увидите, как фон графика плавно меняется в зависимости от лунного цикла. Такой подход часто используется в альтернативном техническом анализе для поиска циклических закономерностей.

При работе на младших таймфреймах вам может потребоваться оптимизация запросов данных. В таких случаях полезно знать, как обойти лимит 15 минут в request.security_lower_tf в Pine Script v5.

Кроме того, если вы занимаетесь высокорискованным трейдингом на крипторынке, обратите внимание на расчет и визуализацию уровней ликвидации Binance Futures (Kingfisher) в Pine Script v5 для улучшения вашей торговой системы.

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