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

Количественная стратегия высокочастотных полос Боллинджера в сочетании с системой высоко-низкого прорыва

Автор:Чао Чжан, Дата: 2024-12-04 15:15:50
Тэги:ББSMAСДRRHHЛЛ

img

Обзор

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

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

Основная логика стратегии основана на двух основных условиях: сигнал покупки запускается, когда цена превышает предыдущий максимум, и этот максимум находится ниже нижней полосы Боллинджера; сигнал продажи запускается, когда цена превышает предыдущий минимум, и этот минимум находится выше верхней полосы Боллинджера. Параметры полос Боллинджера используют 20-периодную скользящую среднюю с 2 стандартными отклонениями для определения диапазона волатильности рынка и областей перекупки / перепродажи. После запуска торговых сигналов система автоматически устанавливает соответствующие уровни стоп-лосса и целевых уровней, визуализируя их через различные стили линий.

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

  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-03 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Band Scalping", overlay=true)

// Input for Bollinger Bands length and standard deviation
bbLength = input(20, title="Bollinger Bands Length")
stdDev = input(2.0, title="Bollinger Bands Std Dev")

// Calculate and plot the Bollinger Bands
basis = ta.sma(close, bbLength)
deviation = stdDev * ta.stdev(close, bbLength)
upperBB = basis + deviation
lowerBB = basis - deviation

// Get previous candle's values
prevHigh = high[1]   // Previous candle high
prevLow = low[1]     // Previous candle low

// Buy Signal Condition: Current high crossed above previous high and previous high is below the lower Bollinger Band
buyCondition = ta.crossover(high, prevHigh) and (prevHigh < lowerBB[1])

// Sell Signal Condition: Current low crossed below previous low and previous low is above the upper Bollinger Band
sellCondition = ta.crossunder(low, prevLow) and (prevLow > upperBB[1])

// Entry and exit for Buy signals
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    // Calculate target and stop loss
    stopLossPrice = prevLow
    targetPrice = prevHigh + (prevHigh - stopLossPrice)  // 1:1 RR target

    // Set stop loss and target orders
    strategy.exit("Sell", "Buy", limit=targetPrice, stop=stopLossPrice)

    // // Plot entry line
    // line.new(x1=bar_index, y1=prevHigh, x2=bar_index + 12, y2=prevHigh, color=color.green, width=2, style=line.style_solid)
    // // Plot stop loss line
    // line.new(x1=bar_index, y1=stopLossPrice, x2=bar_index + 12, y2=stopLossPrice, color=color.red, width=1, style=line.style_dashed)
    // // Plot target line
    // line.new(x1=bar_index, y1=targetPrice, x2=bar_index + 12, y2=targetPrice, color=color.blue, width=2, style=line.style_solid)

// Entry and exit for Sell signals
if (sellCondition)
    strategy.entry("Sell", strategy.short)
    // Calculate target and stop loss
    stopLossPriceSell = prevHigh
    targetPriceSell = prevLow - (stopLossPriceSell - prevLow)  // 1:1 RR target

    // Set stop loss and target orders
    strategy.exit("Cover", "Sell", limit=targetPriceSell, stop=stopLossPriceSell)

    // // Plot entry line
    // line.new(x1=bar_index, y1=prevLow, x2=bar_index + 12, y2=prevLow, color=color.red, width=2, style=line.style_solid)
    // // Plot stop loss line
    // line.new(x1=bar_index, y1=stopLossPriceSell, x2=bar_index + 12, y2=stopLossPriceSell, color=color.green, width=1, style=line.style_dashed)
    // // Plot target line
    // line.new(x1=bar_index, y1=targetPriceSell, x2=bar_index + 12, y2=targetPriceSell, color=color.blue, width=2, style=line.style_solid)

// Plotting Bollinger Bands with 70% transparency
plot(upperBB, color=color.red, title="Upper Bollinger Band", transp=70)
plot(lowerBB, color=color.green, title="Lower Bollinger Band", transp=70)
plot(basis, color=color.blue, title="Middle Band", transp=70)


Связанные

Больше