O recurso está a ser carregado... Carregamento...

Chande-Kroll Stop Dinâmica ATR Tendência Seguindo a Estratégia

Autora:ChaoZhang, Data: 2024-06-14 15:15:43
Tags:SMAATRSPX

img

Resumo

O Chande-Kroll Stop Dynamic ATR Trend Following Strategy é uma estratégia quantitativa de negociação baseada no indicador de parada Chande-Kroll e na Simple Moving Average (SMA). A estratégia visa capturar tendências de mercado ascendentes enquanto gerencia o risco usando níveis dinâmicos de stop-loss. O indicador de parada Chande-Kroll ajusta dinamicamente os níveis de stop-loss com base no Average True Range (ATR) para se adaptar a diferentes condições de volatilidade do mercado. O SMA de 21 períodos é usado como um filtro de tendência para garantir que as negociações sejam feitas na direção da tendência primária.

Princípios de estratégia

O núcleo da estratégia é o indicador de stop de Chande-Kroll, que usa o ATR para calcular níveis dinâmicos de stop-loss. O ATR mede a volatilidade do mercado e os níveis de stop-loss são ajustados dinamicamente com base no ATR e em um multiplicador. Isso garante que as posições de stop-loss se adaptem às condições atuais do mercado. Além disso, o SMA de 21 períodos atua como um filtro de tendência e os sinais longos são acionados apenas quando o preço de fechamento está acima do SMA. Isso ajuda a evitar negociações durante mercados de baixa. Condição de entrada longa: Quando o preço de encerramento ultrapassa a faixa inferior de Chande-Kroll e está acima da SMA de 21 períodos, é iniciada uma posição longa. Condição de saída: quando o preço de encerramento cair abaixo da faixa superior de Chande-Kroll, a posição é fechada.

Vantagens da estratégia

  1. O indicador de stop-loss dinâmico de Chande-Kroll calcula níveis dinâmicos de stop-loss com base no ATR, adaptando-se às diferentes condições de volatilidade do mercado e melhorando a eficácia dos stop-loss.
  2. Seguimento da tendência: A SMA de 21 períodos atua como um filtro de tendência, garantindo que as negociações se alinhem com a direção da tendência primária e reduzindo o risco de negociação contrária à tendência.
  3. Flexbilidade dos parâmetros: os parâmetros da estratégia, tais como o período ATR, o multiplicador ATR, o período stop-loss e o período SMA, podem ser ajustados de acordo com as preferências do utilizador, aumentando a adaptabilidade da estratégia.
  4. Dimensão das posições: os tamanhos das posições são ajustados dinamicamente com base no multiplicador de risco e na volatilidade actual do mercado, permitindo uma gestão dinâmica do risco.

Riscos estratégicos

  1. Risco de otimização de parâmetros: os parâmetros da estratégia precisam ser otimizados com base em diferentes condições de mercado e instrumentos de negociação.
  2. Risco de identificação de tendências: durante os mercados limitados a intervalos ou reversões iniciais de tendências, a estratégia pode gerar sinais falsos, resultando em perdas.
  3. Custos de deslizamento e transação: na negociação real, os custos de deslizamento e transação afetarão os retornos líquidos da estratégia. As medidas de gestão do risco incluem: a realização de backtesting abrangente e otimização de parâmetros da estratégia; o cumprimento estrito das regras da estratégia e o controlo do risco de cada negociação na negociação real; a avaliação regular do desempenho da estratégia e a realização de ajustes quando necessário.

Orientações para a otimização da estratégia

  1. Negociação longa-curta: atualmente, a estratégia só tem sinais longos. Pode ser estendida para negociação longa-curta para capturar plenamente oportunidades em diferentes ambientes de mercado.
  2. Optimização de parâmetros dinâmicos: usar algoritmos de aprendizagem de máquina ou otimização para ajustar parâmetros de estratégia em tempo real com base nas condições do mercado, melhorando a adaptabilidade.
  3. Combinação de outros indicadores técnicos: introduzir outros indicadores de tendência ou osciladores para construir uma estratégia multifatorial e melhorar a fiabilidade do sinal.
  4. Incorporação de indicadores de sentimento do mercado: combinar indicadores de sentimento do mercado, como o VIX, para controlar as negociações durante os períodos de sentimento extremo do mercado e melhorar as capacidades de gestão de riscos.

Resumo

A Estratégia de Seguimento da Tendência ATR Dinâmica de Paragem de Chande-Kroll é uma estratégia quantitativa de negociação baseada em princípios dinâmicos de stop-loss e de seguimento da tendência. Combinando o indicador de parada de Chande-Kroll e o filtro de tendência SMA, a estratégia pode capturar tendências ascendentes enquanto gerencia efetivamente o risco. A flexibilidade dos parâmetros da estratégia e o dimensionamento dinâmico da posição aumentam ainda mais a adaptabilidade 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)



Relacionados

Mais.