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

Стратегия выхода на рынок, основанная на торговле черепахами

Автор:Чао Чжан, Дата: 2023-10-17 17:22:34
Тэги:

img

Обзор

Эта стратегия основана на известной торговой системе Turtle Trading, используя Donchian Channel для выявления прорывов и ATR для установки стоп-лосса для следования тренду. Преимущество заключается в сильной способности контроля за снижением, эффективно ограничивая потерю на одной сделке. Однако адаптивность между различными торговыми инструментами слаба и требует настройки параметров. В целом, как вводная версия торговой системы Turtle Trading, эта стратегия может использоваться для проверки эффективности правил торговой системы Turtle Trading и также служит базовой количественной торговой стратегией.

Принципы

Стратегия основывается на двух показателях: Дончианском канале и ATR.

Канал Дончиана по умолчанию имеет длину 20 дней, и он содержит 20-дневный максимальный максимум и минимальный минимум.

ATR измеряет волатильность рынка и используется для установки стоп-лосса. Период ATR по умолчанию составляет 20 дней.

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

  1. Сделайте длинный вывод, когда цена выйдет выше верхней полосы.

  2. Установите стоп-лосс по низкой цене при входе минус 2N ATR.

  3. Закрыть длинную позицию, когда цена опустится ниже нижней полосы.

  4. Сокращайте, когда цена опустится ниже нижней полосы.

  5. Установите стоп-лосс по высокой цене входа плюс 2N ATR.

  6. Закрыть короткую позицию, когда цена превысит верхнюю полосу.

В целом, стратегия определяет направление тренда и сигналы входа с помощью Donchian Channel и контролирует риск с помощью ATR-стоп-лосса, чтобы следовать тенденциям.

Анализ преимуществ

Основными преимуществами этой стратегии являются:

  1. Сильная способность контролировать снижение. ATR Stop Loss может эффективно ограничить однократные потери.

  2. Способность следить за тенденциями.

  3. Применяется для инструментов с высокой волатильностью.

  4. Простая и понятная логика, легко понятная и реализуемая.

  5. Гибкость оптимизации с помощью языка Python.

Анализ рисков

Некоторые риски этой стратегии:

  1. Параметры канала нуждаются в оптимизации для различных инструментов и временных рамок.

  2. Риск последовательной остановки убытков: при волатильных рыночных условиях может возникнуть множество триггеров остановки убытков.

  3. Параметр ATR нуждается в обратном тестировании. ATR напрямую влияет на стоп-лосс и должен корректироваться на основе волатильности.

  4. Потенциально слишком высокая частота торговли. Слишком много сигналов может произойти под диапазоном рынка.

  5. Ограниченный потенциал прибыли. Стратегия фокусируется на стоп-лос и не может полностью охватить тенденционные прибыли.

  6. Недостаточная стоп-лосс во время волатильных движений.

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

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

  1. Оптимизировать параметры канала для различных приборов.

  2. Добавьте фильтры, чтобы избежать слишком много сигналов под диапазоном рынка.

  3. Оптимизировать параметр периода ATR и влияние испытания на остановку потерь.

  4. Добавьте пирамиду для увеличения размера позиции, чтобы максимизировать прибыль от тренда.

  5. Включить другие индикаторы, такие как MACD, KD, чтобы избежать ложных сигналов.

  6. Корректировка стоп-лосса на основе расходов на скольжение и комиссионные.

  7. Испытать адаптивность между различными инструментами и оптимизировать параметры.

Резюме

Как вводная версия торговой системы 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)


    



Больше