Handelsstrategie des gleitenden Durchschnitts von DMI

Schriftsteller:ChaoZhang, Datum: 2023-09-13 14:42:19
Tags:

Ich habe kürzlich eine neue quantitative Handelsstrategie entwickelt, die hauptsächlich auf dem DMI-Indikator basiert, um Bänder und Spitzen auf dem Markt zu identifizieren.

Strategie Logik

Der DMI-Indikator, Abkürzung für Average Directional Movement Index, wurde von Welles Wilder in den 1970er Jahren erstellt, um den Trend und die Stärke des Marktes zu messen.

  • +DI: stellt die Stärke des Aufwärtstrends dar
  • -DI: stellt die Stärke des Abwärtstrends dar
  • ADX: repräsentiert die allgemeine Trendstärke

Wenn +DI über -DI geht, zeigt dies eine Stärkung des Aufwärtstrends an und eine Long-Position kann in Betracht gezogen werden.

Die Kernlogik dieser Strategie lautet:

  1. Long gehen, wenn +DI unter 10 fällt und -DI über 40 steigt
  2. Kurzgeschäft, wenn -DI unter 10 fällt und +DI über 40 steigt

Das heißt, wenn sich die umgekehrte DI erheblich von der Termin-DI abweist, kann davon ausgegangen werden, dass sich der aktuelle Trend wahrscheinlich umkehren wird, und eine umgekehrte Handelsposition kann angemessen eingesetzt werden.

Um Lärm zu filtern, wird in dieser Strategie der gleitende Durchschnitt der DI mit folgenden Parametern verwendet:

  • Die Periode von +DI und -DI beträgt 11 Jahre.
  • ADX-Gleichungszeit beträgt 11

Durch die Anpassung der gleitenden Durchschnittsparameter kann die Häufigkeit der Handelssignale angepasst werden.

Diese Strategie wird hauptsächlich für den Handel mit NIFTY50-Indexoptionen angewendet. Sie kann auch für andere Produkte verwendet werden. Speziell für den Handel wählen Sie At-the-Money-Optionen, setzen Sie den Stop-Loss auf 20%, fügen Sie Positionen hinzu, wenn der Verlust 10% übersteigt, aber stoppen Sie, wenn sich der Verlust über 20% des Anfangskapitals erweitert.

Vorteile der Strategie

Im Vergleich zu einfachen DI-Kreuzstrategien verwendet diese Strategie DI- gleitende Durchschnitte, um Lärm zu filtern und Trades zu reduzieren, wodurch Transaktionskosten und Slippage gesenkt werden.

Im Vergleich zu reinen Trendfolgestrategien ist diese Strategie präziser bei der Erfassung von Trendumkehrpunkten und ermöglicht zeitnahe Einträge um die Kurven.

Die Optimierung der Strategie ist einfach mit flexiblen Parametern für die Leistungsanpassung.

Gefahrenwarnungen

Diese Strategie liefert nur Richtungssignale, wobei spezifische Anforderungen an Stop-Loss und Take-Profit je nach persönlicher Risikopräferenz festgelegt werden sollten.

DMI kann viele falsche Signale während von Bereichsbegrenzten Perioden erzeugen.

DI-Crossovers können Trendumkehrungen nicht vollständig vorhersagen. Es könnten einige Zeitfehler auftreten. Andere Indikatoren sollten zur Validierung der Handelssignale verwendet werden.

Schlussfolgerung

Durch das Screening mit DI gleitenden Durchschnitten kann diese Strategie effektiv Trendumkehrchancen identifizieren. Im Vergleich zu anderen Trendfolgestrategien hat sie den Vorteil stärkerer Umkehrerkennungsfähigkeiten. Insgesamt verfügt diese Strategie über eine flexible Parameter-Ausrichtung und kann als Modul in quantitativen Handelssystemen verwendet werden. Achten Sie auf falsche Signale und bewerten Sie das Marktregime bei der Verwendung richtig.


/*backtest
start: 2023-09-05 00:00:00
end: 2023-09-12 00:00:00
period: 1m
basePeriod: 1m
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/
// © email_analysts
// This code gives indication on the chart to go long based on DMI and exit based on RSI. 
//Default value has been taken as 14 for DMI+ and 6 for RSI.
//@version=5
strategy(title="DMI Strategy", overlay=false)
lensig = input.int(11, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(11, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
//plot(adx, color=#F50057, title="ADX")
plot(plus, color=color.green, title="+DI")
plot(minus, color=color.red, title="-DI")
hlineup = hline(40, color=#787B86)
hlinelow = hline(10, color=#787B86)

buy = plus < 10 and minus > 40
if buy
    strategy.entry('long', strategy.long)

sell = plus > 40 and minus < 10
if sell
    strategy.entry('short', strategy.short)



Mehr