Стратегия следования за трендом на основе стандартного отклонения «Тройные полосы Боллинджера»

BB SMA SD RR
Дата создания: 2025-02-20 16:16:14 Последнее изменение: 2025-02-20 16:16:14
Копировать: 1 Количество просмотров: 372
2
Подписаться
319
Подписчики

Стратегия следования за трендом на основе стандартного отклонения «Тройные полосы Боллинджера» Стратегия следования за трендом на основе стандартного отклонения «Тройные полосы Боллинджера»

Обзор

Стратегия представляет собой торговую систему для отслеживания трендов, основанную на стандартном отклонении по буринской полосе. Стратегия определяет силу тренда, наблюдая за тремя последовательными нитями, относящимися к положению буринской полосы вниз, и торгует, когда тренд устанавливается. Система использует фиксированный риск-прибыль для управления риском каждой сделки.

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

Основная логика стратегии основана на следующих пунктах:

  1. Используйте 20-циклические скользящие средние как среднюю полосу в Бринском поясе, а также используйте двойной стандартный разрыв для вычисления верхней и нижней полосы.
  2. Система считает, что восходящая тенденция уже установлена, когда закрытие трех последовательных ниток находится выше верхней линии, и делает больше, когда третий ниток закрывается.
  3. Когда ценовые показатели за закрытие трех последовательных линий находятся ниже рельсов, система считает, что понижающая тенденция уже установлена, и при закрытии третьей линии наступает пустота.
  4. Стоп-убыток устанавливается на предельном значении шнура, находящегося на первом сигнале входа.
  5. Целевые цены устанавливаются в соответствии с риском-прибылью в соотношении 1:1, то есть расстояние от целевой прибыли равно расстоянию от остановки убытка.

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

  1. Сигнальный механизм подтверждения надежен - требуется три последовательных прорыва проводов через ленту Брин, что эффективно снижает риск ложного прорыва.
  2. Управление рисками обосновано - управление сделками с использованием фиксированного соотношения риска и прибыли, избегая чрезмерных потерь от одной сделки.
  3. Эффекты отслеживания тенденций заметны - стандартные отклонения в лентах Брин позволяют стратегии адаптироваться к изменениям волатильности рынка.
  4. Правила исполнения ясны - установка входных, остановочных и прибыльных целей имеет четкие количественные критерии, без необходимости субъективного суждения.

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

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

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

  1. Добавление фильтра силы тренда - можно ввести индикаторы тренда, такие как ADX или MACD, для улучшения качества сигнала.
  2. Оптимизированная настройка риска-прибыли - риско-прибыль может быть скорректирована в зависимости от динамики волатильности рынка.
  3. Улучшение механизмов остановки - рассмотрите механизмы увеличения мобильных остановок или разбивки прибыли, чтобы лучше понять основные тенденции.
  4. Добавление подтверждения транзакции - увеличение подтверждения прорыва транзакции при генерировании сигнала, повышение надежности сигнала.

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

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

Исходный код стратегии
/*backtest
start: 2024-11-01 00:00:00
end: 2025-02-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Bollinger Band Buy and Sell Strategy (Entry at Close of 3rd Candle)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=0)

// Bollinger Band settings
length = input.int(20, "Bollinger Band Length")
mult = input.float(2.0, "Standard Deviation Multiplier")
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper_band = basis + dev
lower_band = basis - dev

// Plot Bollinger Bands
plot(upper_band, "Upper Band", color.blue)
plot(lower_band, "Lower Band", color.red)

// Initialize variables
var float buyEntryPrice = na
var float buyStopLoss = na
var float buyTargetPrice = na

var float sellEntryPrice = na
var float sellStopLoss = na
var float sellTargetPrice = na

// Buy Condition: Last 3 candles closed above upper band
buyCondition = close[2] > upper_band[2] and 
               close[1] > upper_band[1] and 
               close > upper_band

// Sell Condition: Last 3 candles closed below lower band
sellCondition = close[2] < lower_band[2] and   close[1] < lower_band[1] and   close < lower_band

// Buy Logic
if buyCondition and strategy.position_size == 0
    buyEntryPrice := close  // Entry at the close of the 3rd candle
    buyStopLoss := low[2]   // Low of the earliest candle in the 3-candle sequence
    buyTargetPrice := buyEntryPrice + (buyEntryPrice - buyStopLoss)
    
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy Exit", "Buy", stop=buyStopLoss, limit=buyTargetPrice)
    
    // Plot buy signal arrow on the entry candle
    label.new(bar_index, low, "▲", color=color.green, style=label.style_label_up, yloc=yloc.belowbar)

// Sell Logic
if sellCondition and strategy.position_size == 0
    sellEntryPrice := close  // Entry at the close of the 3rd candle
    sellStopLoss := high[2]  // High of the earliest candle in the 3-candle sequence
    sellTargetPrice := sellEntryPrice - (sellStopLoss - sellEntryPrice)
    
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell Exit", "Sell", stop=sellStopLoss, limit=sellTargetPrice)
    
    // Plot sell signal arrow on the entry candle
    label.new(bar_index, high, "▼", color=color.red, style=label.style_label_down, yloc=yloc.abovebar)

// Plot stop loss and target levels for buy trades
plot(strategy.position_size > 0 ? buyStopLoss : na, "Buy Stop Loss", color.red, 2, plot.style_linebr)
plot(strategy.position_size > 0 ? buyTargetPrice : na, "Buy Target", color.green, 2, plot.style_linebr)

// Plot stop loss and target levels for sell trades
plot(strategy.position_size < 0 ? sellStopLoss : na, "Sell Stop Loss", color.red, 2, plot.style_linebr)
plot(strategy.position_size < 0 ? sellTargetPrice : na, "Sell Target", color.green, 2, plot.style_linebr)