Estrategia avanzada de stop loss dinámico y objetivo de beneficio

RSI ATR SMA
Fecha de creación: 2024-12-11 14:57:09 Última modificación: 2024-12-11 14:57:09
Copiar: 0 Número de Visitas: 383
1
Seguir
1617
Seguidores

Estrategia avanzada de stop loss dinámico y objetivo de beneficio

Descripción general

La estrategia es un sistema de negociación avanzado que combina el seguimiento dinámico de los parámetros de pérdidas y ganancias de riesgo y la salida de los extremos del RSI. La estrategia realiza operaciones mediante la identificación de formas específicas en el mercado: formas de línea K paralela y formas de línea K acústica, mientras que utiliza el ATR y los mínimos recientes para establecer un nivel de pérdida dinámica y determinar objetivos de ganancias en función de la proporción de riesgo y ganancias predeterminadas.

Principio de estrategia

La lógica central de la estrategia incluye las siguientes partes clave:

  1. Las señales de entrada se basan en dos formas: la forma de línea K paralela (la línea del sol grande sigue a la línea del sol pequeño) y la forma de línea K de doble aguja.
  2. El stop tracking dinámico utiliza el ATR multiplicado por el precio mínimo de la raíz N más reciente de la línea K para asegurar que el stop se adapte dinámicamente a las fluctuaciones del mercado.
  3. El objetivo de ganancias se basa en una configuración fija de la relación entre el riesgo y el rendimiento, que se determina calculando el valor de riesgo ® de cada operación.
  4. El tamaño de la posición se calcula en función de la cantidad de riesgo fijo y el valor de riesgo dinámico por transacción.
  5. El mecanismo de salida de los extremos del RSI dispara una señal de posición cerrada cuando el mercado está demasiado caliente o demasiado frío.

Ventajas estratégicas

  1. Gestión de riesgo dinámica: mediante la combinación de ATR y los mínimos recientes, el stop loss puede ajustarse a la dinámica de las fluctuaciones del mercado.
  2. Control de posición preciso: El método de cálculo de posiciones basado en una cantidad fija de riesgo asegura que el riesgo de cada operación sea uniforme.
  3. Un mecanismo de salida multidimensional: un mecanismo de salida triple combinado con un seguimiento de stop loss, un objetivo de ganancias fijas y un RSI máximo.
  4. Opciones de dirección de negociación flexibles: solo hacer más, solo hacer menos o negociar en ambos sentidos.
  5. Establecimiento de un claro riesgo-rendimiento: mediante el establecimiento de un riesgo-rendimiento más claro que el objetivo de ganancias por transacción.

Riesgo estratégico

  1. Riesgo de la precisión de la identificación de formas: la identificación de líneas K paralelas y líneas K con puntas puede ser mal interpretada.
  2. Riesgo de deslizamiento en la configuración de stop loss: puede enfrentarse a un deslizamiento mayor en un mercado con gran volatilidad.
  3. El RSI puede salir demasiado pronto: en un mercado de fuerte tendencia, puede provocar una salida anticipada y perder más ganancias.
  4. Limitaciones de la relación de riesgo-rendimiento fija: la relación de riesgo-rendimiento óptima puede ser diferente en diferentes entornos de mercado.
  5. Riesgo de sobreadaptación de la optimización de parámetros: la combinación de varios parámetros puede conducir a una optimización excesiva.

Dirección de optimización de la estrategia

  1. Optimización de la señal de entrada: se pueden agregar más indicadores de confirmación de forma, como volumen de transacciones, indicadores de tendencia, etc.
  2. Dinámica de la relación de riesgo-rendimiento: la relación de riesgo-rendimiento se ajusta a la dinámica de la volatilidad del mercado.
  3. Adaptación de parámetros inteligentes: la introducción de algoritmos de aprendizaje automático para optimizar dinámicamente los parámetros.
  4. Confirmación de varios períodos de tiempo: Mecanismo de confirmación de señales que se añaden más períodos de tiempo.
  5. Clasificación del entorno de mercado: combinaciones diferentes de parámetros según el entorno de mercado.

Resumir

Se trata de una estrategia de negociación bien diseñada, que combina varios conceptos de análisis técnico bien desarrollados para construir un sistema de negociación completo. La estrategia tiene la ventaja de tener un sistema de gestión de riesgos completo y reglas de negociación flexibles, pero también debe tener en cuenta la optimización de los parámetros y la adaptabilidad del mercado.

Código Fuente de la Estrategia
/*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)