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

Адаптивный прорыв Боллинджера с системой количественной стратегии скользящего среднего

Автор:Чао Чжан, Дата: 2024-11-27 15:55:28
Тэги:ББМ.А.SMA

img

Обзор

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

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

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

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

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

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

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

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

Руководство по оптимизации

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

Резюме

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


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BB Breakout with MA 100 Strategy", overlay=true)

// Parameter Bollinger Bands
length = input(20, title="BB Length")
stdDev = input(2.0, title="BB Standard Deviation")

// Hitung Bollinger Bands
basis = ta.sma(close, length)
dev = stdDev * ta.stdev(close, length)
upperBB = basis + dev
lowerBB = basis - dev

// Hitung Moving Average 100
ma100 = ta.sma(close, 100)

// Logika untuk sinyal beli dan jual
longCondition = close > upperBB and close[1] <= upperBB[1]
shortCondition = close < lowerBB and close[1] >= lowerBB[1]

// Menentukan ukuran posisi (jumlah lot)
size = strategy.equity / close // Menentukan ukuran posisi berdasarkan ekuitas saat ini

// Eksekusi order
if (longCondition)
    strategy.entry("Long", strategy.long, qty=size)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=size)

// Menutup posisi ketika kondisi terbalik
if (longCondition and strategy.position_size < 0)
    strategy.close("Short")

if (shortCondition and strategy.position_size > 0)
    strategy.close("Long")

// Plotting
plot(upperBB, color=color.red, title="Upper BB")
plot(lowerBB, color=color.green, title="Lower BB")
plot(basis, color=color.blue, title="Basis BB")
plot(ma100, color=color.orange, title="MA 100")

// Menambahkan informasi ke grafik
bgcolor(longCondition ? color.new(color.green, 90) : na, title="Buy Signal Background")
bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Sell Signal Background")


Связанные

Больше