Indicador de STOCH inverso de la transformación aleatoria de Fisher para la parada temporal Estrategia cuantitativa

El autor:¿ Qué pasa?, Fecha: 2024-01-02 11:14:12
Las etiquetas:

img

Resumen general

La idea central de esta estrategia es combinar el Random Fisher Transform y el indicador Temporary Stop Reverse STOCH para tomar decisiones de compra y venta.

Principio de la estrategia

Esta estrategia primero calcula el indicador estándar de STOCH, luego realiza una transformación de Fisher en él para obtener INVLine. Cuando INVLine cruza por encima del umbral inferior dl, se genera una señal de compra. Cuando INVLine cruza por debajo del umbral superior ul, se genera una señal de venta. Al mismo tiempo, esta estrategia también establece un mecanismo de parada para bloquear las ganancias y reducir las pérdidas.

En concreto, la lógica central de esta estrategia es la siguiente:

  1. Calcular el indicador STOCH: utilizar la fórmula estándar para calcular el valor STOCH rápido de las existencias
  2. Transformación de Fisher: realizar una transformación de Fisher en el valor de STOCH para obtener INVLine
  3. Generar señales comerciales: Comprar cuando la línea INVL cruza por encima del dl, vender cuando cruza por debajo del ul
  4. Detención trasera: habilitar un mecanismo de seguimiento de detención temporal para detener la pérdida oportuna

Análisis de ventajas

Las principales ventajas de esta estrategia son las siguientes:

  1. La transformación de Fisher mejora efectivamente la sensibilidad del indicador STOCH y puede detectar oportunidades de inversión de tendencia antes
  2. El mecanismo de suspensión temporal puede controlar eficazmente los riesgos y fijar los beneficios
  3. Es adecuado para operaciones a medio plazo, especialmente para el comercio cuantitativo de alta frecuencia actualmente popular.
  4. Se desempeña bien en condiciones de mercado estables con rendimientos constantes

Análisis de riesgos

Esta estrategia también tiene algunos riesgos:

  1. El indicador STOCH es propenso a generar señales falsas, lo que puede causar operaciones innecesarias.
  2. La transformación de Fisher también amplifica el ruido del indicador STOCH, lo que resulta en más señales falsas
  3. Es fácil detener las pérdidas en los mercados oscilantes y no lograr beneficios sostenibles
  4. Para obtener alfa se requieren períodos de retención relativamente cortos.

Para mitigar estos riesgos, considere optimizar los siguientes aspectos:

  1. Ajustar los parámetros de STOCH para suavizar la curva y reducir el ruido
  2. Optimizar las posiciones de línea de umbral para reducir las probabilidades de operaciones falsas
  3. Añadir condiciones de filtro para evitar la negociación en mercados oscilantes
  4. Ajustar el tiempo de espera para que coincida con el ciclo de funcionamiento

Direcciones de optimización

Las principales direcciones para optimizar esta estrategia incluyen:

  1. Optimizar los parámetros de la transformación de Fisher a la curva INVLine suave
  2. Optimizar la duración del período STOCH para encontrar combinaciones óptimas de parámetros
  3. Optimizar los parámetros de la línea de umbral para reducir las probabilidades de operaciones falsas
  4. Añadir la confirmación del precio del volumen para evitar la parada de seguimiento innecesaria
  5. Añadir filtros de ruptura intradiaria para reducir las señales falsas en los mercados oscilantes
  6. Incorporar indicadores de tendencia para evitar operaciones contra tendencia

Conclusión

Esta estrategia combina la Transformación aleatoria de Fisher y el indicador STOCH para implementar una estrategia cuantitativa a corto plazo simple y práctica. Su ventaja radica en la alta frecuencia de operación, que es adecuada para el comercio cuantitativo de alta frecuencia actualmente popular. Al mismo tiempo, esta estrategia también tiene algunos riesgos comunes de la estrategia de indicadores técnicos. Los parámetros y las condiciones de filtro deben optimizarse para reducir los riesgos y mejorar la estabilidad. En general, esta estrategia proporciona una buena idea para el comercio cuantitativo simple y merece una investigación más profunda.


/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("IFT Stochastic + Trailing Stop", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//INPUTS
stochlength=input(19, "STOCH Length")
wmalength=input(4, title="Smooth")
ul = input(0.64,step=0.01, title="UP line")
dl = input(-0.62,step=0.01, title="DOWN line")
uts = input(true, title="Use trailing stop")
tsi = input(title="trailing stop actiation pips",defval=245)                                                                       
tso = input(title="trailing stop offset pips",defval=20)

//CALCULATIONS
v1=0.1*(stoch(close, high, low, stochlength)-50)
v2=wma(v1, wmalength)
INVLine=(exp(2*v2)-1)/(exp(2*v2)+1)

//CONDITIONS
sell = crossunder(INVLine,ul)? 1 : 0
buy = crossover(INVLine,dl)? 1 : 0

//PLOTS
plot(INVLine, color=aqua, linewidth=1, title="STOCH")
hline(ul, color=red)
hline(dl, color=green)
bgcolor(sell==1? red : na, transp=30, title = "sell signal")
bgcolor(buy==1? lime : na, transp=30, title = "buy signal")
plotchar(buy==1, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(sell==1, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)

//STRATEGY
strategy.entry("BUY", strategy.long, when = buy==1)
strategy.entry("SELL", strategy.short, when = sell==1)

if  (uts)
    strategy.entry("BUY", strategy.long, when = buy)
    strategy.entry("SELL", strategy.short, when = sell)
    strategy.exit("Close BUY with TS","BUY", trail_points = tsi, trail_offset = tso)
    strategy.exit("Close SELL with TS","SELL", trail_points = tsi, trail_offset = tso)


Más.