Estratégia avançada de trailing stop loss dinâmico e lucro alvo

RSI ATR SMA
Data de criação: 2024-12-11 14:57:09 última modificação: 2024-12-11 14:57:09
cópia: 0 Cliques: 383
1
focar em
1617
Seguidores

Estratégia avançada de trailing stop loss dinâmico e lucro alvo

Visão geral

A estratégia é um sistema de negociação avançado que combina o rastreamento dinâmico de stop loss, o risco-recompensação e o RSI para o extremo de saída. A estratégia operação através da identificação de uma forma específica no mercado (a forma de linha K paralela e a forma de linha K acústica), ao mesmo tempo em que utiliza o ATR e os pontos mais baixos recentes para definir o stop loss dinâmico e determinar a meta de lucro com base no risco-retorno predefinido.

Princípio da estratégia

A lógica central da estratégia inclui as seguintes partes principais:

  1. O sinal de entrada baseia-se em duas formas: a forma de linha K paralela (linha do sol maior seguida de linha do dia menor) e a forma de linha K de dupla agulha (linha do sol maior seguida de linha do dia menor).
  2. O stop tracking dinâmico usa o ATR para ajustar o preço mínimo da linha K da raiz N mais próxima, garantindo que o stop se adapte dinamicamente às flutuações do mercado.
  3. Os objetivos de lucro são baseados em um parâmetro de risco-retorno fixo, determinado pela calculação do valor de risco ® de cada transação.
  4. O tamanho da posição é calculado com base no montante de risco fixo e no valor de risco dinâmico por transação.
  5. O mecanismo de saída do limite do RSI dispara um sinal de equilíbrio quando o mercado está muito quente ou muito frio.

Vantagens estratégicas

  1. Gerenciamento de risco dinâmico: através da combinação do ATR com os mínimos mais recentes, o ponto de parada pode ser ajustado de acordo com a dinâmica de flutuação do mercado.
  2. Controle de posição preciso: método de cálculo de posição baseado no montante de risco fixo garante que o risco de cada transação seja consistente.
  3. Mecanismo de saída multidimensional: combinação de tracking de stop loss, meta de lucro fixo e o máximo RSI mecanismo de saída triplo.
  4. Opções de direção de negociação flexíveis: opção de fazer apenas mais, apenas menos ou de negociação bidirecional.
  5. Definir claramente os riscos e os retornos: definindo claramente os objetivos de lucro por transação, através da definição predefinida dos riscos e retornos.

Risco estratégico

  1. Riscos de precisão de identificação de formas: identificação de linhas K paralelas e linhas K acústicas pode ser mal interpretada.
  2. Risco de deslizamento com a configuração de stop loss: pode haver um deslizamento maior em mercados com forte volatilidade.
  3. O RSI pode sair prematuramente dos limites: em mercados de forte tendência, pode levar a uma saída antecipada e perder mais lucros.
  4. Limitações da taxa de retorno de risco fixo: a taxa de retorno de risco ideal pode variar em diferentes cenários de mercado.
  5. Risco de sobreajuste de otimização de parâmetros: a combinação de vários parâmetros pode levar à otimização excessiva.

Direção de otimização da estratégia

  1. Otimização de sinais de entrada: pode-se adicionar mais indicadores de confirmação de forma, como volume de transação, indicadores de tendência, etc.
  2. Taxa de retorno do risco dinâmico: Taxa de retorno do risco ajustada à dinâmica da volatilidade do mercado.
  3. Adaptação inteligente de parâmetros: introdução de algoritmos de aprendizado de máquina para otimização dinâmica dos parâmetros.
  4. Confirmação de múltiplos períodos de tempo: mecanismo de confirmação de sinais com mais períodos de tempo.
  5. Classificação do cenário de mercado: combinações diferentes de parâmetros são usadas para diferentes cenários de mercado.

Resumir

Trata-se de uma estratégia de negociação bem concebida, que combina vários conceitos de análise técnica bem-sucedidos para construir um sistema de negociação completo. A vantagem da estratégia reside no seu sistema abrangente de gerenciamento de riscos e nas regras de negociação flexíveis, mas também precisa prestar atenção à otimização de parâmetros e à adaptabilidade do mercado.

Código-fonte da estratégia
/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading | www.TheArtOfTrading.com
// @version=5
strategy("Trailing stop 1", overlay=true)

// Get user input 
int     BAR_LOOKBACK    = input.int(10, "Bar Lookback")
int     ATR_LENGTH      = input.int(14, "ATR Length")
float   ATR_MULTIPLIER  = input.float(1.0, "ATR Multiplier")
rr                      = input.float(title="Risk:Reward", defval=3)

// Basic definition
var float shares=na
risk = 1000
var float R=na
E = strategy.position_avg_price

// Input option to choose long, short, or both
side = input.string("Long", title="Side", options=["Long", "Short", "Both"])

// RSI exit option
RSIexit = input.string("Yes", title="Exit at RSI extreme?", options=["Yes", "No"])
RSIup = input(75)
RSIdown = input(25)

// Get indicator values 
float atrValue = ta.atr(ATR_LENGTH)

// Calculate stop loss values
var float trailingStopLoss = na 
float longStop  = ta.lowest(low, BAR_LOOKBACK) - (atrValue * ATR_MULTIPLIER)
float shortStop = ta.highest(high, BAR_LOOKBACK) + (atrValue * ATR_MULTIPLIER)

// Check if we can take trades 
bool canTakeTrades = not na(atrValue)
bgcolor(canTakeTrades ? na : color.red)

//Long pattern
    //Two pin bar
onepinbar = (math.min(close,open)-low)/(high-low)>0.6 and math.min(close,open)-low>ta.sma(high-low,14)
twopinbar = onepinbar and onepinbar[1]
notatbottom = low>ta.lowest(low[1],10)
    // Parallel
bigred = (open-close)/(high-low)>0.8 and high-low>ta.sma(high-low,14)
biggreen = (close-open)/(high-low)>0.8 and high-low>ta.sma(high-low,14)
parallel = bigred[1] and biggreen  
atbottom = low==ta.lowest(low,10)

// Enter long trades (replace this entry condition)
longCondition = parallel 
if (longCondition and canTakeTrades and  strategy.position_size == 0 and (side == "Long" or side == "Both"))
    R:= close-longStop
    shares:= risk/R
    strategy.entry("Long", strategy.long,qty=shares)

// Enter short trades (replace this entry condition)
shortCondition = parallel
if (shortCondition and canTakeTrades and strategy.position_size == 0 and (side == "Short" or side == "Both"))
    R:= shortStop - close
    shares:= risk/R
    strategy.entry("Short", strategy.short,qty=shares)

// Update trailing stop
if (strategy.position_size > 0)
    if (na(trailingStopLoss) or longStop > trailingStopLoss)
        trailingStopLoss := longStop
else if (strategy.position_size < 0)
    if (na(trailingStopLoss) or shortStop < trailingStopLoss)
        trailingStopLoss := shortStop
else
    trailingStopLoss := na

// Exit trades with trailing stop
strategy.exit("Long Exit",  "Long",  stop=trailingStopLoss, limit = E + rr*R )
strategy.exit("Short Exit", "Short", stop=trailingStopLoss, limit = E - rr*R)

//Close trades at RSI extreme
if ta.rsi(high,14)>RSIup and RSIexit == "Yes"
    strategy.close("Long")
if ta.rsi(low,14)<RSIdown and RSIexit == "Yes"
    strategy.close("Short")

// Draw stop loss 
plot(trailingStopLoss, "Stop Loss", color.red, 1, plot.style_linebr)