Die Strategie nennt sich Trend-Umkehr-Strategie, die auf dem ADX-Indikator basiert. Die Strategie nutzt den ADX-Indikator, um die Trendstärke zu ermitteln und Umkehrmöglichkeiten zu erfassen, wenn überkauft und überverkauft wird.
Der ADX ist ein mittlerer Trendindex, der die Stärke eines Trends darstellt. Je höher der ADX ist, desto stärker ist der Trend. Wenn der ADX größer als 25 ist, wird ein deutlicher Trend vermutet.
Die DMI besteht aus den beiden Linien DI+ und DI-。DI+ zeigt eine steigende Tendenz, DI- zeigt eine fallende Tendenz.
Die Handelslogik dieser Strategie:
Wenn der ADX über 45 liegt, ist der Trend sehr stark.
Wenn DI+ niedriger als DI- ist, wird dies als Überverkauf angesehen, und es besteht die Möglichkeit, den Trend umzukehren und mehr zu machen.
Im Gegensatz dazu, wenn der DI- niedriger als der DI+ ist, wird er als Überkauf bezeichnet und es besteht die Möglichkeit, ihn umzukehren.
Nach der Umkehrung ist es zeitgemäß zu stoppen.
Der Vorteil dieser Strategie besteht darin, dass die ADX-Werte verwendet werden, um starke Trendwendepunkte zu ermitteln. Hohe ADX-Werte filtern effektiv falsche Signale aus bewegten Märkten aus. Die ADX-Parameter müssen jedoch optimiert werden, und die Stop-Loss-Strategie ist ebenfalls wichtig.
Insgesamt ist der ADX-Indikator ein guter Zeitplan für eine starke Trendwende. Trader müssen jedoch mehr Faktoren beachten, die den ADX nur als einen der Hilfsindikatoren beurteilen.
/*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())