
A estratégia de rastreamento de tendências do Chande-Kroll Stop Loss Dynamic ATR é uma estratégia de negociação quantitativa baseada no indicador de parada de Chande-Kroll e na média móvel simples (SMA). A estratégia visa capturar tendências ascendentes no mercado, enquanto usa paradas dinâmicas para gerenciar o risco. O indicador de parada de Chande-Kroll Dynamic ATR ajusta os níveis de parada de acordo com a média real da amplitude da onda (ATR) para se adaptar a diferentes situações de volatilidade do mercado.
O núcleo da estratégia é o indicador de stop loss Chande-Kroll, que usa o ATR para calcular os níveis de stop loss dinâmicos. O ATR mede a volatilidade do mercado e os níveis de stop loss são ajustados de acordo com o ATR e a dinâmica multiplicativa. Isso garante que as posições de stop loss sejam adequadas às condições atuais do mercado. Faça mais: comece a fazer mais quando o preço de fechamento quebrar a trajetória de baixa de Chande-Kroll e estiver acima do SMA de 21 ciclos. Condições de equilíbrio: equilíbrio quando o preço de fechamento cai abaixo da trajetória de Chande-Kroll.
A estratégia de seguimento de tendências ATR de stop loss dinâmico de Chande-Kroll é uma estratégia de negociação quantitativa baseada nos princípios de stop loss dinâmico e de seguimento de tendências. Através da combinação do indicador de stop loss de Chande-Kroll e do filtro de tendências SMA, a estratégia permite gerenciar o risco de forma eficaz, enquanto capta a tendência ascendente. A flexibilidade dos parâmetros da estratégia, juntamente com o ajuste dinâmico da escala de posições, aumenta ainda mais a adequação da estratégia.
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Chande Kroll Stop Strategy", overlay=true, initial_capital = 1000, commission_type = strategy.commission.percent, commission_value = 0.01, slippage = 3)
// Chande Kroll Stop parameters
calcMode = input.string(title="Calculation Mode", defval="Exponential", options=["Linear", "Exponential"])
riskMultiplier = input(5, "Risk Multiplier")
atrPeriod = input(10, "ATR Period")
atrMultiplier = input(3, "ATR Multiplier")
stopLength = input(21, "Stop Length")
smaLength = input(21, "SMA Length")
// Calculate ATR
atr = ta.atr(atrPeriod)
// Calculate Chande Kroll Stop
highStop = ta.highest(high, stopLength) - atrMultiplier * atr
lowStop = ta.lowest(low, stopLength) + atrMultiplier * atr
sma21 = ta.sma(close, smaLength)
// Entry and Exit conditions
longCondition = ta.crossover(close, lowStop) and close > sma21
exitLongCondition = close < highStop
// Funktion zur Berechnung der Menge
calc_qty(mode, riskMultiplier) =>
lowestClose = ta.lowest(close, 1560)
if mode == "Exponential"
qty = riskMultiplier / lowestClose * 1000 * strategy.equity / strategy.initial_capital
else
qty = riskMultiplier / lowestClose * 1000
// Berechnung der Menge basierend auf der Benutzerwahl
qty = calc_qty(calcMode, riskMultiplier)
// Execute strategy
if (longCondition)
strategy.entry("Long", strategy.long, qty=qty)
alert("Buy Signal", alert.freq_once_per_bar_close)
if (exitLongCondition)
strategy.close("Long")
alert("Sell Signal", alert.freq_once_per_bar_close)
// Plotting
plotshape(series=longCondition, location=location.belowbar, color=#0097a7, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(series=ta.crossunder(close, highStop), location=location.abovebar, color=#ff195f, style=shape.triangledown, size=size.small, title="Sell Signal")
plot(sma21, color=color.gray)
plot(highStop, color=#0097a7)
plot(lowStop, color=#ff195f)