Estrategia de salida de la lámpara


Fecha de creación: 2024-01-05 15:57:51 Última modificación: 2024-01-05 15:57:51
Copiar: 2 Número de Visitas: 1214
1
Seguir
1664
Seguidores

Estrategia de salida de la lámpara

Descripción general

Esta estrategia utiliza el indicador de la lámpara para determinar la dirección y la intensidad de la ruptura del precio, lo que genera una señal de compra y venta. Sólo realiza operaciones de compra y venta.

Principio de estrategia

La estrategia se basa en el indicador de la lámpara de suspensión, que establece una línea de parada basada en el precio más alto, el precio más bajo y la amplitud real media de los movimientos. En concreto, la estrategia calcula la amplitud real media de los movimientos del día 22 y la multiplica por un coeficiente (default 3) y luego establece una línea de parada larga y una línea de parada corta en función de este valor.

La estrategia solo realiza operaciones de compra y venta. En concreto, genera una señal de compra cuando el precio supera la última línea de parada de la línea larga. Luego genera una señal de venta y liquida la posición cuando el precio cae por encima de la línea de parada de la línea corta.

Análisis de las ventajas

  • La línea de deterioro que se establece dinámicamente con el indicador de la lámpara de suspensión puede controlar el riesgo de manera efectiva
  • La combinación de brechas en el precio genera señales de negociación que permiten capturar la tendencia del precio.
  • La estrategia de evitar el cambio de tendencia en ambos extremos se realiza mediante una operación de compra y venta.
  • Configuración de alertas con múltiples condiciones para monitorear el estado de la política en tiempo real

Análisis de riesgos

  • Los indicadores de las lámparas colgantes son más sensibles a la amplitud de las fluctuaciones y pueden dar una señal errónea si se producen fluctuaciones de precios anormales.
  • No hay un límite de pérdidas después de la compra y no se puede controlar el riesgo de pérdidas de manera efectiva
  • No se consideran las paradas de seguimiento y no se pueden bloquear las ganancias

La solución al riesgo:

  1. En combinación con otros indicadores, se filtran las señales para evitar falsos informes.
  2. Establezca una línea de stop loss y limite el porcentaje de pérdidas máximas
  3. Se incluye un mecanismo de seguimiento de la suspensión que permite considerar la posibilidad de ajustar dinámicamente la salida de la línea o la salida parcial.

Dirección de optimización

  1. Puede probar diferentes configuraciones de parámetros para optimizar el momento de compra y venta
  2. Confirmación de otros indicadores para evitar señales falsas
  3. Se pueden considerar operaciones de compra y venta simultáneas
  4. Se puede configurar el mecanismo de deterioro y deterioro

Resumir

Esta estrategia utiliza la línea de parada dinámica del indicador de la lámpara para identificar oportunidades de reversión del precio. Sólo compra cuando el precio rompe la línea de parada larga hacia arriba y vende cuando el precio cae la línea de parada corta, logrando una estrategia simple de operación unilateral que evita la reversión de ambos extremos de la situación. La estrategia controla el riesgo de manera efectiva, pero no tiene paradas y paradas.

Código Fuente de la Estrategia
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chandelier Exit Strategy", overlay=true)

length = input(title='ATR Period', defval=22)
mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
showLabels = input(title='Show Buy/Sell Labels ?', defval=true)
useClose = input(title='Use Close Price for Extremums ?', defval=true)
highlightState = input(title='Highlight State ?', 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

var color longColor = color.green
var color shortColor = color.red

longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.new(longColor, 0))
buySignal = dir == 1 and dir[1] == -1
plotshape(buySignal ? longStop : na, title='Long Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(longColor, 0))
plotshape(buySignal and showLabels ? longStop : na, title='Buy Label', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(longColor, 0), textcolor=color.new(color.white, 0))

shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.new(shortColor, 0))
sellSignal = dir == -1 and dir[1] == 1
plotshape(sellSignal ? shortStop : na, title='Short Stop Start', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(shortColor, 0))
plotshape(sellSignal and showLabels ? shortStop : na, title='Sell Label', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(shortColor, 0), textcolor=color.new(color.white, 0))

changeCond = dir != dir[1]
alertcondition(changeCond, title='Alert: CE Direction Change', message='Chandelier Exit has changed direction!')
alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!')
alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')

// Define initial capital
initial_capital =25

// Trigger buy order and close buy order on sell signal
if buySignal
    strategy.entry("Buy", strategy.long, qty = initial_capital / close)

if sellSignal
    strategy.close("Buy")