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

Торговая стратегия Donchian Breakout

Автор:Чао Чжан, Дата: 2024-04-29 14:56:35
Тэги:

img

Обзор

Стратегия торговли Donchian Breakout - это торговая система, основанная на индикаторе Donchian Channel. Основная идея этой стратегии заключается в том, чтобы улавливать рыночные тенденции путем прорыва верхней и нижней полос Дончианского канала и использовать фиксированный коэффициент риска и вознаграждения (RR) для получения прибыли и остановки потери. Когда цена превышает верхнюю полосу Дончианского канала и создает новый максимум относительно периода Дончианского канала, она длится; когда она превышает нижнюю полосу и создает новый минимум, она становится короткой.

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

  1. Вычислить канал Дончиана: на основе установленного периода Дончиана (по умолчанию 20) вычислить самые высокие и самые низкие цены в течение этого периода как верхние и нижние полосы Дончиана соответственно, и вычислить среднюю точку верхних и нижних полос как среднюю полосу Дончиана.
  2. Определить, будет ли создан новый максимум/низкий уровень: Проведя петлю и сравнивая верхние и нижние полосы нынешнего Дончианского канала с верхними и нижними полосами предыдущих нескольких периодов, определить, будет ли создан новый максимум или низкий уровень относительно периода Дончианского канала. Если будет создан новый максимум, верхняя полоса Дончиана отображается синим; если будет создан новый минимум, нижняя полоса Дончиана отображается синим.
  3. Вход в прорыв: когда цена закрытия превышает верхнюю полосу синего Дончиана, она входит в длинную позицию; когда она превышает нижнюю полосу синего Дончиана, она входит в короткую позицию. То есть действительны только прорывы, которые происходят после создания нового максимума / минимума.
  4. Прием прибыли и стоп-лосс: при открытии позиции записывайте цену входа и текущую цену средней полосы Дончианского канала и вычисляйте разницу между ними. Стоп-лосс устанавливается на средней полосе Дончианского канала, а приём прибыли рассчитывается на основе установленного коэффициента риска и вознаграждения (по умолчанию в 5 раз) и разницы в цене.
  5. Закрытие позиции: когда цена достигает цены получения прибыли или стоп-лосса, позиция закрывается.

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

  1. Подходит для трендовых рынков: Стратегия Donchian Breakout входит в позиции, пробиваясь через верхние/нижние полосы, следуя направлению рыночной тенденции, и хорошо работает на трендовых рынках.
  2. Новая высоко-низкая фильтрация: стратегия фильтрует некоторые сигналы шума и ложные прорывы, определяя, создается ли новый высоко-низкий в течение периода Донкского канала, улучшая качество входных сигналов.
  3. Фиксированное соотношение риска и вознаграждения: позиции по получению прибыли и стоп-лосс для каждой сделки основаны на фиксированном соотношении риска и вознаграждения, что делает риск контролируемым и благоприятным для управления деньгами.
  4. Простые параметры: параметры стратегии относительно просты в настройке, в основном период Дончианского канала и коэффициент риска и вознаграждения, что облегчает оптимизацию и контроль.

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

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

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

  1. Динамическая позиция стоп-лосса: регулирование позиции стоп-лосса в режиме реального времени на основе движения цен, волатильности и т.д., например, использование ATR в качестве ориентира стоп-лосса для снижения риска одной сделки.
  2. Фильтрация тренда: добавление показателей оценки тренда, таких как скользящие средние и открытие позиций только тогда, когда направление тренда ясно для улучшения качества сигнала.
  3. Комбинация с другими индикаторами: Комбинация с индикаторами импульса, такими как RSI и MACD, позволяет всесторонне оценить сроки открытия позиций.
  4. Управление позициями: динамическое регулирование размеров позиций в зависимости от динамики рынка, волатильности и т.д. для контроля общего риска.
  5. Адаптация параметров: Используйте машинное обучение и другие методы для адаптивной оптимизации настроек параметров.

