
Cette stratégie est une stratégie de suivi de tendance basée sur la théorie de la rupture de la chaîne. Elle construit une chaîne en calculant les prix les plus élevés et les plus bas d’un certain cycle, générant un signal de transaction lorsque le prix franchit la chaîne.
La stratégie commence par calculer les prix les plus élevés et les plus bas d’une période de longueur, construire des canaux de montée et de descente. Lorsque le prix de clôture franchit la montée, faire plus; Lorsque le prix de clôture franchit la descente, faire moins.
Cette stratégie est simultanée à la mappage de longueur en longitude.*L’indicateur EMA de 2 détermine la direction de la tendance. Lorsque le prix franchit le canal, il augmente l’efficacité de la prise de décision si l’EMA est dans une tendance à la hausse.
La stratégie est une simple stratégie de suivi de la tendance basée sur les ruptures de canal pour capturer les tendances. Elle a une forte capacité de suivi de la tendance et peut obtenir de bons gains dans les conditions de tendance.
/*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 )