Trendumkehrstrategie auf Basis des ADX-Indikators

Schriftsteller:ChaoZhang, Datum: 2023-09-13 17:02:31
Tags:

Diese Strategie heißt Trend Reversal Strategy Based on ADX Indicator. Sie verwendet den ADX-Indikator, um die Trendstärke zu messen und Umkehrmöglichkeiten bei Überkauf/Überverkauf zu erfassen.

ADX steht für Average Directional Index, was die Stärke eines Trends widerspiegelt. Je höher der ADX-Wert, desto stärker ist der Trend. ADX über 25 deutet auf einen signifikanten Trend hin.

DMI umfasst DI+ und DI-Linien. DI+ über DI- zeigt einen Aufwärtstrend, während DI- über DI+ einen Abwärtstrend anzeigt.

Die Handelslogik lautet:

  1. Wenn der ADX über 45 liegt, gilt der Trend als sehr steil.

  2. Wenn DI+ unter DI- liegt, signalisiert dies einen überverkauften Zustand und eine Gelegenheit zur Trendumkehr.

  3. Im Gegensatz dazu deutet DI- unter DI+ auf überkaufte Konditionen und eine Umkehrmöglichkeit für einen Short hin.

  4. Nehmen Sie nach der Umkehr rechtzeitig Gewinn.

Der Vorteil besteht darin, ADX zu verwenden, um starke Trendumkehrpunkte zu bestimmen. Hohe ADX-Werte filtern falsche Signale aus verschiedenen Märkten effektiv aus.

Der ADX ist ein guter Indikator, um zu messen, wann ein starker Trend umgekehrt ist, aber Trader müssen immer noch mehr Faktoren beobachten, indem sie ADX nur als einen zusätzlichen Indikator verwenden.


/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='DMI swings',title='DMI swings', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true        // create function "within window of time"

[pos_dm, neg_dm, avg_dm] = dmi(14, 14)

//Entry 
strategy.entry(id="long", long = true, when = avg_dm > 45 and pos_dm < neg_dm and window())

//Exit
strategy.close("long", when = avg_dm > 45 and pos_dm > neg_dm and window())

Mehr