Резюме

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


/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 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/
// © Dillon_Grech
//---------------------------------------------//

//---------------------------------------------//
// Simple donchian channel break out strategy
// which only enters trades when price closes
// above donchian upper and creates new high 
// (long) or price closes below donchian lower
// and creates new low, relative to the donchian
// length. This is indicated by the donchian
// upper and lower color (blue). Stop loss is
// located at donchian basis and take profit
// is set at Risk Reward (RR) profit target.
//---------------------------------------------//
//@version=5
strategy("Donchian New High/Low Strategy [Dillon Grech]", overlay=true)

//---------------------------------------------//

//---------------------------------------------//
//INDICATOR 1 - Donchian New High Low Price Close
don_length = input.int(20, minval = 1)
don_lower  = ta.lowest(don_length)
don_upper  = ta.highest(don_length)
don_basis  = math.avg(don_upper, don_lower)

//loop
don_lower_upper  = true
don_higher_lower = true
for i = 0 to don_length - 1
    //Check for higher high over don_length
    if don_upper > don_upper[i]
        don_lower_upper := false
    //Check for lower low over don_length
    if don_lower < don_lower[i]
        don_higher_lower := false

//Plot
c_ora = color.orange
c_blu = color.blue
c_gra = color.gray
color_basis = c_ora
color_upper = don_lower_upper  ? c_blu : c_gra
color_lower = don_higher_lower ? c_blu : c_gra
plot(don_basis,     "Don Basis", color_basis, 2)
u = plot(don_upper, "Don Upper", color_upper, 2)
l = plot(don_lower, "Don Lower", color_lower, 2)

//Conditions
Ind_1_L = ta.crossover(close, don_upper[1]) and 
   don_lower_upper[1]
Ind_1_S = ta.crossunder(close,don_lower[1]) and 
   don_higher_lower[1]
//---------------------------------------------//

//---------------------------------------------//
//ENTRY CONDITIONS
entry_long  = strategy.position_size<=0 and
   Ind_1_L
entry_short = strategy.position_size>=0 and
   Ind_1_S

if(entry_long)
    strategy.entry("Long Entry", strategy.long)
if(entry_short)
    strategy.entry("Short Entry", strategy.short)
//---------------------------------------------/

//---------------------------------------------//
//TAKE PROFIT AND STOP LOSS CONDITIONS
profit_RR = input.float(5.0,"RR Profit Target")

//Store Price on new entry signal
entry_price = strategy.opentrades.entry_price(
   strategy.opentrades-1)

//Store Donchain Channel Basis
entry_don_basis = float(0.0)
if entry_long or entry_short
    entry_don_basis := don_basis
else
    entry_don_basis := entry_don_basis[1]

//Get stop loss distance
stop_distance = math.abs(entry_price -
   entry_don_basis)
stop_L   = entry_price - stop_distance
profit_L = entry_price + stop_distance*profit_RR
stop_S   = entry_price + stop_distance
profit_S = entry_price - stop_distance*profit_RR

//Plot TP and SL
plot(entry_long or entry_short ? na :
   strategy.position_size > 0 ? profit_L : na,
   color=color.lime, style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na :
   strategy.position_size > 0 ? stop_L : na,
   color=color.red,  style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na : 
   strategy.position_size < 0 ? profit_S : na,
   color=color.lime, style=plot.style_linebr,
   linewidth=2)
plot(entry_long or entry_short ? na :
   strategy.position_size < 0 ? stop_S : na,
   color=color.red,  style=plot.style_linebr,
   linewidth=2)

//Exit long trades
strategy.exit(id = 'Exit Long', 
   from_entry ='Long Entry', 
   stop = stop_L, limit = profit_L)
strategy.exit(id = 'Exit Short', 
   from_entry ='Short Entry', 
   stop = stop_S, limit = profit_S)
//---------------------------------------------//

Больше