Fuga com a tendência - Estratégia de stop loss de momentum


Data de criação: 2023-11-13 17:20:51 última modificação: 2023-11-13 17:20:51
cópia: 0 Cliques: 847
1
focar em
1617
Seguidores

Fuga com a tendência - Estratégia de stop loss de momentum

Visão geral

Esta estratégia é uma estratégia de acompanhamento de tendências de linha média baseada no design de indicadores de ruptura e parada dinâmica. A estratégia usa o preço para quebrar a linha de parada dinâmica para determinar a direção da tendência, entrar no campo quando o preço quebra a linha de parada e, em seguida, usar a linha de parada para seguir a tendência e bloquear os lucros. A estratégia visa capturar a tendência de linha média e, ao mesmo tempo, usar a parada dinâmica para controlar o risco.

Princípio da estratégia

A estratégia usa o indicador de parada dinâmica Volatility Stop para determinar a direção da tendência e acompanhar a parada. A parada de volatilidade calcula uma linha de parada dinâmica de acordo com a amplitude de flutuação do preço.

  1. ATR calculado para o preço (Average True Range)
  2. A linha de parada é obtida multiplicando um fator de parada com base no valor do ATR
  3. Quando o preço sobe, o preço mais alto é registrado, e a linha de parada é o preço mais alto menos o ATR multiplicado pelo fator
  4. Quando os preços caem, o preço mínimo é registrado, a linha de parada é o preço mínimo mais o ATR multiplicado pelo fator

Assim, a linha de stop-loss vai subir e descer com a oscilação dos preços, formando um canal dinâmico.

Quando o preço ultrapassa a linha de stop loss, a estratégia abre uma posição, indicando uma reversão de tendência:

  • A estratégia abre uma posição quando o preço se move de baixo para cima e ultrapassa a linha de parada
  • A estratégia abre uma posição quando o preço passa de cima para baixo e quebra a linha de stop loss

A estratégia utiliza a linha de stop loss para acompanhar o stop loss após a abertura da posição:

  • A linha de parada de várias posições é o preço máximo menos o ATR multiplicado pelo fator
  • A linha de parada de uma posição vazia é o preço mínimo mais o ATR multiplicado pelo fator

Quando o preço toca novamente a linha de stop loss, a estratégia termina a parada.

Assim, a estratégia pode ser executada de forma dinâmica, acompanhando a reversão da tendência em tempo hábil e usando o stop loss para controlar o risco.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. A tendência é de que as pessoas que não têm acesso à internet e que não têm acesso à internet, não possam ter acesso à internet e não possam ter acesso à internet.
  2. O uso de stop loss dinâmico permite ajustar a posição de stop loss de acordo com as flutuações do mercado, tornando o stop loss mais razoável
  3. A posição de stop loss é atualizada com o movimento, permitindo o bloqueio máximo dos lucros
  4. A multiplicação de uma corrida em uma tendência pode gerar um maior lucro da tendência
  5. Controlar os riscos e evitar perdas excessivas

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Em situações de choque, pode ocorrer uma situação em que o stop loss é acionado com frequência.
  2. É preciso ter um coeficiente de parada razoável, muito pequeno é sensível demais, muito grande perde o sentido de parada
  3. Os investidores precisam se preocupar com o impacto das comissões de transação, que costumam ser usadas para a captação de receitas
  4. A tendência é de que os investidores não tenham lucro no início da operação.
  5. Os riscos de se afastar muito da linha de parada

Resposta:

  1. Otimizar o coeficiente de parada para encontrar o melhor parâmetro através da retrospectiva
  2. Prolongar adequadamente o ciclo de tempo de negociação e reduzir a frequência de negociação
  3. Pode-se considerar a inclusão de filtros filtrter para evitar transações muito frequentes
  4. A distância entre as linhas de suspensão pode ser reduzida de forma adequada, mas não muito.

Direção de otimização

A estratégia pode ser melhorada em:

  1. Optimizar o coeficiente de suspensão para encontrar a melhor combinação de parâmetros
  2. Adição de filtros para evitar o confinamento em situações de tremores
  3. Combinação de vários períodos de tempo de verificação para melhorar a qualidade do sinal
  4. Optimizar a gestão de posições e aumentar gradualmente as posições
  5. Considere o ciclo de tempo de ajuste dinâmico da transação
  6. Combinando ações básicas com ações selecionadas, aproveite as tendências principais

Resumir

A estratégia de ruptura de tendência - stop loss dinâmico é uma estratégia de acompanhamento de tendência muito prática em geral. Ela pode aproveitar as oportunidades de reversão de tendência e, ao mesmo tempo, usar o stop loss dinâmico para controlar efetivamente o risco. Se os parâmetros forem otimizados adequadamente, pode-se obter melhores ganhos em situações de tendência.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=4
strategy(shorttitle='Volatility Stop Strategy',title='Volatility Stop Strategy (by Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

// Works better on 3h, 1h, 2h, 4h
// Best time frame 2H

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "vStop Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(atr(atrlen) * atrfactor, tr)
    max         := max(max, src)
    min         := min(min, src)
    stop        := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)


//Entry 


strategy.entry(id="long", long = true, when = crossover(close, vStop) and window())

//Exit
strategy.close("long", when = crossunder(close, vStop))

plot(vStop,"Vstop", color.black, linewidth=2)