En la carga de los recursos... Cargando...

Estrategia de ruptura de rango de ARGO

El autor:¿ Qué pasa?, Fecha: 2023-10-07 16:04:16
Las etiquetas:

Resumen general

La estrategia de ruptura de rango ARGO es un sistema de negociación de rango de 4 horas inspirado en los principios de ruptura de canal.

Estrategia lógica

La estrategia primero calcula el máximo máximo (upBound) y el mínimo mínimo (downBound) durante un período definido para formar el rango del canal. Luego calcula la línea media, la banda superior y la banda inferior del canal de Bollinger.

Específicamente, la estrategia calcula el upBound y downBound durante N períodos (default 47). Luego establece un punto de relación (default 1) y tolerancia tol (default 1000), para calcular el límite superiorBoundUp y el límite inferiorBoundDown del canal. Se activa una señal de compra cuando el precio se rompe por encima del límite inferior. Se activa una señal de venta cuando el precio se rompe por debajo del límite superior.

Además, se configuran las condiciones de stop loss y take profit. La stop loss para las operaciones largas se establece cerca del límite inferior, mientras que para las operaciones cortas está cerca del límite superior.

Análisis de ventajas

  • Utiliza los principios del canal de Bollinger para adaptarse a la volatilidad del mercado
  • El marco de tiempo de 4 horas tiene como objetivo capturar las fluctuaciones significativas de los precios
  • La combinación de estrategias de ruptura ayuda a detectar inversiones de tendencia
  • Los valores de las pérdidas y ganancias de las operaciones de tipo de interés se determinarán en función de la situación de las operaciones.

Riesgos y soluciones

  • Vulnerable a las fugas falsas y a estar atrapado
  • Los grandes plazos pueden llevar a pérdidas más amplias
  • Una parada de arrastre incorrecta puede causar pérdidas inaceptables.
  • Soluciones:
    • Optimiza los parámetros del canal contra las falsas rupturas
    • Determinar cuidadosamente el tamaño de la posición y los niveles de stop loss
    • Mejorar el stop loss/take profit para un estricto control del riesgo

Direcciones de optimización

  • Optimizar los parámetros del canal para adaptarse mejor a la volatilidad del mercado
  • Ajustar dinámicamente el stop loss/take profit para un mejor riesgo/recompensa
  • Añadir filtros comerciales para evitar trampas y perseguir los máximos
  • Incorpore factores adicionales para evitar señales falsas
  • Combinar indicadores de tendencia y volatilidad para tomar mejores decisiones
  • Optimizar la gestión de capital para las diferentes condiciones del mercado

Conclusión

La estrategia ARGO Range Breakout es un sistema de negociación a medio plazo de 4 horas basado en el canal de Bollinger y los principios de breakout. En comparación con la negociación a corto plazo, se centra más en la captura de inversiones de tendencia en marcos de tiempo a medio plazo. Con la optimización adecuada, puede adaptarse a diferentes entornos de mercado y lograr ganancias significativas mientras controla el riesgo. La estrategia equilibra el seguimiento de la tendencia y la gestión del riesgo.


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

//@version=2

// strategy("ARGO_BAND-STRATEGY", overlay=true,default_qty_value=10000,scale=true,initial_capital=100,currency=currency.USD)

// A 4hours Breakout Strategy work in progres..it's  a starting point, thanks to all tradingview community
//How to use: test it only on gbpjpy 240 min, wait the end of the candle to place next order, red and blue dots are short and long stop orders, Targets are Upper and lowerBands. Test it and enjoy but use at your own risk..
//2016 © F.Peluso


risk=input(title="Risk", defval=1)
length = input(title="Length",  minval=1, maxval=1000, defval=47)
stopBound=input(title="Previous",defval=10)
upBound = highest(high, length)
downBound = lowest(low, length)
point=1
tol=1000
stopT=input(title="Stop", defval=5,minval=1, maxval=5)
dev =input(title="Tolerance",defval=2,minval=1, maxval=5)
limitBoundUp=( highest(high, length))*(point-(dev/tol))
limitBoundDown=downBound/(point-(dev/tol))
plot(limitBoundUp[1],linewidth = 3,style = circles, color = navy,trackprice=true),transp=0
plot(limitBoundDown[1],linewidth = 3,style = circles, color = red,trackprice=true,transp=0)
mezzalinea=((upBound+downBound)/2)

// Color Bands

colo = ((close>limitBoundUp[1]) ? blue : (close<upBound[1]) ? white : na)
UpB = plot(upBound[1], title="Upper Bound", style=linebr, linewidth=1, color=colo)
DownB = plot(limitBoundUp[1] ,title="Lower Bound", style=linebr, linewidth=2, color=colo)
fill(UpB, DownB, color=colo, transp=90)

plot(limitBoundUp[2]/(point+(stopT/tol)),color=colo)

coloS = ((close<limitBoundDown[1]) ? red : (close>downBound[1]) ? white : na)
DB = plot(downBound[1], title="Upper Bound", style=linebr, linewidth=1, color=coloS)
DoB = plot(limitBoundDown[1] ,title="Lower Bound", style=linebr, linewidth=2, color=coloS)
fill(DB, DoB, color=coloS, transp=90)

plot(limitBoundDown[2]*(point+(stopT/tol)),color=coloS)

// Strategy

past=input(title="Past", defval=5)
buy=(crossover(close,limitBoundUp))
closebuy=cross(high[past],upBound[0])
stopbuy = limitBoundUp[2]/(point+(stopT/tol))

sell=crossunder(close,limitBoundDown)
closesell=cross(low[past],downBound[0])


if (not na(close[length]))
    if (buy)
        strategy.entry("ChBrkLE", strategy.long,stop=limitBoundUp - syminfo.mintick,comment="Long I")   

strategy.close("ChBrkLE",when=closebuy)

if (not na(close[length]))
    if (sell)
        strategy.entry("ChBrkSE", strategy.short,stop=limitBoundDown + syminfo.mintick,comment="Short I")   

strategy.close("ChBrkSE",when=closesell)

Target =input(0) * 10 
Stop = input(90) * 10 
Trailing = input(40) * 10
CQ = 100
TPP = (Target > 0) ? Target : na
SLP = (Stop > 0) ? Stop : na
TSP = (Trailing > 0) ? Trailing : na
strategy.exit("Out Short", "ChBrkSE", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Out Long", "ChBrkLE", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Más.