ADX Crossover-Handelsstrategie


Erstellungsdatum: 2023-12-08 15:49:12 zuletzt geändert: 2023-12-08 15:49:12
Kopie: 0 Klicks: 961
1
konzentrieren Sie sich auf
1621
Anhänger

ADX Crossover-Handelsstrategie

Überblick

Die Strategie, die die Verwendung eines Bewegungsindex-Durchschnitts (ADX) und eines Aufwärtsbewegungsindex (DI+) als Grundlage für die Beurteilung der Marktrichtung und -trend verwendet, und die Verwendung von schnellen und langsamen Moving Averages zur Bestimmung der Handelsrichtung und -dauer, gehört zu den Trend-Tracking-Trading-Strategien. Die Strategie kann die Wendepunkte der mittleren kurzen Linie effektiv erfassen und funktioniert am besten in Märkten mit geringer Volatilität und deutlichem Trend.

Grundsätze

Die Kernlogik der Strategie ist, dass ein Kaufsignal erzeugt wird, wenn die +DI-Linie die ADX von unten durchbricht, und ein Verkaufsignal erzeugt wird, wenn die +DI-Linie die ADX von oben durchbricht. Daher ist die Strategie auf die Kreuzung zwischen den DI- und ADX-Indikatoren angewiesen, um einen Markttrend und einen Wendepunkt zu ermitteln. Die Beziehung der schnellen und mittleren Linie wird zur Ermittlung der Gesamtmarkttrend verwendet und nur dann als Handelssignal betrachtet, wenn die schnelle EMA höher ist als die langsame EMA.

Insbesondere wird ein Kaufsignal ausgesendet, wenn die folgenden Bedingungen erfüllt sind: 1. Die schnelle EMA ist höher als die langsame 2. Die +DI-Leitung durchbricht die ADX-Leitung von unten 3. Eine ADX-Schwelle unter 30

Das Signal “verkauft” wird ausgesendet, wenn folgende Bedingungen erfüllt sind: 1. ADX-Wert über 30 als Schwellenwert 2. Die +DI-Leitung fällt von oben nach unten unter die ADX-Leitung

Die Strategie enthält auch eine Stop-Loss-Logik, bei der alle Positionen ausgeschlossen werden, wenn der Preis unter dem Stop-Loss-Preis liegt.

Vorteile

Die Strategie kombiniert DI, ADX und die Durchschnittslinie, um die Wendepunkte der Markttrends zu ermitteln. Sie hat folgende Vorteile:

  1. Benutzung von DI und ADX-Indikatoren, um Trendwende-Signale zu ermitteln und die Einstiegs- und Ausstiegspunkte genau zu bestimmen
  2. Schnell EMA Filtersystem, um Trends zu erkennen und falsche Trades zu vermeiden
  3. Verwenden Sie die ADX-Werte, um eine starke Tendenz zu beurteilen, und handeln Sie nur, wenn die Tendenz schwach ist, um das Risiko eines falschen Durchbruchs zu vermeiden
  4. Einschließung von Stop-Loss-Mechanismen, um das Abwärtsrisiko zu kontrollieren
  5. Die Eintrittsbedingungen sind streng, um die Gefahr zu vermeiden, dass Agiri zu hoch gekauft und verkauft wird.
  6. Klare Ausgangssituation, zeitnahe Stopp und Stopp

Die Gefahr

Die Strategie birgt auch einige Risiken, die beachtet werden müssen:

  1. Der ADX ist nachlässig und könnte den optimalen Zeitpunkt für eine Kursumkehr verpassen
  2. Die ADX- und DI-Indikatoren erzeugen mehr Fehlsignale bei größeren Marktschwankungen
  3. Unkorrektes Setzen der mittleren Linie kann zu verpassten Handelschancen oder falschen Filtersignalen führen
  4. Der Stop-Loss-Preis ist zu locker eingestellt, um die Risiken wirksam zu kontrollieren

Diese Risiken können durch Optimierung der ADX- und Durchschnittsparameter, Anpassung der Stop-Loss-Ebene und in Kombination mit anderen Indikatoren verbessert werden.

Optimierungsrichtung

Die Strategie kann noch weiter optimiert werden:

  1. ADX mit unterschiedlich langen Perioden zu testen, um die optimale Kombination von Parametern zu finden
  2. Weitere Indikatoren wie RSI, Brinströmungen und andere können hinzugefügt werden, um die Handelssignale zu bestätigen
  3. Automatische Optimierungs-Parameterkombinationen und Handelsregeln basierend auf Machine-Learning-Algorithmen
  4. Rückstandsrisiken können durch dynamische Anpassung der Stop-Loss-Level abgesichert werden
  5. Multi-Faktor-Score-Modelle, die Ein- und Ausstiegsregeln stabilisieren können

Zusammenfassen

Die ADX-Cross-Trend-Strategie ist insgesamt relativ stabil und kann vor der Schwankung den Kehrraum effektiv erfassen, jedoch muss auf die Risikokontrolle geachtet werden. Durch weitere Optimierung der Parameter-Einstellungen und strenge Einstiegs- und Stop-Loss-Regeln kann ein besseres risikobereinigtes Ergebnis erzielt werden. Die Strategie ist für Short-Line-Handelskonten geeignet, die in langen Zeilen gehalten werden.

Strategiequellcode
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
//ADX strategy
SmoothedTrueRange=0.00
SmoothedDirectionalMovementPlus=0.00
SmoothedDirectionalMovementMinus=0.00


strategy(title="ADX strategy", overlay=false,pyramiding=3, default_qty_type=strategy.fixed, default_qty_value=3,    initial_capital=10000, currency=currency.USD)

len = input(11, title="ADX Length", minval=1)
threshold = input(30, title="threshold", minval=5)

fastEma=input(13, title="Fast EMA",minval=1, maxval=50)
slowEma=input(55, title="Slow EMA",minval=10, maxval=200)
stopLoss =input(8, title="Stop Loss",minval=1)   //


TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
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


SmoothedTrueRange:= nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange

SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus:= nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)

plot(DIPlus, color=color.green, title="DI+")
//plot(DIMinus, color=color.red, title="DI-")
plot(ADX, color=color.black, title="ADX")
hline(threshold, color=color.black, linestyle=hline.style_dashed)

fastEmaVal=ema(close,fastEma)
slowEmaVal=ema(close,slowEma)




//long condition
longCondition=  ADX < threshold  and crossover(DIPlus,ADX)  and fastEmaVal > slowEmaVal


barcolor(longCondition ? color.yellow: na)

strategy.entry(id="ADXLE", long=true,  when= longCondition  and strategy.position_size<1) 

barcolor(strategy.position_size>1 ? color.blue: na)
bgcolor(strategy.position_size>1 ? color.blue: na)



//Add
strategy.entry(id="ADXLE", comment="Add", long=true,  when= strategy.position_size>1 and close<strategy.position_avg_price and crossover(DIPlus,ADX) ) 


//calculate stop Loss
stopLossVal =  strategy.position_avg_price -  (strategy.position_avg_price*stopLoss*0.01)

strategy.close(id="ADXLE",comment="SL Exit",    when=close<stopLossVal)   //close all on stop loss


//exit condition
exitCondition=  ADX > threshold  and crossunder(DIPlus,ADX) // and fastEmaVal > slowEmaVal
strategy.close(id="ADXLE",comment="TPExitAll",    qty=strategy.position_size ,   when= exitCondition)   //close all