Trend-Nachfolge-Strategie auf Basis von DMI und RSI

Schriftsteller:ChaoZhang, Datum: 2024-01-25 15:56:41
Tags:

img

  1. Verwenden Sie den DMI-Indikator, um die Trendrichtung zu beurteilen
    • DMI besteht aus drei Linien: +DI zeigt Aufwärtstrend, -DI zeigt Abwärtstrend, ADX beurteilt die Stärke des Trends
    • Wenn +DI>-DI ein Aufwärtstrend ist, geht man lang; wenn -DI>+DI ein Abwärtstrend ist, geht man kurz
  2. Verwenden Sie den RSI-Indikator, um Überkauf und Überverkauf zu beurteilen
    • RSI vergleicht durchschnittliche Gewinne und Verluste über einen Zeitraum, um zu bestimmen, ob überkauft oder überverkauft
    • RSI unter 30 ist überverkauft, über 70 ist übergekauft
  3. Die Kombination von DMI zur Bestimmung der Trendrichtung und RSI für Überkauf/Überverkauf kann den Marktrhythmus besser erfassen
    • Wenn der DMI einen Aufwärtstrend zeigt und der RSI überverkauft ist, ist dies ein guter Zeitpunkt für lange
    • Wenn der DMI einen Abwärtstrend zeigt und der RSI überkauft ist, ist dies ein gutes Timing für Kurzgeschäfte
  4. Bewegliche Stop-Loss-Einstellungen, um Gewinne zu erzielen

##Vorteilsanalyse Dies ist ein relativ reifer und stabiler Trend nach einer Strategie mit folgenden Stärken:

  1. Die Kombination von Trend und Überkauf/Überverkauf verhindert häufiges Handel auf dem Bereichsmarkt
  2. Beliebte Indikatoren DMI und RSI mit einfacher Parameteranpassung und gründlicher praktischer Überprüfung
  3. Ein Stop-Loss-Verfahren, das den Gewinn verringert und den Stop-Loss bis zu einem gewissen Grad vermeidet
  4. Klare und einfache Regeln, einfach umzusetzen

##Risikoanalyse Es gibt auch einige Risiken zu beachten:

  1. DMI und RSI können leicht falsche Signale erzeugen und unnötige Verluste verursachen
  2. Eine unsachgemäße Einstellung von Trailing Stop Loss kann dazu führen, dass der Verlust zu früh oder zu stark gestoppt wird.
  3. Kann nicht effektiv Filter-Whipsaw-Märkte, anfällig dafür, gefangen zu werden
  4. Der Trend folgt nicht, wenn der Trend umgekehrt ist

## Optimierungsrichtlinien Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Kombination von Kerzenmustern, um einen falschen Ausbruch zu vermeiden
  2. Festlegen eines angemessenen Stop-Loss in der Nähe der wichtigsten Unterstützung/Widerstandsrichtung, um Verluste zu begrenzen
  3. Erhöhen Sie das Modell des maschinellen Lernens für die Trendvorhersage
  4. Dynamische Optimierung der DMI- und RSI-Parameter


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © YingYangJPN

//@version=5
strategy("DMI and RSI Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// DMI indikatörünü tanımlayalım
lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(14, 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)
trailing_stop_loss_factor = input.float(0.50, "Trailing Stop Loss Factor", step = 0.01)

// RSI indikatörünü tanımlayalım
rsiLength = input.int(14, minval=1, title="RSI Length")
rsiSource = input(close, title="RSI Source")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
rsiValue = ta.rsi(rsiSource, rsiLength)

// Uzun pozisyon açma koşullarını tanımlayalım
longCondition1 = rsiValue < rsiOversold // RSI oversold seviyesinin altındaysa
longCondition2 = adx > 20 // ADX 20'den büyükse
longCondition3 = minus > plus

// Kısa pozisyon açma koşullarını tanımlayalım
shortCondition1 = rsiValue > rsiOverbought // RSI overbought seviyesinin üstündeyse
shortCondition2 = adx > 20 // ADX 20'den büyükse
shortCondition3 = plus > minus

// Uzun pozisyon açalım
if longCondition1 and longCondition2 and longCondition3
    strategy.entry("Long", strategy.long)
    

// Kısa pozisyon açalım
if shortCondition1 and shortCondition2 and shortCondition3
    strategy.entry("Short", strategy.short)
    
// Trailing Stop Loss
longTrailingStopLoss = strategy.position_avg_price * (1 - trailing_stop_loss_factor / 100)
shortTrailingStopLoss = strategy.position_avg_price * (1 + trailing_stop_loss_factor / 100)
if strategy.position_size > 0 
    strategy.exit("Exit Long", "Long", stop  = longTrailingStopLoss)
if strategy.position_size < 0 
    strategy.exit("Exit Short", "Short", stop = shortTrailingStopLoss)

// DMI ve RSI indikatörlerini grafiğe çizelim
plot(adx, color=#F50057, title="ADX")
plot(plus, color=#2962FF, title="+DI")
plot(minus, color=#FF6D00, title="-DI")
plot(rsiValue, color=#9C27B0, title="RSI")
hline(rsiOverbought, title="RSI Overbought Level", color=#E91E63, linestyle=hline.style_dashed)
hline(rsiOversold, title="RSI Oversold Level", color=#4CAF50, linestyle=hline.style_dashed)



Mehr