ARGO-Range-Breakout-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-07 16:04:16
Tags:

Übersicht

Die ARGO Range Breakout Strategie ist ein 4-Stunden-Range-Handelssystem, das sich an den Kanal-Breakout-Prinzipien orientiert.

Strategie Logik

Die Strategie berechnet zunächst das höchste Hoch (upBound) und das niedrigste Tief (downBound) über einen definierten Zeitraum, um den Kanalbereich zu bilden. Es berechnet dann die Mittellinie, das obere Band und das untere Band des Bollinger Kanals. Kauf- und Verkaufssignale werden ausgelöst, wenn sich die Kanalrichtung ändert.

Speziell berechnet die Strategie den UpBound und DownBound über N Perioden (Standard 47). Es setzt dann einen Verhältnispunkt (Standard 1) und Toleranz Tol (Standard 1000) fest, um die Obergrenze BoundUp und die untere Grenze BoundDown des Kanals zu berechnen. Ein Kaufsignal wird ausgelöst, wenn der Preis über die untere Grenze bricht. Ein Verkaufssignal wird ausgelöst, wenn der Preis unter die obere Grenze bricht.

Darüber hinaus werden Stop-Loss- und Take-Profit-Bedingungen konfiguriert. Der Stop-Loss für lange Trades wird in der Nähe der unteren Grenze festgelegt, während der für kurze Trades in der Nähe der oberen Grenze liegt. Der Take-Profit basiert auf der Eingabezielgewinn-Verlust-Ratio.

Analyse der Vorteile

  • Nutzt die Bollinger-Kanal-Prinzipien, um sich an die Marktvolatilität anzupassen
  • Der 4-Stunden-Zeitrahmen zielt darauf ab, signifikante Kursschwankungen zu erfassen
  • Die Kombination einer Ausbruchstrategie hilft, Trendumkehrungen zu erkennen
  • Stop-Loss- und Take-Profit-Kontrollen Risiko/Rendite pro Handel

Risiken und Lösungen

  • Anfällig für falsche Ausbrüche und eingeschlossen
  • Große Zeitrahmen können zu größeren Verlusten führen
  • Unzulässiger Rückhalt kann zu inakzeptablen Verlusten führen
  • Lösungen:
    • Optimieren Sie die Kanalparameter gegen falsche Ausbrüche
    • Sorgfältig Position Größe und Stop-Loss-Niveaus zu bestimmen
    • Verstärkung des Stop-Loss-/Take-Profits für eine strikte Risikokontrolle

Optimierungsrichtlinien

  • Optimierung der Kanalparameter für eine bessere Anpassung an die Marktvolatilität
  • Dynamische Anpassung von Stop-Loss/Take-Profit für ein besseres Risiko/Rendite
  • Fügen Sie Handelsfilter hinzu, um Fallen zu vermeiden und Höhen zu jagen
  • Hinzufügen zusätzlicher Faktoren, um falsche Signale zu vermeiden
  • Kombination von Trend- und Volatilitätsindikatoren für bessere Entscheidungen
  • Optimierung der Kapitalverwaltung für verschiedene Marktbedingungen

Schlussfolgerung

Die ARGO Range Breakout Strategie ist ein 4-stündiges mittelfristiges Handelssystem, das auf Bollinger Channel und Breakout-Prinzipien basiert. Im Vergleich zum kurzfristigen Handel konzentriert es sich mehr darauf, Trendumkehrungen in mittelfristigen Zeitrahmen zu erfassen. Mit der richtigen Optimierung kann es sich an verschiedene Marktumgebungen anpassen und erhebliche Gewinne erzielen, während das Risiko kontrolliert wird. Die Strategie balanciert Trendverfolgung und Risikomanagement. Es ist ein empfohlen mittelfristiges Breakout-Handelssystem.


/*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)

Mehr