Расширенная количественная торговая стратегия, сочетающая динамические полосы Боллинджера с индикатором PSAR

BB PSAR SMA TP SL
Дата создания: 2025-02-18 14:11:00 Последнее изменение: 2025-02-18 14:11:00
Копировать: 0 Количество просмотров: 355
1
Подписаться
1617
Подписчики

Расширенная количественная торговая стратегия, сочетающая динамические полосы Боллинджера с индикатором PSAR

Обзор

Это комплексная торговая стратегия в сочетании с буринской и параллельной линиями, управляемая с использованием фиксированного соотношения риска и прибыли. Эта стратегия работает в основном во время торговли в течение дня, чтобы идентифицировать торговые возможности путем прорыва цены в буринской зоне и наклонной графической форме, а также использовать индикатор PSAR для подтверждения тенденции.

Стратегический принцип

Стратегия использования множества технических индикаторов для подтверждения торговых сигналов:

  1. Использование 20-циклической полосы Брин в качестве основного индикатора диапазона колебаний цен
  2. Используйте индикатор PSAR ((начальное значение 0.02, максимальное значение 0.2) в качестве инструмента подтверждения тренда
  3. Расчет соотношения сущностей шнуров ((сущности длины / общая длина ≥ 0,33) для обеспечения надежности сигнала
  4. Выполнение сделки в указанном окне времени торгов ((GMT-5 7:30-16:00)
  5. Условия многоголового входа: цена закрытия пробивает сверхрельсовые и соответствует требованиям к соотношению активов
  6. Вступительные условия: цена закрытия пробивает низкую траекторию, а соотношение ценных бумаг соответствует требованиям

Стратегические преимущества

  1. Улучшение надежности сигнала в сочетании с множеством технических показателей
  2. Использование фиксированного риско-прибыльности соотношения ((1:3)), способствующее долгосрочной стабильности прибыли
  3. Фильтрация по времени, чтобы избежать помех в период низкой ликвидности
  4. Фильтрация с использованием пропорционального пропорционального пропорционального пропорционального пропорционального пропорционального пропорционального пропорционального
  5. Настройка динамических целей по остановке потерь и прибыли для адаптации к рыночным колебаниям
  6. Ясная логика стратегии, ее легко понять и оптимизировать

Стратегический риск

  1. Возможное скольжение на рынке с высокой волатильностью
  2. Фиксированный риск-прибыль может быть больше, чем упущенная часть возможности получения прибыли.
  3. Временная фильтрация может упустить важные рыночные возможности
  4. Несколько индикаторов могут вызвать задержку сигнала
  5. В условиях нестабильных рынков возможны убытки

Направление оптимизации стратегии

  1. Введение адаптивных циклов поясов для адаптации к различным рыночным условиям
  2. Риск-выгода по сравнению с механизмами установки
  3. Добавить индикатор объема в качестве вспомогательного подтверждения
  4. Оптимизация параметров PSAR для улучшения эффективности отслеживания тенденций
  5. Присоединяйтесь к фильтру рыночных колебаний
  6. Разработка более интеллектуальных фильтров времени

Подвести итог

Стратегия создает целостную торговую систему, используя в совокупности брин-полосы, показатели PSAR и анализ набросков. Основные преимущества стратегии заключаются в синхронном взаимодействии нескольких технических показателей и строгом управлении рисками. Хотя существуют некоторые присущие риски, но с помощью рекомендованного направления оптимизации можно еще больше повысить стабильность и прибыльность стратегии.

Исходный код стратегии
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Estrategia Bollinger con PSAR y TP Máximo/ Mínimo", overlay=true)

// Parámetros de las Bandas de Bollinger
bb_length = input.int(20, title="Periodo de Bandas de Bollinger", minval=1)
bb_stddev = input.float(2.0, title="Desviación Estándar", step=0.1)

// Parámetros del Parabolic SAR
psar_start = input.float(0.02, title="PSAR Factor Inicial", step=0.01)
psar_increment = input.float(0.02, title="PSAR Incremento", step=0.01)
psar_max = input.float(0.2, title="PSAR Máximo", step=0.01)

// Cálculo de Bandas de Bollinger
basis = ta.sma(close, bb_length)
upper_band = basis + bb_stddev * ta.stdev(close, bb_length)
lower_band = basis - bb_stddev * ta.stdev(close, bb_length)

// Cálculo del Parabolic SAR
psar = ta.sar(psar_start, psar_increment, psar_max)

// Cálculo del cuerpo de la vela
body_high = math.max(open, close)
body_low = math.min(open, close)
body_length = body_high - body_low
total_length = high - low
body_ratio = body_length / total_length

// Condiciones de Entrada
long_condition = close > upper_band and body_ratio >= 0.33
short_condition = close < lower_band and body_ratio >= 0.33

// Filtro de tiempo: Operar solo de 7:30 AM a 4:00 PM hora colombiana
start_time = timestamp("GMT-5", year, month, dayofmonth, 7, 30)
end_time = timestamp("GMT-5", year, month, dayofmonth, 16, 0)
time_condition = (time >= start_time) and (time <= end_time)

// Variables para mantener el TP máximo y mínimo
var float max_tp = na
var float min_tp = na
var float dynamic_stop = na

// Condiciones de Entrada y Salida
if (long_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = low  // SL en el mínimo de la vela
    take_profit = entry_price + 3 * (entry_price - stop_loss)  // TP con relación 1:3
    strategy.entry("Compra", strategy.long)
    strategy.exit("Exit Compra", "Compra", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación larga
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_up, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small)

if (short_condition and time_condition)
    entry_price = close  // Precio de entrada
    stop_loss = high  // SL en el máximo de la vela
    take_profit = entry_price - 3 * (stop_loss - entry_price)  // TP con relación 1:3
    strategy.entry("Venta", strategy.short)
    strategy.exit("Exit Venta", "Venta", stop=stop_loss, limit=take_profit)

    // Dibujar las etiquetas para SL y TP para la operación corta
    label.new(bar_index, stop_loss, text="SL: " + str.tostring(stop_loss), style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
    label.new(bar_index, take_profit, text="TP: " + str.tostring(take_profit), style=label.style_label_up, color=color.green, textcolor=color.white, size=size.small)

// Dibujar Bandas de Bollinger
plot(upper_band, color=color.red, title="Banda Superior")
plot(lower_band, color=color.green, title="Banda Inferior")
plot(basis, color=color.blue, title="Media Base")

// Dibujar Parabolic SAR
plot(psar, style=plot.style_circles, color=color.orange, title="Parabolic SAR")