
La estrategia de doble breakout es una estrategia de seguimiento de tendencias. Utiliza los altibajos de las bandas de fluctuación para determinar la tendencia de los precios y establece posiciones de varios tipos cuando los precios rompen las bandas de fluctuación internas y cierran las posiciones cuando los precios caen las bandas de fluctuación externas.
La estrategia comienza por calcular la media y la diferencia estándar dentro del período especificado, y se construye una banda de ondas doble mediante el ajuste de los valores de la diferencia estándar. La banda de ondas interna se compone de una diferencia estándar positiva y negativa de la media, y la banda de ondas externa se compone de una diferencia estándar positiva y negativa de la media.
Cuando el precio rompe la vía interna, se considera que el mercado ha comenzado un mercado alcista, por lo tanto, hace más; cuando el precio cae la vía interna, se considera que el mercado ha comenzado un mercado bajista, por lo tanto, hace más.
La condición de salida de la parada después de hacer más es que el precio caiga en la baja externa. La condición de salida de la parada después de hacer menos es que el precio rompa la alta externa.
La estrategia también establece mecanismos de salida como stop loss, stop loss y tracking stop loss.
La estrategia de ruptura de la banda de doble onda tiene las siguientes ventajas:
La estrategia de la ruptura de la banda de doble onda también tiene ciertos riesgos:
Para reducir el riesgo, se pueden ajustar los parámetros adecuados para los riesgos anteriores, o filtrar en combinación con otros indicadores, o controlar manualmente el efecto de la ruptura.
La estrategia de ruptura de banda de doble onda puede ser optimizada en los siguientes aspectos:
La estrategia de ruptura de la banda de doble oscilación es una estrategia de seguimiento de tendencias más típica que utiliza el establecimiento de zonas de ganancia y el establecimiento de un mecanismo de salida científico para controlar el riesgo, que puede obtener mejores resultados si se optimizan los parámetros y se controla el riesgo.
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l=input(title="length",defval=100)
pbin=input(type=float,step=.1,defval=.25)
pbout=input(type=float,step=.1,defval=1.5)
ma=sma(close,l)
sin=stdev(ma,l)*pbin
sout=stdev(ma,l)*pbout
inu=sin+ma
inb=-sin+ma
outu=sout+ma
outb=-sout+ma
plot(inu,color=lime)
plot(inb,color=lime)
plot(outu,color=red)
plot(outb,color=yellow)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
longCondition = close>inu and rising(outu,1)
exitlong = (open[1]>outu and close<outu) or crossunder(close,ma)
shortCondition = close<inb and falling(outb,1)
exitshort = (open[1]<outb and close>outb) or crossover(close,ma)
strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)