Reversión de precios con estrategia de captura cruzada

El autor:¿ Qué pasa?, Fecha: 2024-01-17 16:29:13
Las etiquetas:

img

Resumen general

La inversión de precios con estrategia de captura de cruce es una estrategia compuesta que combina técnicas de negociación de inversión de precios y cruces de indicadores. Primero genera señales de negociación utilizando patrones de reversión de precios, luego filtra las señales con cruces de sobrecompra / sobreventa de un oscilador estocástico, con el fin de capturar reversiones a corto plazo en el mercado.

Estrategia lógica

La estrategia consta de dos subestrategias:

  1. 123 Estrategia de reversión
  • Cuando el precio de cierre pasa de más alto a más bajo en dos días, y el indicador estocástico de 9 días está en la banda inferior (por debajo de un umbral), se genera una señal de compra
  • Cuando el precio de cierre pasa de más bajo a más alto en dos días, y el indicador estocástico de 9 días está en la banda superior (por encima de un umbral), se genera una señal de venta
  1. Estrategia de intercambio estocástico
  • Cuando la línea %K cruza por debajo de la línea %D, mientras que ambas líneas están en niveles de sobrecompra, se genera una señal de venta
  • Cuando la línea %K cruza por encima de la línea %D, mientras que ambas líneas están en niveles de sobreventa, se genera una señal de compra

La estrategia compuesta comprueba las señales de ambas subestrategias y solo activa operaciones reales cuando las señales se alinean en la misma dirección.

Ventajas

La estrategia combina patrones de reversión de precios y cruces de indicadores para evaluar tanto la acción de precios como la información de los indicadores, lo que ayuda a filtrar señales falsas y descubrir oportunidades de reversión para mejorar la rentabilidad.

Las ventajas específicas incluyen:

  1. Captura rápida de los cambios en el mercado sin largas esperas de consolidación
  2. Aumento de la exactitud de la señal con doble validación de ambas subestrategias
  3. Mejor tasa de ganancia combinando el análisis tanto de la acción de los precios como de los indicadores

Los riesgos

También hay algunos riesgos con esta estrategia:

  1. El precio puede revertirse abruptamente durante la alta volatilidad, causando señales incorrectas
  2. El mal ajuste de los parámetros del indicador afecta la calidad de la señal
  3. No está seguro sobre el momento de la reversión, existe algún riesgo de tiempo

Estos riesgos se pueden gestionar ajustando los parámetros, utilizando stop losses, etc.

Oportunidades de mejora

Algunas formas en que se puede mejorar la estrategia:

  1. Optimización de los parámetros del indicador
  2. Añadir otros filtros como el volumen
  3. Personalizar los parámetros basados en el símbolo y las condiciones del mercado
  4. Incorporar el stop loss para el control del riesgo
  5. Emplear el aprendizaje automático para la identificación de señales

Conclusión

La inversión de precios con la estrategia de captura cruzada combina múltiples estrategias complementarias para obtener ganancias mientras se controlan los riesgos.


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/09/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The  
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This back testing strategy generates a long trade at the Open of the following 
// bar when the %K line crosses below the %D line and both are above the Overbought level.
// It generates a short trade at the Open of the following bar when the %K line 
// crosses above the %D line and both values are below the Oversold level.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


StochCross(Length, DLength,Oversold,Overbought) =>
    pos = 0.0
    vFast = stoch(close, high, low, Length)
    vSlow = sma(vFast, DLength)
    pos := iff(vFast < vSlow and vFast > Overbought and vSlow > Overbought, 1,
    	      iff(vFast >= vSlow and vFast < Oversold and vSlow < Oversold, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic Crossover", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Stochastic Crossover ----")
LengthSC = input(7, minval=1)
DLengthSC = input(3, minval=1)
Oversold = input(20, minval=1)
Overbought = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posmStochCross = StochCross(LengthSC, DLengthSC,Oversold,Overbought)
pos = iff(posReversal123 == 1 and posmStochCross == 1 , 1,
	   iff(posReversal123 == -1 and posmStochCross == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Más.