Estrategia de los toros y los osos con doble equilibrio

El autor:¿ Qué pasa?, Fecha: 2023-10-30 10:31:17
Las etiquetas:

img

Resumen general

La estrategia de bulls y bears es una combinación de estrategias que incorpora la estrategia 123 de reversión y el indicador de balance de bulls y bears.

Principios

La estrategia consta de dos subestrategias:

  1. 123 Estrategia de reversión. Genera señales cuando los dos últimos precios de cierre muestran reversión, es decir, se hace largo cuando los dos precios de cierre anteriores estaban disminuyendo mientras que el tercer precio de cierre aumenta, y se hace corto cuando los dos precios de cierre anteriores estaban aumentando mientras que el tercer precio de cierre disminuye. También incorpora el indicador STOCH para tomar señales solo cuando STOCH muestra condiciones de sobreventa o sobrecompra.

  2. Estrategia de indicador de balance de bulls and bears. Juzga la tendencia del mercado calculando el equilibrio entre las fuerzas alcistas y bajistas. Específicamente, utiliza la diferencia entre el precio de cierre actual y el precio de apertura, así como la diferencia entre el día actual y el anterior para determinar las fuerzas alcistas y bajistas. Cuanto mayor sea la diferencia entre las fuerzas alcistas y bajistas, más pronunciada será la tendencia.

La estrategia combinada obtiene sus señales comerciales de las señales generadas por las dos subestrategias. Solo tomará una señal, por ejemplo, ir largo, cuando las dos subestrategias den señales consistentes, es decir, ambas señales para ir largo. Si las señales de las dos subestrategias difieren, la estrategia combinada omitirá esa señal y permanecerá al margen.

Ventajas

La mayor ventaja de la estrategia de bulls y bears es su alta confiabilidad. Al requerir señales consistentes de ambas subestrategias antes de entrar en una operación, sirve como un mecanismo de verificación para evitar señales falsas. Además, con las dos subestrategias aprovechando oportunidades de los lados de inversión y tendencia respectivamente, la estrategia ofrece diversificación para mitigar los riesgos de una sola estrategia.

La estrategia de reversión 123 puede capturar oportunidades de reversión a corto plazo en el mercado. La estrategia de balance de toros y osos puede determinar la dirección de la tendencia a largo plazo.

Los riesgos

Aunque la estrategia combinada requiere señales consistentes, si ambas subestrategias dan señales incorrectas al mismo tiempo, la estrategia combinada todavía entrará en el comercio, incurriendo en pérdidas duplicadas.

Además, pueden surgir conflictos entre las subestrategias, con una señal de ir largo mientras que el otro corto. La estrategia combinada entonces perderá oportunidades. Los conflictos prolongados pueden impedir que la estrategia combinada entre durante mucho tiempo, disminuyendo la eficiencia del capital.

Optimización

Considere incorporar una estrategia de inversión de tendencia como tercera subestrategia. Puede ayudar a determinar la tendencia a largo plazo y dar señales cuando la tendencia se invierte. Agregar una estrategia para juzgar la tendencia del mercado puede filtrar aún más las señales falsas y aumentar la estabilidad.

Otra dirección es el ajuste de los parámetros de las subestrategias para señales más alineadas, por ejemplo, el ajuste de los parámetros de umbral de la estrategia de balance alcista y bajista para capturar tendencias más débiles y complementar la estrategia de inversión.

También se puede investigar el manejo de conflictos prolongados entre las subestrategias. Por ejemplo, establecer un nivel máximo de tolerancia para los conflictos, después de lo cual se tomará la señal de una subestrategia individual. Esto puede aliviar la pérdida de oportunidades hasta cierto punto.

Conclusión

La doble estrategia de balance balance de toros y osos combina la estrategia de inversión de 123 y la estrategia de balance de toros y osos para lograr la doble verificación de las señales comerciales y filtrar eficazmente las señales falsas y aumentar la estabilidad. Mientras tanto, la combinación de estrategias de inversión y tendencia proporciona diversificación para reducir los riesgos. La estrategia se puede optimizar aún más ajustando parámetros, agregando una tercera estrategia, etc. para mejorar la alineación y la eficiencia del capital.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/07/2019
// 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 new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray indicator.
//    To get more information please see "Bull And Bear Balance Indicator" 
//    by Vadim Gimelfarb. 
//
// 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

BullAndBearBalance(SellLevel, BuyLevel) =>
    pos = 0
    value =  iff (close < open , 
              iff (close[1] > open ,  max(close - open, high - low), high - low), 
               iff (close > open, 
                 iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
                  iff(high - close > close - low, 
                   iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                     iff (high - close < close - low, 
                      iff(close > open, max(close - low, high - close),open - low), 
                       iff (close > open, max(close[1] - open, high - close),
                         iff(close[1] < open, max(open - low, high - close), high - low))))))

    value2 = iff (close < open , 
              iff (close[1] < open ,  max(high - close[1], close - low), max(high - open, close - low)), 
               iff (close > open, 
                 iff(close[1] > open,  high - low, max(open - close[1], high - low)), 
                  iff(high - close > close - low, 
                   iff (close[1] < open, max(high - close[1], close - low), high - open), 
                     iff (high - close < close - low, 
                      iff(close[1] > open,  high - low, max(open - close, high - low)), 
                       iff (close[1] > open, max(high - open, close - low),
                         iff(close[1] < open, max(open - close, high - low), high - low))))))
    nBBB = value2 - value
    pos := iff(nBBB < SellLevel, -1,
    	   iff(nBBB >= BuyLevel, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Bull And Bear Balance", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(-15, step=0.01)
BuyLevel = input(15, step=0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBullAndBearBalance = BullAndBearBalance(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBullAndBearBalance == 1 , 1,
	   iff(posReversal123 == -1 and posBullAndBearBalance == -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.