Estrategia de trading con trailing stop loss dinámico basada en ATR

ATR EMA TS
Fecha de creación: 2024-12-12 16:18:19 Última modificación: 2024-12-12 16:18:19
Copiar: 0 Número de Visitas: 384
1
Seguir
1617
Seguidores

Estrategia de trading con trailing stop loss dinámico basada en ATR

Descripción general

La estrategia es una estrategia de stop loss de seguimiento dinámico basada en el indicador ATR (medio real amplitud de onda). Se ajusta dinámicamente la posición de stop loss a través de los valores ATR y se confirma la señal de negociación en combinación con la línea media EMA. La estrategia admite una gestión de posición flexible, que se puede personalizar en función de diferentes entornos de mercado y el número de compras y ventas de las variedades de negociación.

Principio de estrategia

La lógica central de la estrategia se basa en los siguientes elementos clave:

  1. Utiliza el indicador ATR para calcular la volatilidad del mercado y ajusta la distancia de parada con factores personalizados por el usuario
  2. Establecer una línea de stop loss de seguimiento dinámico que se ajuste automáticamente a los cambios en el precio
  3. Utiliza el cruce de la línea media de EMA con la línea de seguimiento de stop loss para confirmar la señal de negociación
  4. Se produce una señal de negociación cuando el precio rompe la línea de seguimiento de los paros y la EMA lo confirma
  5. Controlar el número de transacciones por transacción a través de un sistema de gestión de posiciones y rastrear el estado de la cartera en tiempo real

Ventajas estratégicas

  1. Adaptabilidad: el indicador ATR puede ajustar automáticamente el margen de pérdida en función de las fluctuaciones del mercado, lo que permite a la estrategia mantener un buen rendimiento en diferentes entornos de mercado
  2. Gestión de riesgos avanzada - Un mecanismo de trazado dinámico de los stop-losses permite proteger eficazmente los beneficios obtenidos y limitar las pérdidas potenciales
  3. Flexibilidad operativa - soporte para el número de transacciones personalizadas y parámetros ATR, que se pueden optimizar según las características de las diferentes variedades de transacciones
  4. La señal es fiable - confirmación de la línea media por EMA, reduciendo el efecto de la falsa señal
  5. Automatización total: las estrategias pueden ser completamente automatizadas y reducir la interferencia emocional humana.

Riesgo estratégico

  1. Riesgo de mercado en turbulencia - en un mercado en turbulencia horizontal puede producirse una frecuente señal de brecha falsa, lo que puede conducir a un exceso de operaciones
  2. Riesgo de deslizamiento - puede haber un deslizamiento más grande en un escenario rápido que afecte el rendimiento de la estrategia
  3. Sensibilidad de los parámetros: la elección de los ciclos y coeficientes de ATR tiene un mayor impacto en el rendimiento de la estrategia
  4. Riesgo de gestión de fondos - el número de operaciones incorrectamente configuradas puede conllevar el riesgo de exceso de leverage
  5. Riesgo de fluctuaciones en el mercado - los puntos de parada pueden ser alcanzados instantáneamente en momentos de gran volatilidad

Dirección de optimización de la estrategia

  1. Introducción de mecanismos de identificación de entornos de mercado que utilizan diferentes combinaciones de parámetros en diferentes estados de mercado
  2. La adición de un factor de transacción como condición de filtración de la señal para mejorar la fiabilidad de la señal de transacción
  3. Optimización de los algoritmos de gestión de fondos para ajustar el tamaño de las posiciones en función de la volatilidad
  4. Mecanismo de filtración de tiempo para evitar operaciones en momentos inadecuados para el comercio
  5. Desarrollo de sistemas de optimización de parámetros adaptativos que permiten el ajuste dinámico de los parámetros

Resumir

La estrategia, combinada con el indicador ATR y la línea de paridad EMA, construye un sistema de trazado de pérdidas dinámico y confiable. Su ventaja es que puede adaptarse a la volatilidad del mercado, tiene un mecanismo de gestión de riesgos completo y, al mismo tiempo, mantiene la flexibilidad de las operaciones. Si bien existen algunos riesgos inherentes, la estrategia espera mantener un rendimiento estable en diferentes entornos de mercado mediante la optimización y el perfeccionamiento continuos.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='ADET GİRMELİ Trend İz Süren Stop Strategy', overlay=true, overlay=true,default_qty_type = strategy.fixed, default_qty_value = 1)

// Inputs
a = input(9, title='Key Value. "This changes the sensitivity"')
c = input(3, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')

xATR = ta.atr(c)
nLoss = a * xATR

src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close

xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2

pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3

xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue

ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)

buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below

barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
// Alım ve Satım Sinyalleri
buySignal = src > xATRTrailingStop and above
sellSignal = src < xATRTrailingStop and below

// Kullanıcı girişi
sell_quantity = input.int(1, title="Sell Quantity", minval=1)
buy_quantity = input.int(1, title="Buy Quantity", minval=1)

// Portföy miktarı (örnek simülasyon verisi)
var portfolio_quantity = 0

// Sinyal üretimi (örnek sinyal, gerçek stratejinizle değiştirin)
indicator_signal = (src > xATRTrailingStop and above) ? "buy" : 
                   (src < xATRTrailingStop and below) ? "sell" : "hold"

// Şartlara göre al/sat
if indicator_signal == "buy" and portfolio_quantity < buy_quantity
    strategy.entry("Buy Order", strategy.long, qty=buy_quantity)
    portfolio_quantity := portfolio_quantity + buy_quantity

if indicator_signal == "sell" and portfolio_quantity >= sell_quantity
    strategy.close("Buy Order", qty=sell_quantity)
    portfolio_quantity := portfolio_quantity - sell_quantity
// Plot buy and sell signals
plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)

// Bar coloring
barcolor(barbuy ? color.rgb(6, 250, 14) : na)
barcolor(barsell ? color.red : na)

// Alerts
alertcondition(buy, 'UT Long', 'UT Long')
alertcondition(sell, 'UT Short', 'UT Short')

// Strategy Entry and Exit
if buy
    strategy.entry('Long', strategy.long)
if sell
    strategy.entry('Short', strategy.short)

// Optional Exit Conditions
if sell
    strategy.close('Long')
if buy
    strategy.close('Short')