Estrategia de optimización de la relación señal-ruido de inversión de doble oscilación

El autor:¿ Qué pasa?, Fecha: 2023-11-01 16:57:13
Las etiquetas:

img

Resumen general

Esta estrategia combina la estrategia de inversión de oscilación dual y la estrategia de optimización de la relación señal-ruido para formar una estrategia comercial más poderosa y estable.

Estrategia lógica

La estrategia de reversión de oscilación doble calcula los valores de K rápido y lento de los últimos 14 días para determinar si hay una reversión durante dos días de negociación consecutivos.

La estrategia de optimización de la relación señal-ruido calcula la relación señal-ruido de los últimos 21 días y la suaviza con un promedio móvil simple de 29 días.

Por último, esta estrategia solo inicia operaciones de compra o venta cuando ambas estrategias emiten la misma señal.

Análisis de ventajas

  1. La combinación de múltiples estrategias puede generar señales comerciales más precisas y evitar señales falsas de una sola estrategia.

  2. La estrategia de inversión de oscilación dual capta puntos de inversión de tendencia. La optimización de la relación señal-ruido filtra las señales falsas. Trabajando juntos, pueden operar con precisión en las reversiones.

  3. Los parámetros optimizados como los estocásticos rápido / lento de 14 días y el período de señal a ruido de 21 días capturan las tendencias recientes sin demasiado ruido.

  4. Las señales de confirmación dobles reducen significativamente el riesgo de negociación y evitan pérdidas innecesarias.

Análisis de riesgos

  1. Las señales de reversión pueden retrasarse y perder los mínimos o máximos absolutos.

  2. La confirmación de doble señal puede perder algunas oportunidades comerciales.

  3. Los parámetros de la relación señal-ruido necesitan optimización. Los períodos incorrectos pueden causar señales faltantes o falsas.

  4. El monitoreo de múltiples indicadores aumenta la complejidad.

Direcciones de optimización

  1. Pruebe más combinaciones de indicadores para encontrar mejores señales de combinación, como MACD, RSI, etc.

  2. Optimizar los parámetros de la estrategia de inversión para señales más precisas y oportunas.

  3. Optimizar los períodos de relación señal-ruido para encontrar el equilibrio óptimo.

  4. Añadir estrategias de stop loss para controlar las pérdidas potenciales para operaciones individuales.

  5. Considere los métodos de aprendizaje automático para optimizar automáticamente los parámetros para una mejor adaptabilidad.

Conclusión

Esta estrategia combina la inversión de oscilación doble y las estrategias de relación señal-ruido para proporcionar señales estables en los puntos de inversión de tendencia. Los parámetros optimizados reducen significativamente las señales falsas y la doble confirmación reduce los riesgos comerciales.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 196/01/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
// The signal-to-noise (S/N) ratio. 
// And Simple Moving Average.
//
// 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

SignalToNoise(length) =>
    StN = 0.0
    for i = 1 to length-1
        StN := StN + (1/close[i])/length
    StN := -10*log(StN)

StN(length,Smooth) =>
    pos = 0.0
    StN = SignalToNoise(length)
    SMAStN = sma(StN, Smooth)
    pos := iff(SMAStN[0] > StN[0] , -1,
    	     iff(SMAStN[0] < StN[0], 1, 0)) 
    pos

strategy(title="Combo Backtest 123 Reversal & Signal To Noise", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
lengthStN = input(title="Days", type=input.integer, defval=21, minval=2)
SmoothStN =  input(title="Smooth", type=input.integer, defval=29, minval=2)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posStN = StN(lengthStN,SmoothStN)
pos = iff(posReversal123 == 1 and posStN == 1 , 1,
	   iff(posReversal123 == -1 and posStN == -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.