В процессе загрузки ресурсов... загрузка...

Многоуровневая количественная стратегия торговли, основанная на дивергенции тренда полос Боллинджера

Автор:Чао Чжан, Дата: 2024-12-27 15:52:41
Тэги:ББЕМАSMAstdevBBDIVТенденция

img

Обзор

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

Принципы стратегии

Стратегия основана на следующих ключевых элементах:

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

Преимущества стратегии

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

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

  1. Может привести к частым сделкам на различных рынках
  2. Потенциальное отставание при резких изменениях тренда
  3. Оптимизация параметров сопряжена с риском переподстройки
  4. Риск сдвига в периоды высокой волатильности рынка
  5. Требует постоянного мониторинга эффективности индикатора пропускной способности

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

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("BBDIV_Strategy", overlay=true)

// Inputs for Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Multiplier")

// Calculate Bollinger Bands
basis = ta.sma(close, length)
deviation = mult * ta.stdev(close, length)
upperBB = basis + deviation
lowerBB = basis - deviation

// Calculate Bollinger Band width
bb_width = upperBB - lowerBB
prev_width = ta.valuewhen(not na(bb_width[1]), bb_width[1], 0)
prev_prev_width = ta.valuewhen(not na(bb_width[2]), bb_width[2], 0)

// Determine BB state
bb_state = bb_width > prev_width and prev_width > prev_prev_width ? 1 : bb_width < prev_width and prev_width < prev_prev_width ? -1 : 0

// Assign colors based on BB state
bb_color = bb_state == 1 ? color.green : bb_state == -1 ? color.red : color.gray

// Highlight candles closed outside BB
candle_size = high - low
highlight_color = (candle_size > bb_width / 2 and close > upperBB) ? color.new(color.green, 50) : (candle_size > bb_width / 2 and close < lowerBB) ? color.new(color.red, 50) : na

bgcolor(highlight_color, title="Highlight Candles")

// Plot Bollinger Bands
plot(upperBB, title="Upper BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(lowerBB, title="Lower BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(basis, title="Middle BB", color=color.blue, linewidth=1, style=plot.style_line)

// Calculate EMA 200
ema200 = ta.ema(close, 200)

// Plot EMA 200
plot(ema200, title="EMA 200", color=color.orange, linewidth=2, style=plot.style_line)

// Strategy logic
enter_long = highlight_color == color.new(color.green, 50)
exit_long = highlight_color == color.new(color.red, 50)

if (enter_long)
    strategy.entry("Buy", strategy.long)

if (exit_long)
    strategy.close("Buy")

// Display profit at close
if (exit_long)
    var float entry_price = na
    var float close_price = na
    var float profit = na

    if (strategy.opentrades > 0)
        entry_price := strategy.opentrades.entry_price(strategy.opentrades - 1)
        close_price := close
        profit := (close_price - entry_price) * 100 / entry_price * 2 * 10 // Assuming 1 pip = 0.01 for XAUUSD
        label.new(bar_index, high + (candle_size * 2), str.tostring(profit, format.mintick) + " USD", style=label.style_label_up, color=color.green)


Связанные

Больше