Estrategia selectiva de dupla superposición de inversión

El autor:¿ Qué pasa?, Fecha: 2023-10-26 16:56:56
Las etiquetas:

img

Resumen general

La Estrategia Selectiva de Superposición de Reversión Doble combina estrategias de negociación de reversión con filtros de sobrecompra y sobreventa para lograr la asignación de activos y la negociación de tiempo.

Estrategia lógica

La estrategia consta de dos subestrategias que se superponen:

  1. 123 Estrategia de reversión

Esta estrategia utiliza señales de reversión basadas en dos días consecutivos de reversión del precio de cierre. Específicamente, va largo si los precios de cierre aumentan en los últimos dos días y el estocástico lento de 9 días está por debajo de 50, y va corto si los precios de cierre caen en los últimos dos días y el estocástico rápido de 9 días está por encima de 50.

  1. Estrategia del oscilador DSS

Esta estrategia utiliza el oscilador DSS para el análisis de sobreventa comprada. Va largo si el MA de 5 días está por debajo del MA de 10 días y el nivel de sobreventa de 20, y va corto si el MA de 5 días está por encima del MA de 10 días y el nivel de sobreventa de 80.

La señal final sólo se genera cuando ambas estrategias coinciden, lo que mejora la rentabilidad al combinar las fortalezas de los dos tipos de estrategia.

Análisis de ventajas

  1. Combina las ventajas de las estrategias de reversión y sobrecompra-sobreventa: atrapar reversiones a corto plazo y evitar operaciones irracionales en zonas.

  2. La lógica simple y pocos parámetros hacen que la inversión 123 sea fácil de implementar.

  3. La combinación mejora la fiabilidad de la señal al reducir las señales falsas.

  4. El ajuste flexible de los parámetros adapta la estrategia a los diferentes mercados.

Análisis de riesgos

  1. Las estrategias de reversión tienen recolección de centavos riesgo y frota en mercados variados.

  2. La optimización de DSS es difícil y sensible a los parámetros.

  3. Las señales divergentes pueden perder oportunidades comerciales.

  4. Los simples indicadores de precios limitan la rentabilidad.

Soluciones:

  1. Acortar los períodos de retención para reducir el riesgo de la sierra.

  2. Ajuste cuidadoso de parámetros basado en ejemplos exitosos.

  3. Añadir filtros para mejorar la estrategia.

  4. Optimice el tiempo de entrada o el tamaño de la posición.

Direcciones de mejora

  1. Prueba otros indicadores de inversión para mejorar la precisión de la señal.

  2. Explore indicadores alternativos de sobrecompra y sobreventa como el RSI.

  3. Agregue stop loss para bloquear las ganancias y limitar las pérdidas.

  4. Optimizar los parámetros para diferentes mercados.

  5. Considere el ajuste de parámetros dinámicos.

  6. Construir modelos de aprendizaje automático para generar señales.

Conclusión

La estrategia selectiva de duplicación de inversiones proporciona tanto la asignación de activos como la funcionalidad de negociación de tiempo mediante la combinación de estrategias de inversión y sobrecompra. Tiene ventajas como parámetros flexibles, lógica simple y fácil implementación, filtrando efectivamente los intercambios de ruido en zonas irracionales. Pero existen limitaciones como riesgos de inversión y dificultades de optimización de parámetros. Las mejoras futuras pueden provenir de la adición de stop loss, optimización de parámetros, incorporación de aprendizaje automático, etc. En general, proporciona una solución comercial cuantitativa robusta.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/03/2020
// 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
// Double Smoothed Stochastics (DSS) is designed by William Blaw. 
// It attempts to combine moving average methods with oscillator principles. 
//
// 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

DSSB(PDS, EMAlen,TriggerLen,Overbought,Oversold) =>
    pos = 0
    xPreCalc = ema(stoch(close, high, low, PDS), EMAlen)
    xDSS = ema(stoch(xPreCalc, xPreCalc, xPreCalc, PDS), EMAlen)
    xTrigger = ema(xDSS, TriggerLen)
    pos := iff(xTrigger < xDSS and xTrigger < Oversold, -1,
	         iff(xTrigger > xDSS and xTrigger > Overbought, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & DSS Bressert", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PDS = input(10, minval=1)
EMAlen = input(9, minval=1)
TriggerLen = input(5, minval=1)
Overbought = input(80, minval=1)
Oversold = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDSS = DSSB(PDS, EMAlen,TriggerLen,Overbought,Oversold)
pos = iff(posReversal123 == 1 and posDSS == 1 , 1,
	   iff(posReversal123 == -1 and posDSS == -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.