
La estrategia es una estrategia de ruptura simple que utiliza dos diferentes diferencias de EMA con retraso de cero horas para rastrear la subida o la baja de un objeto objetivo. Cuando la diferencia supera un determinado número de veces la banda de Brin, se genera una señal de hacer más o hacer menos según la dirección de la EMA base.
La estrategia utiliza dos tipos especiales de EMA para calcular el diferencial de fluctuación. La fórmula para calcular estos dos EMA es:
hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))
dif = (hJumper / lJumper) - 1
El indicador responde de inmediato a las grandes fluctuaciones de los precios, sin retrasos.
Cuando la dif es superior a la banda de Brin en la vía, se produce una señal de entrada; cuando la dif es inferior a la banda de Brin en la vía media, se produce una señal de salida. La dirección de la EMA básica decide la dirección de hacer más o hacer menos.
La mayor ventaja de esta estrategia es la rapidez con la que se captan las señales de ruptura, sin retrasos. Esto se logra mediante el cálculo de dos EMAs especiales de retraso de cero horas. Esto permite a la estrategia responder de inmediato a los eventos de ruptura de precios, lo que permite una mayor eficiencia en la captura de la formación de tendencias en sus inicios.
Otra ventaja es que la estrategia utiliza solo un parámetro lx. La falta de parámetros hace que la estrategia sea fácil de ajustar y reduce el riesgo de optimización excesiva.
El principal riesgo de esta estrategia es que la señal de ruptura puede generar falsas rupturas. Cuando hay una oscilación en el precio, puede producirse una serie de falsas rupturas. Para reducir este riesgo, se puede aumentar adecuadamente el múltiplo de la banda de Brin para que la señal sea más estable.
Otro riesgo es la aparición frecuente de pequeñas pérdidas en situaciones de crisis. Esto puede mitigarse mediante el ajuste de los mecanismos de salida. Por ejemplo, la fijación de un precio de stop loss o stop loss.
La estrategia puede ser optimizada en los siguientes aspectos:
En combinación con otros indicadores de filtración de señales de entrada, para reducir la probabilidad de falsas brechas
Aumentar los mecanismos de suspensión de pérdidas y administrar el riesgo de las posiciones
La introducción de la confirmación de volumen de transacciones para evitar falsas señales de una gran cantidad de brechas
Utiliza parámetros de adaptación a las bandas de Bryn para ajustar los parámetros a la volatilidad del mercado
Parámetros de estrategia de optimización dinámica basados en métodos de aprendizaje automático
La estrategia de EMA para romper la volatilidad instantánea capta el impulso de la tendencia de los precios mediante el cálculo de EMA con retraso de cero horas. Tiene la ventaja de una respuesta rápida y una simplicidad de parámetros. El siguiente paso puede optimizarse en términos de filtración de señales, paradas de pérdidas y confirmación de volúmenes de transacción, para que la estrategia funcione de manera estable en diferentes entornos de mercado.
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin
//@version=5
strategy("Zero-lag Volatility-Breakout EMA Trend Strategy",overlay=false)
tt1 = "If selected, the strategy will not close long or short positions until the opposite signal is received. This"+
" exposes you to more risk but potentially could generate larger returns."
src = input.source(close,"Source")
lx = input.int(200,"EMA Difference Length")
bbmult = input.float(2.0,"Standard Deviation Multiple")
useBinaryStrategy = input.bool(true,"Use Binary Strategy",tooltip = tt1)
hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))
dif = (hJumper / lJumper) - 1
[bbm,bbu,bbl] = ta.bb(dif,lx,bbmult)
plot(dif,color=color.white,title="Zero lag EMA Difference")
plot(bbu,color=color.lime,title="Bollinger Top")
plot(bbl,color=color.red,title="Bollinger Bottom")
plot(bbm,color=color.yellow,title="Bollinger Middle")
sigEnter = ta.crossover(dif,bbu)
sigExit = ta.crossunder(dif,bbm)
emaBase = ta.ema(src,lx)
enterLong = sigEnter and emaBase > emaBase[1]
enterShort = sigEnter and emaBase < emaBase[1]
plotshape(enterLong,style=shape.labelup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(enterShort,style=shape.labeldown,location=location.top,color=color.red,size=size.tiny)
if enterLong
strategy.entry("Long",strategy.long)
if enterShort
strategy.entry("Short",strategy.short)
if not useBinaryStrategy and sigExit
strategy.close("Long")
strategy.close("Short")