Найти в Дзене

От идеи до алерта: как собрать скрипт-стратегию в TradingView с нуля

Пошаговый разбор структуры кода на Pine Script: от настройки параметров до торговых сигналов Создание скрипта-стратегии в TradingView начинается с понимания структуры. Любая стратегия состоит из логических блоков, которые решают конкретные задачи. Рассмотрим построение скрипта на примере комплексной системы. Первые строки определяют тип скрипта и создают панель управления с параметрами. //@version=5 strategy("Комплексная стратегия", overlay=true, initial_capital=10000) //НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ param_a = input(1, 'Чувствительность ATR') param_period = input(15, 'Период расчета') // Переключатели индикаторов show_bollinger = input(false, 'Показывать Боллинджер') use_heikin_ashi = input(false, 'Использовать Heikin Ashi') use_linreg = input(false, 'Свечи линейной регрессии') // Параметры индикаторов bb_length = input(20, 'Длина Боллинджера') ema_length = input(50, 'ДлинаEMA') signal_length = input(11, 'Длина сигнальной линии') Что это дает: В интерфейсе TradingView появляется панель с пол
Оглавление

Пошаговый разбор структуры кода на Pine Script: от настройки параметров до торговых сигналов

Создание скрипта-стратегии в TradingView начинается с понимания структуры. Любая стратегия состоит из логических блоков, которые решают конкретные задачи. Рассмотрим построение скрипта на примере комплексной системы.

1. Блок объявления и настроек

Первые строки определяют тип скрипта и создают панель управления с параметрами.

//@version=5
strategy("Комплексная стратегия", overlay=true, initial_capital=10000)

//НАСТРАИВАЕМЫЕ ПАРАМЕТРЫ

param_a = input(1, 'Чувствительность ATR')
param_period = input(15, 'Период расчета')

// Переключатели индикаторов

show_bollinger = input(false, 'Показывать Боллинджер')
use_heikin_ashi = input(false, 'Использовать Heikin Ashi')
use_linreg = input(false, 'Свечи линейной регрессии')

// Параметры индикаторов

bb_length = input(20, 'Длина Боллинджера')
ema_length = input(50, 'ДлинаEMA')
signal_length = input(11, 'Длина сигнальной линии')

Что это дает: В интерфейсе TradingView появляется панель с ползунками и переключателями. Это позволяет тестировать разные настройки без редактирования кода.

2. Блок расчета индикаторов

Каждый индикатор вычисляется независимо, результаты сохраняются в переменные. Вычисление индикаторов:

// Базовые данные (цена)

src = use_heikin_ashi ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close) : close

// Индикатор ATR для волатильности

xATR = ta.atr(param_period)
nLoss = param_a xATR

// Скользящие средние

basis = ta.sma(src, bb_length)
ema_val = ta.ema(src, ema_length)
signal_line = ta.sma(src, signal_length)

// Полосы Боллинджера (только если включены)

dev = 2.0 ta.stdev(src, bb_length)
upper = basis + dev
lower = basis - dev

// Адаптивный трейлинг-стоп (логика обновления)

xATRTrailingStop = 0.0
// ... логика расчета стоп-уровня

Принцип модульности: Каждый индикатор можно отключать через настройки, не ломая общую логику.

3. Блок торговой логики

Сердце стратегии — условия для открытия и закрытия позиций.

// Условие на покупку: цена выше трейлинг-стопа и пробитие вверх

buy_condition = src > xATRTrailingStop and ta.crossover(src, xATRTrailingStop)

// Условие на продажу: цена ниже трейлинг-стопа и пробитие вниз

sell_condition = src < xATRTrailingStop and ta.crossunder(src, xATRTrailingStop)

// Фильтр по тренду (опционально)

trend_filter = src > ema_val
final_buy_condition = buy_condition and trend_filter

Важный момент: Условия должны быть четкими и однозначными. Каждое условие проверяется на каждом баре.

4. Блок исполнения ордеров

Логика преобразуется в торговые приказы.

if final_buy_condition
strategy.entry("Long", strategy.long)
if sell_condition
strategy.close("Long")

// Или для обоюдной стратегии:

// if sell_condition
// strategy.entry("Short", strategy.short)

Рекомендация: Начинать стоит с односторонней стратегии (только long), чтобы упростить тестирование.

5. Блок визуализации

Информация выводится на график для анализа.

// Отображение индикаторов (только если включены)

plot(show_bollinger ? basis : na, color=color.red)
plot(show_bollinger ? upper : na, color=color.blue)
plot(show_bollinger ? lower : na, color=color.blue)
plot(ema_val, color=color.yellow, linewidth=2)

// Сигнальные маркеры

plotshape(final_buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Закраска фона

bgcolor(final_buy_condition ? color.new(color.green, 90) : sell_condition ? color.new(color.red, 90) : na)

Эстетика: Визуализация не влияет на логику, но помогает в ручном анализе.

6. Блок алертов

Система уведомлений о сигналах.

alertcondition(final_buy_condition, "Сигнал на покупку", "Покупка по стратегии")
alertcondition(sell_condition, "Сигнал на продажу", "Продажа по стратегии")

7. Блок тестирования и оптимизации

После написания кода запускается тестирование.

1. Нажать «Добавить на график»

2. Открыть вкладку «Strategy Tester»

3. Анализировать статистику: общая прибыль, максимальная просадка, процент прибыльных сделок

4. Менять параметры в настройках и перезапускать тест

Критерии успешной стратегии:

- Положительная математическое ожидание

- Просадка не более 20-30%

- Не менее 40% прибыльных сделок (для трендовых стратегий)

- Стабильная кривая эквити

Стандартные ошибки новичков

1. Переоптимизация — подгонка параметров под исторические данные. Решение: тестировать на разных периодах и активах.

2. Игнорирование комиссий — в настройках стратегии нужно выставить реалистичные комиссии.

3. Слишком частые сделки — на малых таймфреймах комиссии съедают прибыль.

4. Отсутствие стоп-лосса — в коде обязательно должна быть логика ограничения убытков.

Практический совет

Начинать следует с простой стратегии из 2-3 условий. Например:

- Покупка при пересечении быстрой SMA выше медленной

- Продажа при обратном пересечении

- Фильтр по объему

Такой код займет 15-20 строк, но позволит понять весь цикл: написание → тестирование → оптимизация → добавление алертов.

Следующий шаг: Встроенные функции Pine Script (ta, strategy) содержат все необходимые инструменты. Документация на сайте TradingView — лучший справочник.