Estrategia compuesta de creación de riqueza

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

img

Resumen general

Esta estrategia es una estrategia de trading compuesta que tiene como objetivo obtener ganancias a medio y corto plazo.

Estrategia lógica

La estrategia consta de dos partes:

123 Estrategia de reversión

Esta parte está adaptada a partir de la estrategia de inversión descrita en la página 183 del libro Cómo triplicé mi dinero en el mercado de futuros de Ulf Jensen. Va largo cuando el precio de cierre es mayor que el cierre anterior durante 2 días consecutivos y el estocástico lento de 9 días está por debajo de 50.

Una estrategia de oscilador increíble

Esta parte utiliza el indicador Awesome Oscillator, que compara el valor actual de AO con el anterior. Si el valor actual de AO es mayor que el anterior, indica una buena oportunidad de ir largo y el color de la barra del histograma es azul. Si el valor actual de AO no es mayor que el anterior, indica una buena oportunidad de ir corto y el color de la barra es rojo.

La señal combinada se genera de la siguiente manera: si las estrategias 123 Reversal y Awesome Oscillator dan ambas señales de compra, adopte una estrategia larga; si ambas dan señales de venta, adopte una estrategia corta.

Análisis de ventajas

La mayor ventaja de esta estrategia compuesta es que combina las fortalezas de dos tipos diferentes de estrategias, mejorando la fiabilidad y estabilidad de las señales comerciales.

Específicamente, la estrategia 123 Reversal es más aplicable en el mediano a corto plazo y puede capturar oportunidades de reversión. La estrategia Awesome Oscillator se centra más en tendencias a corto plazo y es más sensible.

Además, esta estrategia utiliza ampliamente la información de la línea K y un indicador de oscilador, teniendo en cuenta tanto la acción del precio en sí como la relación volumen-precio para un enfoque más completo.

Análisis de riesgos

El mayor riesgo de esta estrategia es que la combinación de múltiples estrategias también agrava sus riesgos individuales.

La estrategia 123 Reversal en sí misma no puede evitar completamente el riesgo de quedar atrapado en un mercado de rango.

Además, la configuración de parámetros también afecta el rendimiento de la estrategia.

Para mitigar los riesgos, dimensionar adecuadamente las posiciones para limitar la caída en operaciones individuales. También establecer órdenes de stop loss para evitar perder más.

Direcciones de optimización

La estrategia se puede optimizar aún más en los siguientes aspectos:

  1. Prueba y optimiza los parámetros para encontrar la combinación óptima de parámetros.

  2. Añadir otros indicadores o filtros para mejorar aún más la calidad de la señal.

  3. Optimizar en diferentes plazos para un enfoque de múltiples plazos.

  4. Añadir paradas dinámicas para controlar mejor los riesgos.

  5. Considerar los costes reales de las transacciones y definir los criterios de entrada/salida.

  6. Considere la dirección de la tendencia principal para evitar el comercio de contra-tendencia.

Conclusión

Esta estrategia combina las fortalezas de las estrategias 123 Reversal y Awesome Oscillator, mejorando la confiabilidad de la señal al tiempo que mantiene la flexibilidad y sensibilidad a los cambios del mercado.


/*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 09/08/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 indicator plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//
// 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


BWAC(nLengthSlow,nLengthFast) =>
    pos = 0.0
    xSMA1_hl2 = sma(hl2, nLengthFast)
    xSMA2_hl2 = sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    pos:= iff(nRes > nRes[1], 1,
             iff(nRes < nRes[1], -1, nz(pos[1], 0)))  
    pos

strategy(title="Combo Backtest 123 Reversal & Awesome Oscillator (AC)", 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, "---- Awesome Oscillator (AC) ----")
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBWAC = BWAC(nLengthSlow,nLengthFast)
pos = iff(posReversal123 == 1 and posBWAC == 1 , 1,
	   iff(posReversal123 == -1 and posBWAC == -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.