
Двойная стратегия прорыва Доньчжана - это стратегия количественного трейдинга, основанная на Доньчжановых каналах. Эта стратегия использует комбинацию быстрых и медленных каналов Доньчжана для достижения низкорисковых, высокодоходных прорывных сделок. При входе в рынок, когда цена прорывает медленные каналы, она становится более высокой, а при входе в рынок, когда цена снова прорывает быстрые каналы, она становится более низкой.
Эта стратегия основана на двух тончайных каналах, включая медленный тончайный канал с более длительным циклом и быстрый тончайный канал с более коротким циклом.
Медленный канал Туньцзяна имеет более длительный цикл, который эффективно устраняет рыночный шум, и его сигналы о прорыве имеют более высокую надежность. Когда цена прорывает медленный канал, делается дополнительный вход; когда цена падает медленный канал, делается пустой вход.
Быстрый канал Туньцзяна имеет короткий цикл и может быстро реагировать на краткосрочные изменения цены. Когда цена снова пробивает этот канал, это означает, что тенденция изменилась, и необходимо немедленно остановить потерю или остановить отход.
Кроме того, в качестве входного фильтра в качестве стратегии были установлены условия волатильности. Вход в рынок будет инициирован только в том случае, если цена будет колебаться выше заранее установленного процента от порога. Это позволит избежать частого входа в рынок во время горизонтальной корректировки.
Эти риски могут быть уменьшены путем оптимизации параметров, разумного установления стоп-пойнтов и внимания к крупным событиям.
В целом, стратегия прорыва Двойно-Дончинского канала является относительно стабильной и надежной стратегией отслеживания тенденций. Она одновременно обладает преимуществами захвата тенденций и контроля риска и подходит как базовый модуль для различных стратегий торговли акциями. Эффективность стратегии может быть дополнительно повышена путем оптимизации параметров и совершенствования правил.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan
//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)
slowLen = input.int(50, title="Slow Donchian")
fastLen = input.int(30, title="Fast Donchian")
volatility = input.int(3, title="Volatility (%)")
longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)")
ubSlow = ta.highest(close, slowLen)[1]
lbSlow = ta.lowest(close, slowLen)[1]
ubFast = ta.highest(close, fastLen)[1]
lbFast = ta.lowest(close, fastLen)[1]
plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")
fark = (ubSlow - lbSlow) / lbSlow * 100
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if (shortCondition)
strategy.entry("Short", strategy.short)
if strategy.position_size > 0 and ta.crossunder(close, lbFast)
strategy.close("Long", "Close All")
if strategy.position_size < 0 and ta.crossover(close, ubFast)
strategy.close("Short", "Close All")
// Take Profit
if strategy.position_size > 0
strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)
if strategy.position_size < 0
strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)