Dies ist eine kurzfristige Handelsstrategie, die den ADX-Indikator verwendet, um Breakout-Signale zu filtern. Sie geht kurz, wenn der Preis über das obere Bollinger-Band bricht und der ADX fällt, und lang, wenn der Preis unter das untere Bollinger-Band bricht und der ADX steigt. Die Strategie setzt auch Stop Loss und Take Profit automatisch für den vollautomatisierten Handel.
Der Kern dieser Strategie ist die Verwendung von Bollinger Bands für Breakout-Signale. Die oberen und unteren Bande von Bollinger Bands stellen zwei Standardabweichungen des Preises dar, so dass Breakouts in der Regel bedeuten, dass der Preis einen starken Trend betritt. Darüber hinaus wird der ADX-Indikator hier als Filter eingeführt, um falsche Breakouts zu vermeiden. Kurze Signale werden nur berücksichtigt, wenn der ADX fällt, während lange Signale nur berücksichtigt werden, wenn der ADX steigt. Dies hilft, einige Whipsaws während von Bereichsgrenzperioden auszufiltern.
Insbesondere berechnet diese Strategie Bollinger Bands unter Verwendung von 33 Perioden der Schlusskurs. Das mittlere Band ist ein 33-Perioden einfacher gleitender Durchschnitt, und die oberen / unteren Bands werden bei zwei Standardabweichungen über / unter dem mittleren Band platziert. Die Strategie signalisiert kurz, wenn der Preis unter dem oberen Band schließt und der 8-Perioden-ADX unter dem 15-Perioden-ADX liegt. Es signalisiert lang, wenn der Preis über dem unteren Band schließt und der 8-Perioden-ADX über dem 15-Perioden-ADX liegt. Die Ausgänge werden auf 800 Gewinnpunkte und 400 Stop-Loss-Punkte festgelegt.
Als Breakout-Strategie mit Trend- und Momentumfiltern hat sie mehrere Vorteile:
Diese Strategie birgt auch einige Risiken:
Um diese Risiken zu mindern, können wir den BB-Parameter optimieren, um die Bands zu verengen, die ADX-Perioden anzupassen, um Überfilterung zu vermeiden, und den Stop-Loss zu reduzieren, um Einzelhandelsverluste zu kontrollieren.
Es gibt Raum für weitere Optimierungen:
Dies ist eine einfache und praktische Breakout-Strategie mit Filter. Die Identifizierung von Trends mit BBs und das Filtern von Signalen mit ADX helfen, Lärm während von Bereichsbegrenzungen zu vermeiden und Trendchancen bis zu einem gewissen Grad zu erfassen. Es gibt noch viel Raum für weitere Tests und Verbesserungen.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Hizbullah XAUUSD Sniper", overlay=true) Price = close Length = input(33) Mult = input(2) Basis = sma(Price, Length) StdDev = Mult * stdev(Price, Length) Upper = Basis + StdDev Lower = Basis - StdDev ADX_Length = input(4) TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) SmoothedTrueRange = sma(TrueRange, ADX_Length) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedDirectionalMovementPlus = sma(DirectionalMovementPlus, ADX_Length) SmoothedDirectionalMovementMinus = sma(DirectionalMovementMinus, ADX_Length) DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus)*100 SmoothedADX1 = ema(DX, input(8)) SmoothedADX2 = ema(DX, input(15)) Condition1 = crossunder(Price, Upper) and SmoothedADX1 < SmoothedADX2 Take_Profit = input(800) Stop_Loss = input(400) strategy.entry("ShortEntry", true, when = Condition1) strategy.exit("ShortExit", "ShortEntry", profit = Take_Profit, loss = Stop_Loss)