Эта стратегия основана на известной торговой системе Turtle Trading, используя Donchian Channel для выявления прорывов и ATR для установки стоп-лосса для следования тренду. Преимущество заключается в сильной способности контроля за снижением, эффективно ограничивая потерю на одной сделке. Однако адаптивность между различными торговыми инструментами слаба и требует настройки параметров. В целом, как вводная версия торговой системы Turtle Trading, эта стратегия может использоваться для проверки эффективности правил торговой системы Turtle Trading и также служит базовой количественной торговой стратегией.
Стратегия основывается на двух показателях: Дончианском канале и ATR.
Канал Дончиана по умолчанию имеет длину 20 дней, и он содержит 20-дневный максимальный максимум и минимальный минимум.
ATR измеряет волатильность рынка и используется для установки стоп-лосса. Период ATR по умолчанию составляет 20 дней.
Конкретная логика торговли:
Сделайте длинный вывод, когда цена выйдет выше верхней полосы.
Установите стоп-лосс по низкой цене при входе минус 2N ATR.
Закрыть длинную позицию, когда цена опустится ниже нижней полосы.
Сокращайте, когда цена опустится ниже нижней полосы.
Установите стоп-лосс по высокой цене входа плюс 2N ATR.
Закрыть короткую позицию, когда цена превысит верхнюю полосу.
В целом, стратегия определяет направление тренда и сигналы входа с помощью Donchian Channel и контролирует риск с помощью ATR-стоп-лосса, чтобы следовать тенденциям.
Основными преимуществами этой стратегии являются:
Сильная способность контролировать снижение. ATR Stop Loss может эффективно ограничить однократные потери.
Способность следить за тенденциями.
Применяется для инструментов с высокой волатильностью.
Простая и понятная логика, легко понятная и реализуемая.
Гибкость оптимизации с помощью языка Python.
Некоторые риски этой стратегии:
Параметры канала нуждаются в оптимизации для различных инструментов и временных рамок.
Риск последовательной остановки убытков: при волатильных рыночных условиях может возникнуть множество триггеров остановки убытков.
Параметр ATR нуждается в обратном тестировании. ATR напрямую влияет на стоп-лосс и должен корректироваться на основе волатильности.
Потенциально слишком высокая частота торговли. Слишком много сигналов может произойти под диапазоном рынка.
Ограниченный потенциал прибыли. Стратегия фокусируется на стоп-лос и не может полностью охватить тенденционные прибыли.
Недостаточная стоп-лосс во время волатильных движений.
Стратегия может быть улучшена в следующих аспектах:
Оптимизировать параметры канала для различных приборов.
Добавьте фильтры, чтобы избежать слишком много сигналов под диапазоном рынка.
Оптимизировать параметр периода ATR и влияние испытания на остановку потерь.
Добавьте пирамиду для увеличения размера позиции, чтобы максимизировать прибыль от тренда.
Включить другие индикаторы, такие как MACD, KD, чтобы избежать ложных сигналов.
Корректировка стоп-лосса на основе расходов на скольжение и комиссионные.
Испытать адаптивность между различными инструментами и оптимизировать параметры.
Как вводная версия торговой системы Turtle, эта стратегия имеет простую и ясную логику, сильную способность к контролю за снижением и может эффективно подтвердить принципы торговой системы Turtle. Но адаптивность между инструментами слаба, и параметры должны быть настроены на основе конкретных инструментов. С оптимизациями, такими как настройка параметров, добавление фильтров, это может служить базовой тенденцией после стратегии количественной торговли.
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Based on Turtle traders strategy: buy/sell on Donchian breakouts and stop loss on ATR 2x // initial version considerations : //// 1. Does not consider filter for avoiding new entries after winning trades (filtering rule from Turtle Strategy on 20 day breakout strategy) //// 2. Does not consider pyramiding (aditional entries after 1N price movements) strategy("Turtle trading strategy (Donchian/ATR)", overlay=true) enter_period = input(20, minval=1, title="Enter Channel") exit_period = input(10, minval=1, title="Exit Channel") offset_bar = input(0,minval=0, title ="Offset Bars") direction = input("Long",options=["Long","Short"],title="Direction") max_length = max(enter_period,exit_period) atrmult = input(2,title="ATR multiplier (Stop Loss)") atrperiod = input(20,title="ATR Period") closed_pos = false dir_long = direction == "Long"? true : false atr = atr(atrperiod) upper = dir_long ? highest(enter_period): highest(exit_period) lower = dir_long ? lowest(exit_period): lowest(enter_period) atrupper = close + atr atrlower = close - atr plotted_atr = dir_long ? atrlower : atrupper //basis = avg(upper, lower) l = plot(lower, style=line, linewidth=3, color=lime, offset=1) u = plot(upper, style=line, linewidth=3, color=lime, offset=1) a = plot(plotted_atr, style=line,linewidth=2,color=red,offset=1) //plot(basis, color=yellow, style=line, linewidth=1, title="Mid-Line Average") //break upper Donchian (with 1 candle offset) (buy signal) break_up = (close >= upper[1]) //break lower Donchian (with 1 candle offset) (sell signal) break_down = (close <= lower[1]) stop_loss = dir_long ? (close<=plotted_atr[1]) : (close>=plotted_atr[1]) if break_up and dir_long strategy.entry("buy", strategy.long, 1) closed_pos :=false if (break_down or stop_loss) and dir_long strategy.close("buy") if break_down and not dir_long strategy.entry("sell", strategy.short, 1) closed_pos :=false if (break_up or stop_loss) and not dir_long strategy.close("sell") closed_pos :=true losing_trade = strategy.equity[0]<strategy.equity[1] //plotshape(losing_trade,text="Losing!") plotshape(stop_loss,style=dir_long?shape.labeldown:shape.labelup,text="Stop!") //plot(strategy.equity)