Концепция объемной торговли Donchian Channels

Автор:Чао Чжан, Дата: 2023-12-08 11:00:05
Тэги:

img

Обзор

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

Принципы

Данная стратегия основана на индикаторе Donchian Channels. Donchian Channels - это каналы, на которых в течение определенного периода выделяются самые высокие и самые низкие цены.

Upper Rail = Самая высокая цена за последние n периодов Lower Rail = Самая низкая цена за последние n периодов

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

Конкретная логика торговли:

  1. Нарисуйте верхнюю рельсу Дончианских каналов с использованием самой высокой цены за последние n периодов
  2. Когда цена закрытия прорвется через верхнюю рельсу, займите длинный
  3. Приобретение прибыли путем остановки после закрытия, когда цена закрытия опускается обратно вблизи нижней рельсы или до заранее установленной точки остановки потери

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

Преимущества этой стратегии включают:

  1. Идея стратегии ясна и легко понятна и реализована
  2. Donchian Channels является зрелым и надежным индикатором для оценки направления тренда
  3. Он автоматически определяет каналы без ручного вмешательства.
  4. Настраиваемые параметры делают его очень адаптивным
  5. Он содержит механизмы остановки потерь для ограничения потерь.

Риски

Существуют также некоторые риски:

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

Решения:

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

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

Эта стратегия может быть дополнительно оптимизирована в следующих областях:

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

Резюме

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


/*backtest
start: 2022-12-07 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Giovanni_Trombetta

// Strategy to capture price channel breakouts

//@version=4
strategy("ChannelsBreakout", max_bars_back=50, overlay=true)

instrument = input(1, title = "Select 1: Stock/Forex, 2: Future")
money = input(10000, title = "Money for each trade")
backtest_start = input(2000, "Insert first year to backtest")
period = input(50, title = "Period in bars of Donchian Channel")
monetary_stoploss = input(1000, title = "Monetary Stop Loss")

quantity = if instrument != 1 
    1
else
    int(money / close)
    
upBarrier = highest(high,period)
downBarrier = lowest(low,period)
up = highest(high,period / 4)
down = lowest(low,period / 4)

plot(upBarrier, color=color.green, linewidth=2)
plot(downBarrier, color=color.red, linewidth=2)
plot(up, color=color.lime, linewidth=1)
plot(down, color=color.orange, linewidth=2)

longCondition = crossover(close, upBarrier[1]) and year >= backtest_start

if (longCondition)
    strategy.entry("Long", strategy.long, quantity, when = strategy.position_size == 0)

closeCondition = crossunder(close, down[1]) or down < down[1]

if (closeCondition)
    strategy.close("Long", comment = "Trailing")
    
stop_level = strategy.position_avg_price - monetary_stoploss / strategy.position_size
strategy.exit("StopLoss", from_entry = "Long", stop = stop_level)
plot(stop_level, color=color.yellow, linewidth=2)

// l = label.new(bar_index, na,
//   text="PineScript Code", color= color.lime, textcolor = color.white,
//   style=label.style_labelup, yloc=yloc.belowbar, size=size.normal)
// label.delete(l[1])

Больше