Эта стратегия использует индикатор Дончианского канала для адаптивного отслеживания рыночных тенденций для трендовой торговли.
Вычислить самый высокий и самый низкий уровень за определенный период, чтобы сформировать Дончианский канал.
Открыть длинную позицию, когда цена переходит верхнюю полосу канала. Открыть короткую позицию, когда цена переходит ниже нижней полосы.
После открытия позиций, стоп-лосс отслеживает среднюю линию канала.
Снижайте убытки и закрывайте позиции, когда цена опять падает в канал.
Стратегия использует Дончянский канал для определения направления тренда и быстрого обнаружения прорывов.
Использование средней линии канала для отслеживания стоп-лосса защищает прибыль.
Цель прибыли увеличивается в соответствии с определенным пользователем процентом прибыли.
Он адаптируется к различным рыночным условиям, таким как консолидация, выбытие, откат и т. д., и гибко регулирует размер позиций.
Простая и понятная логика торговли, легко понятная и освоенная.
Стратегия торгует только прорывами и не может эффективно управлять консолидацией.
Существует риск ложных сигналов прорыва, другие показатели необходимы для проверки.
Неправильные параметры стоп-лосса и прибыли могут привести к досрочному выходу или недостаточной прибыли.
Неправильное установление периода канала влияет на точность торговых сигналов.
Чрезмерное размещение позиций увеличивает риски колебаний рынка.
Существуют риски неожиданного отключения робота, обеспечивают надежность системы.
Добавьте индикаторы громкости, чтобы избежать ложных прорывов.
Увеличить фильтры индикаторов тренда для улучшения точности входного сигнала.
Оптимизируйте динамические алгоритмы стоп-лосса и прибыли.
Корректировать стратегию размещения позиций на основе рыночных условий в реальном времени.
Исследование данных за ночь и до выхода на рынок для лучшего планирования входа.
Испытывайте различные периоды параметров, чтобы найти оптимальные комбинации.
Добавить проверку модели, чтобы избежать переподготовки.
В целом, это простая и практичная адаптивная стратегия следования тренду. Она имеет такие преимущества, как быстрое захват прорывов тренда и защита прибыли. Она также имеет такие недостатки, как неэффективность во время консолидации и потери от ложных прорывов. Будущие улучшения заключаются в включении большего фильтрации сигналов, динамической стоп-лосс / прибыли, чтобы адаптироваться к большему количеству рыночных условий.
/*backtest start: 2022-10-19 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2020 //@version=4 strategy(title = "Noro's Donchian Strategy", shorttitle = "Donchian str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") tp = input(defval = 10, minval = 1, title = "Take profit") lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") pclen = input(50, minval = 1, title = "Price Channel Length") showll = input(true, defval = true, title = "Show lines") showbg = input(false, defval = false, title = "Show Background") showof = input(true, defval = true, title = "Show Offset") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Price Channel h = highest(high, pclen) l = lowest(low, pclen) center = (h + l) / 2 tpl = h * (100 + tp) / 100 tps = l * (100 - tp) / 100 //Lines tpcol = showll ? color.lime : na pccol = showll ? color.blue : na slcol = showll ? color.red : na offset = showof ? 1 : 0 plot(tpl, offset = offset, color = tpcol, title = "TP Long") plot(h, offset = offset, color = pccol, title = "Channel High") plot(center, offset = offset, color = slcol, title = "Cannel Center") plot(l, offset = offset, color = pccol, title = "Channel Low") plot(tps, offset = offset, color = tpcol, title = "TP Short") //Background size = strategy.position_size bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na bgcolor(bgcol, transp = 70) //Trading truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59) lot = 0.0 lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1] mo = 0 mo := strategy.position_size != 0 ? 0 : high >= center and low <= center ? 1 : mo[1] if h > 0 strategy.entry("Long", strategy.long, lot, stop = h, when = strategy.position_size <= 0 and needlong and truetime and mo) strategy.exit("TP Long", "Long", limit = tpl, stop = center) strategy.entry("Short", strategy.short, lot, stop = l, when = strategy.position_size >= 0 and needshort and truetime and mo) strategy.exit("TP Short", "Short", limit = tps, stop = center) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all() strategy.cancel("Long") strategy.cancel("Short")