
A estratégia de ruptura do canal de Dongguan é uma estratégia de negociação quantitativa de seguimento de tendências. A estratégia utiliza o canal de Dongguan para capturar a tendência do mercado e, ao mesmo tempo, usa o stop loss móvel do ATRSL para controlar o risco.
donLengthOs parâmetros foram calculados.donLengthOs preços mais altos e mais baixos de um ciclo, respectivamente, como subida do canal de DongjiandonUpperE o caminho de terra.donLowerA linha do meio do canal.donBasisÉ a média de ascensão e descensão.AP2 e AF2Parâmetros para calcular o valor do ATRSL2Então, baseado no preço de fechamento atual,SCE o último é o Stop Loss Moving.Trail2[1]A correlação entre a correlação e a correlação dinâmica do preço de parada móvelTrail2。donLength、AP2 e AF2Parâmetros para otimizar o desempenho da estratégia.A estratégia de ruptura do canal de Dongguan é uma estratégia clássica de acompanhamento de tendências, que capta as tendências através do canal de Dongguan e usa o risco de controle de perda móvel ATRSL. A estratégia tem como vantagem a lógica simples e clara, fácil de implementar e otimizar; a desvantagem é o fraco desempenho em mercados de turbulência e reversão de tendências, e a configuração de parâmetros tem um grande impacto na performance da estratégia.
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Stock Trend USE THIS", overlay = true)
donLength = input(100, minval=1)
//Donchian Long
donLower = lowest(donLength)
donUpper = highest(donLength)
donBasis = avg(donUpper,donLower)
// ATRSL
SC = close
// Slow Trail //
AP2 = input(10, title="Slow ATR period") // ATR Period
AF2 = input(3, title="Slow ATR multiplier") // ATR Factor
SL2 = AF2 * atr(AP2) // Stop Loss
Trail2 = 0.0
iff_3 = SC > nz(Trail2[1], 0) ? SC - SL2 : SC + SL2
iff_4 = SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0) ? min(nz(Trail2[1], 0), SC + SL2) : iff_3
Trail2 := SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0) ? max(nz(Trail2[1], 0), SC - SL2) : iff_4
// Long and Short Conditions
longCondition = (crossover(close,donUpper[1]))
// Close Conditions
closeLongCondition = crossunder(close,Trail2)
// Strategy logic
if (longCondition)
strategy.entry("Long", strategy.long)
alert("Open Long position")
if (closeLongCondition)
strategy.close("Long")
alert("Close Long position")
// Plot Donchian
l = plot(donLower, color=color.blue)
u = plot(donUpper, color=color.blue)
plot(donBasis, color=color.orange)
fill(u, l, color=color.blue)
plot(Trail2, color=color.blue, title="ATRSL Trail")