
Esta estratégia é uma estratégia de acompanhamento de tendências baseada na teoria de ruptura de canais. Ela constrói um canal através do cálculo do preço máximo e mínimo de um determinado ciclo, gerando um sinal de negociação quando o preço quebra o canal.
A estratégia começa com o cálculo dos preços mais altos e mais baixos em um período de comprimento, construindo um canal para cima e para baixo. Quando o preço de fechamento quebra o caminho para cima, faça mais; Quando o preço de fechamento quebra o caminho para baixo, faça um fechamento.
A estratégia é mapear simultaneamente a extensão como length*O indicador de EMA de 2 determina a direção da tendência. Quando o preço quebra o canal para cima, se a EMA está em uma tendência ascendente, aumenta a eficácia da tomada de decisões.
A estratégia global é uma estratégia simples de rastreamento de tendências baseada em breakouts de canal para capturar tendências. Ela possui uma forte capacidade de rastreamento de tendências, que pode obter bons lucros em situações de tendência.
/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
initial_capital = 1000,
default_qty_value = 90,
default_qty_type = strategy.percent_of_equity,
pyramiding = 0,
commission_value = 0.002,
commission_type = strategy.commission.percent,
calc_on_every_tick = true
length_val = 2
max_bars_back = 1440
risk_max_drawdown = 9
strategy("Channel Break",max_bars_back=max_bars_back,initial_capital = initial_capital,default_qty_value = default_qty_value,default_qty_type = default_qty_type,pyramiding = pyramiding,commission_value = commission_value,commission_type = commission_type,calc_on_every_tick = calc_on_every_tick)
// strategy.risk.max_drawdown(risk_max_drawdown, strategy.percent_of_equity)
length = input(title="Length", minval=1, maxval=1000, defval=length_val)
upBound = highest(high, length)
downBound = lowest(low, length)
//plot (upBound)
//plot (downBound)
//plot (close, color=red)
//plot (ema(close,length * 2), color=green)
//
if (not na(close[length]) and time>timestamp(2018, 02, 24, 0, 00) )
strategy.entry("Buy", strategy.long, stop=upBound + syminfo.mintick, comment="Buy")
strategy.entry("Short", strategy.short, stop=downBound - syminfo.mintick, comment="Short")
position = strategy.position_size
//plot(position , title="equity", color=red,style=cross,linewidth=4)
plot(variance(position,2)>0?1:0,style=circles,linewidth=4)
message = ""
if (position > 0)
message = "BTCUSD L: " + tostring(strategy.position_size)
na(position)
if (position < 0)
message = "BTCUSD S: " + tostring(strategy.position_size)
na(position)
alertcondition(variance(strategy.position_size,2) > 0, "test", message )