A estratégia de negociação de ruptura de Donchian é um sistema de negociação baseado no indicador do canal de Donchian. A ideia principal desta estratégia é capturar as tendências do mercado através da quebra das bandas superior e inferior do canal de Donchian, e usar uma relação de recompensa de risco (RR) fixa para obter lucro e parar a perda. Quando o preço quebra acima da faixa superior do canal de Donchian e cria uma nova alta relativa ao período do canal de Donchian, ele vai longo; quando ele quebra abaixo da faixa inferior e cria uma nova baixa, ele vai curto. Ao mesmo tempo, o stop loss é definido na faixa média do canal de Donchian, e o lucro é calculado com base na taxa de recompensa de risco definida.
A Estratégia de Negociação de Breakout de Donchian é um sistema de negociação de tendência baseado no indicador clássico do Canal de Donchian. Ele abre posições através de breakouts das bandas superior e inferior do Canal de Donchian e julgamentos de novos altos / baixos, com lucro e stop loss com base em uma relação de recompensa de risco fixa. A estratégia tem uma lógica simples e é adequada para mercados de tendência.
/*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) //---------------------------------------------//