
Esta estrategia tiene como objetivo aprovechar la función de seguimiento de la parada de pérdidas de Bitmestra para ajustar dinámicamente el precio de la parada de pérdidas y lograr una parada más precisa y flexible. La estrategia no se utiliza para entrar y salir, sino para dar un rango de parada razonable en diferentes condiciones de mercado.
La estrategia utiliza tres indicadores principales: precio máximo, precio mínimo y precio de cierre. La estrategia define primero el alcance de los paros para las posiciones largas y cortas, es decir, el alcance de los paros para el seguimiento de múltiples posiciones.longoffsetDistancia de deterioro de seguimiento en blancoshortoffset│ donde la distancia de posición larga es 228.5 puntos por defecto y la distancia de posición corta es 243.5 puntos por defecto │
La estrategia entonces aplica la siguiente lógica de ajuste para rastrear el precio de paradatrailstop:
De esta manera, se puede seguir el precio de parada en tiempo real, ajustado en función de los cambios en los precios más altos y más bajos del mercado, para lograr una parada dinámica.
La mayor ventaja de esta estrategia es que permite un seguimiento de stop loss realmente dinámico y flexible. En comparación con los precios de stop loss fijos, el seguimiento dinámico puede ajustar el alcance de los stop losses según las fluctuaciones del mercado, evitando que los stop losses demasiado grandes traigan pérdidas innecesarias y evitar que los stop losses demasiado pequeños sean golpeados por las fluctuaciones normales de los precios. Esto reduce tanto las pérdidas innecesarias como la probabilidad de un stop losses prematuro.
Otra ventaja es que el Stop Loss Distance es personalizable y optimizable. El usuario puede elegir su propio Stop Loss Distance en función de las características de las diferentes variedades y estilos de negociación. Esto permite que la estrategia se aplique a un mayor número de escenarios.
Finalmente, la lógica de deterioro de esta estrategia es simple, clara y fácil de entender, además de ser fácil de reutilizar e integrar en otras estrategias, lo cual es una de sus ventajas.
Los principales riesgos de esta estrategia son los siguientes:
El paro dinámico sólo puede reducir las pérdidas en condiciones normales, no puede protegerse contra los grandes eventos inesperados o las pérdidas causadas por situaciones extremas. Esta es la propia limitación del paro dinámico.
Si la distancia de seguimiento de la parada es demasiado grande, puede causar la expansión de las pérdidas. Si la distancia es demasiado pequeña, la parada puede ser prematura. La configuración de la distancia debe ser cuidadosamente probada y optimizada según las características de la variedad.
En las líneas de K de los primeros días de apertura, la distancia de parada puede ser excesiva debido al seguimiento de los mecanismos de parada, y existe un cierto riesgo adicional durante este tiempo.
Esta estrategia puede ser optimizada en las siguientes direcciones:
Optimización de los parámetros de las diferentes variedades: la elección de un rango razonable de pérdidas de seguimiento de múltiples y vacíos en función de los indicadores de fluctuación de las diferentes variedades y el rango de fluctuación diaria. Esta es la dirección de optimización más importante.
Reducir el riesgo adicional de varias líneas K después de la apertura de la posición: se puede limitar la amplitud de ajuste de la distancia de parada de seguimiento en varias líneas K después de la apertura de la posición, para evitar una distancia de parada excesiva.
Combinación de indicadores de volumen de transacciones: por ejemplo, reducir la distancia de parada de pérdidas en la etapa de mayor volumen de transacciones, para evitar pérdidas por arbitraje.
Combinación con otras estrategias de entrada y salida: la función principal de esta estrategia es rastrear el stop loss, que se puede integrar en otras estrategias y usar junto con las reglas de entrada y salida.
La estrategia implementa una función de parada de pérdidas de seguimiento dinámico en función de los cambios en los precios máximos y mínimos de la operación. Esto puede reducir de manera efectiva las pérdidas innecesarias en condiciones normales, y también soluciona mejor el problema de que la distancia de parada fija es demasiado grande o demasiado pequeña. La dirección clave de optimización es probar los parámetros adecuados para las diferentes variedades, así como el control de riesgo de las líneas K después de abrir la posición.
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//By River
strategy("BitMex Trailing Stop Strategy", overlay=true)
longoffset = input(defval=228.5, title="Long Trailing Stop Size", type=float, minval=0.5, maxval=1000, step=0.5)
shortoffset = input(defval=243.5, title="Short Trailing Stop Size ", type=float, minval=0.5, maxval=1000, step=0.5)
hiprice = request.security(syminfo.tickerid, "1", high)
loprice = request.security(syminfo.tickerid, "1", low)
price = request.security(syminfo.tickerid, "1", close)
trailstop = price
trailstop := (loprice <= trailstop[1] and loprice[1] >= trailstop[2]) ? price + shortoffset : ((hiprice >= trailstop[1] and hiprice[1] <= trailstop[2]) ? price - longoffset : (hiprice > trailstop[1] ? max(hiprice - longoffset, trailstop[1]) : (loprice < trailstop[1] ? min(loprice + shortoffset, trailstop[1]) : price)))
trailcol = trailstop > price ? red : green
plot(trailstop, color=trailcol)
longCondition = trailcol == green
alertcondition(longCondition, "Long Stop alert", "BUY")
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = trailcol == red
alertcondition(shortCondition, "Short alert", "SELL")
if (shortCondition)
strategy.entry("Short", strategy.short)