Estrategia de reversión bidireccional

El autor:¿ Qué pasa?, Fecha: 2023-11-02 16:47:08
Las etiquetas:

img

Resumen general

La estrategia de inversión bidireccional es una estrategia de comercio de Bitcoin simple que establece órdenes de compra stop-loss basadas en el rango de negociación del día anterior. La idea central de esta estrategia es que si el precio de apertura en el día actual es mayor que el precio de cierre del día anterior, establezca una compra stop-loss cerca del máximo; si el precio de apertura es menor que el precio de cierre del día anterior, establezca una compra stop-loss cerca del mínimo.

Estrategia lógica

La estrategia primero calcula el rango de negociación del día anterior, que es el precio más alto menos el precio más bajo. Después de la apertura del día actual, juzga si el precio es más alto o más bajo que el precio de cierre del día anterior. Si es mayor, el precio de compra de stop-loss se establece en el precio de apertura más 0.6 veces el rango del día anterior. Si es menor, el precio de compra de stop-loss se establece en el precio de apertura más 1.8 veces el rango del día anterior. La estrategia abrirá una posición larga cuando se active el stop loss y cerrará la posición antes del final del día actual.

En concreto, la estrategia contiene dos reglas de entrada:

  1. Si el precio de apertura del día en curso es superior al precio de cierre del día anterior (longCond1 satisfecho), y dentro de la ventana de tiempo de backtest (window() satisfecho, establecer una compra con stop-loss al precio de apertura más 0,6 veces el rango del día anterior (estrategia.long1).

  2. Si el precio de apertura del día actual es inferior al precio de cierre del día anterior (longCond2 satisfecho), y dentro de la ventana de backtest, establecer una compra con stop-loss al precio de apertura más 1,8 veces el rango del día anterior (estrategia.long2).

La estrategia abrirá una posición larga cuando se active cualquiera de las pérdidas de parada anteriores y cerrará la posición antes del final del día utilizando strategy.close_all (().

Análisis de ventajas

La estrategia de inversión bidireccional tiene las siguientes ventajas:

  1. Captura movimientos de reversión sin sesgo direccional. La estrategia considera al alza y a la baja, captando las rupturas de reversión en ambas direcciones.

  2. El riesgo controlado con stop loss: el stop loss predeterminado limita efectivamente la pérdida máxima por operación.

  3. Se evita el riesgo de la noche a la mañana cerrando todas las posiciones diariamente.

  4. Se trata de un sistema de negociación que permite a los inversores a corto plazo mantener posiciones durante un solo día, lo que garantiza una alta frecuencia de operaciones.

  5. Lógica simple y clara, fácil de entender e implementar.

Análisis de riesgos

Sin embargo, también hay algunos riesgos a tener en cuenta para la estrategia:

  1. Si el stop loss es demasiado apretado, podría detenerse prematuramente en condiciones extremas de mercado.

  2. La apertura y cierre diarios de posiciones pueden acumular comisiones considerables.

  3. Las pérdidas de parada tienden a desencadenarse con más frecuencia en condiciones de torsión.

  4. La estrategia es más adecuada para las reversiones, incapaz de capturar ganancias de la continuación de la tendencia.

Oportunidades de mejora

Algunas formas en que se puede mejorar la estrategia:

  1. Optimiza la distancia de stop loss. Prueba diferentes niveles de stop para encontrar puntos óptimos de stop loss. También considera las paradas dinámicas basadas en la volatilidad del mercado.

  2. Añadir filtros de tendencia. Compruebe las tendencias de los marcos de tiempo más grandes antes de entrar para evitar operaciones contra tendencia.

  3. Mejorar las reglas de entrada y considerar la adición de indicadores de volumen o impulso para aumentar la precisión de entrada.

  4. Introduzca la gestión de posiciones. Pruebe las paradas traseras o la tendencia después de las salidas para conducir tendencias rentables.

  5. Prueba diferentes productos. La estrategia puede funcionar mejor con productos de mayor volatilidad.

  6. Utiliza técnicas de aprendizaje automático. Optimiza parámetros como paradas y entradas usando algoritmos ML.

Conclusión

En general, la estrategia de reversión bidireccional es un concepto de estrategia a corto plazo muy simple y práctico. Puede capturar efectivamente las oportunidades de reversión en movimientos al alza y a la baja. Sin embargo, los riesgos como la distancia de stop loss y las reglas de entrada deben optimizarse para reducir los riesgos y mejorar la robustez. Con refinamientos clave, la estrategia puede convertirse en una herramienta de negociación a corto plazo muy útil.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Simple strat", shorttitle="Simple Strat", overlay=true)

// X001TK R1 strategy
//
// 
// This strategy combines the special approach in previous daily range trading
//
// This strategy goes long on stop buy order which is calculated as previous day range
// multiplied by special number.
//
// This pure strategy does not have any
// stop loss or take profit money management logic.
//
// Exit rule is simple. We close the position on market close or next day open
//
// 
// 
//
// Input
length = input(10, minval=1)
stopLossPercent=input(1.1,"Stop Loss Percent")
profitPercent=input(9,"Profit Percent")


// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2029, title = "To Year", minval = 2017)
ses_cls = input(defval=true, title="End of Session Close Out?")


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


// === STRATEGY ===
// conditions
longCond1 = close>close[1]
longCond2 = close<close[1]


strategy.entry("long1", strategy.long, when=longCond1==true and window()==true, stop=close+(high - low)*0.6)
strategy.entry("long2", strategy.long, when=longCond2==true and window()==true, stop=close+(high - low)*1.8)
strategy.close_all(when=ses_cls)

// === /STRATEGY ===

Más.