Estratégia de média móvel de stop loss de fechamento dinâmico


Data de criação: 2024-01-29 15:52:43 última modificação: 2024-01-29 15:52:43
cópia: 0 Cliques: 621
1
focar em
1617
Seguidores

Estratégia de média móvel de stop loss de fechamento dinâmico

Visão geral

A estratégia usa o pensamento do trailing stop dinâmico, com base no ATR e no valor máximo do preço para calcular a linha de parada de uma posição curta e longa. Combinando a ideia do Chandelier Exit, com base na direção da linha de parada para julgar a direção da posição curta e longa. Quando a linha de parada se rompe para cima, julgue-a como pessimista e faça mais; quando a linha de parada se rompe para baixo, julgue-a como pessimista e faça zero.

A estratégia tem a dupla função de julgar sinais de parada e de entrada.

Princípio da estratégia

A estratégia é composta por:

  1. Linha de parada de posição longa e curta com base no ATR

Computação em tempo real do ATR com base no comprimento do ciclo ATR e no múltiplo definido pelo usuário. Em seguida, computação de uma linha de parada de longo e curto prazo com base no ATR e no valor máximo do preço:

    longStop = 最高价 - ATR
    shortStop = 最低价 + ATR
  1. A partir da descoberta, o negócio foi direcionado.

Comparando a linha de parada de uma linha K anterior com a linha de parada de uma linha K atual. Se a linha de parada de uma linha K atual for quebrada, um sinal de negociação será emitido:

    长仓止损线上方突破,做多
    短仓止损线下方突破,做空
  1. Stop Loss e Stop Stop Ratio Dependendo do Risco

A distância de stop loss e a distância de parada são calculadas a partir do ATR, de acordo com o RRR definido pelo usuário. O que você pode fazer é colocar um Stop Loss e um Stop Loss ao abrir uma posição.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. Perda de seguimento dinâmico, perda de tempo

A estratégia utiliza um traçado dinâmico das linhas de stop loss, que permite a parada em tempo real e o controle do risco de queda.

  1. Com funções de julgamento de entrada e de parada de perda

A estratégia de Stop Loss Line simplifica a lógica da estratégia, ao mesmo tempo em que serve como critério de entrada.

  1. Risco-retorno ajustável

O que é mais lucrativo, de acordo com a relação de risco-retorno estabelecida.

  1. É fácil de entender e de estender.

A estrutura da estratégia é simples, fácil de entender e otimizada para expansão.

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Riscos bilaterais

A estratégia é uma estratégia de negociação bilateral, assumindo simultaneamente o risco de fazer mais e o risco de fazer menos.

  1. Dependência de parâmetros ATR

A configuração do parâmetro ATR afeta diretamente a linha de stop loss e a frequência de negociação. A configuração inadequada pode levar a um stop loss muito relaxado ou a uma frequência de negociação muito alta.

  1. Adaptabilidade ao mercado de tendências

Esta estratégia é mais adequada para situações de brechas após a correção da linha média, e não para cenários de tendência muito forte.

Para os riscos acima mencionados, pode-se otimizar a partir de:

  1. Combinação de indicadores de tendência

Combine os indicadores de tendência, como a MA, para avaliar a tendência do mercado e evitar negociações adversas.

  1. Combinação de parâmetros de otimização

Optimizar os parâmetros ATR e os parâmetros de relação de risco-retorno para tornar o stop loss e o stop loss mais racionais.

  1. Adicionar condições de filtragem

Aumentar a filtragem de volume de transações ou de indicadores de volatilidade para garantir a qualidade das transações.

Direção de otimização

A estratégia ainda tem espaço para ser melhorada:

  1. Combinação de aprendizagem de máquina

A utilização de modelos de aprendizagem de máquina para a previsão de tendências de preços e melhoria da precisão de entrada.

  1. Opções para construir um portfólio sem risco

Utilize a volatilidade dos preços das variedades de cobertura de opções para construir um portfólio de arbitragem sem risco.

  1. Arbitragem Multivariada

Arbitragem estatística entre os diferentes mercados e as diferentes variedades para obter um Alfa estável.

  1. Negociação algorítmica

A estratégia de retrocesso e a negociação em disco são efetivamente executadas através de um mecanismo de negociação algorítmico.

Resumir

Este artigo analisa em profundidade uma estratégia de negociação quantitativa baseada em stop loss de rastreamento dinâmico. Esta estratégia possui simultaneamente o gerenciamento de stop loss e o julgamento de sinais de negociação, o que permite controlar o risco de forma eficaz. Também analisamos os benefícios da estratégia, os riscos possíveis e as ideias de otimização subsequentes.

Código-fonte da estratégia
/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chandelier Exit with 1-to-1 Risk-Reward", shorttitle='CE', overlay=true)

// Chandelier Exit Logic
length = input.int(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
useClose = input.bool(title='Use Close Price for Extremums', defval=true)

atr = mult * ta.atr(length)

longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop

shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop

var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir

// Risk-Reward Ratio
riskRewardRatio = input.int(1, title="Risk-Reward Ratio", minval=1, maxval=10, step=1)

// Calculate Take Profit and Stop Loss Levels
takeProfitLevel = atr * riskRewardRatio
stopLossLevel = atr

// Entry Conditions
longCondition = dir == 1 and dir[1] == -1
shortCondition = dir == -1 and dir[1] == 1

// Entry Signals
if (longCondition)
    strategy.entry("Long", strategy.long, stop=close - stopLossLevel, limit=close + takeProfitLevel)
if (shortCondition)
    strategy.entry("Short", strategy.short, stop=close + stopLossLevel, limit=close - takeProfitLevel)

longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.green)
shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.red)

midPricePlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0, display=display.none, editable=false)

fill(midPricePlot, longStopPlot, color=color.new(color.green, 90), title='Long State Filling')
fill(midPricePlot, shortStopPlot, color=color.new(color.red, 90), title='Short State Filling')

// Alerts
if (dir != dir[1])
    strategy.entry("Direction Change", strategy.long, comment="Chandelier Exit has changed direction!")
if (longCondition)
    strategy.entry("Buy Signal", strategy.long, comment="Chandelier Exit Buy!")
if (shortCondition)
    strategy.entry("Sell Signal", strategy.short, comment="Chandelier Exit Sell!")