Стратегия отслеживания тренда с использованием нескольких индикаторов Momentum: канал Дончиана + супертренд + система построения позиции фильтра объема

DC ST MA VOL BO
Дата создания: 2025-02-21 11:47:17 Последнее изменение: 2025-02-21 11:47:17
Копировать: 0 Количество просмотров: 564
2
Подписаться
319
Подписчики

Стратегия отслеживания тренда с использованием нескольких индикаторов Momentum: канал Дончиана + супертренд + система построения позиции фильтра объема Стратегия отслеживания тренда с использованием нескольких индикаторов Momentum: канал Дончиана + супертренд + система построения позиции фильтра объема

Обзор

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

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

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

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

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

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

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

  1. Риск рыночных потрясений: возможны частые ложные сигналы прорыва в период колебаний.
  2. Риск скольжения: в менее ликвидном рынке сигнал прорыва может привести к отклонению цены входа из-за скольжения.
  3. Риск чрезмерного фильтрации: включение фильтрации объема транзакций может привести к упущению некоторых эффективных торговых возможностей.
  4. Чувствительность параметров: Эффект стратегии чувствителен к настройкам параметров и требует тщательной оптимизации.

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

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

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

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

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

// Breakout trading system based on Donchain channel strategy that works best on a weekly chart and daily charts. Weekly is preferred. 

//@version=5

strategy('Donchian BO with Volume Filter and Supertrend', shorttitle='DBO+Vol+ST', default_qty_type=strategy.percent_of_equity, default_qty_value=2, overlay=true)

// Input options to configure backtest date range
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31)
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12)
startYear = input.int(title='Start Year', defval=2016, minval=1800, maxval=2100)
avgVol = input.int(title="Avg Volume length", defval=20)
srcInput = input.source(close, "Source")

// Volume filter toggle
useVolumeFilter = input.bool(true, title='Enable Volume Filter')

endDate = input.int(title='End Date', defval=1, minval=1, maxval=31)
endMonth = input.int(title='End Month', defval=7, minval=1, maxval=12)
endYear = input.int(title='End Year', defval=2030, minval=1800, maxval=2100)

multiplier = input.int(title='SuperTrend Mult', defval=2, minval=1, maxval=12)
stlen = input.int(title='SuperTrend Length', defval=10, minval=1, maxval=12)

length = input.int(21, minval=1)
exit = input.int(3, minval=1, maxval=4, title='Exit Option')  // Use Option 1 to exit using lower band; Use Option 2 to exit using basis line

lower = ta.lowest(length)
upper = ta.highest(length)
basis = math.avg(upper, lower)

// Plotting the Donchian channel
l = plot(lower, color=color.new(color.blue, 0))
u = plot(upper, color=color.new(color.blue, 0))
plot(basis, color=color.new(color.orange, 0))
fill(u, l, color=color.new(color.blue, 90))

// Check if the current bar is in the date range
inDateRange = time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)

// Long trailing stop-loss percentage
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
longStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

// Volume filter: 20-period moving average
volumeMA = ta.sma(volume, avgVol)

// Long entry condition: Donchian breakout + volume filter
longCondition = ta.crossover(srcInput, upper[1]) and (not useVolumeFilter or volume > volumeMA)
longsma = ta.sma(close, 200)

if inDateRange and longCondition
    strategy.entry('Long', strategy.long)

// Exit conditions
if inDateRange and exit == 1
    if ta.crossunder(close, lower[1])
        strategy.close('Long')

if inDateRange and exit == 2
    if ta.crossunder(close, basis[1])
        strategy.close('Long')

[superTrend, dir] = ta.supertrend(multiplier, stlen)
if inDateRange and exit == 3
    if ta.crossunder(close, superTrend)
        strategy.close('Long')

if inDateRange and exit == 4
    if strategy.position_size > 0
        strategy.exit(id='XL TRL STP', stop=longStopPrice)

// Short conditions (commented out for now)
shortCondition = ta.crossunder(close, lower[1])

// Exit all positions when date range ends
if not inDateRange
    strategy.close_all()

// --- Add Supertrend Indicator ---
stColor = dir == 1 ? color.red : color.green
plot(superTrend, color=stColor, title="SuperTrend", linewidth=2)