Die Ressourcen sind geladen. Beförderung...

Tägliche Handelsstrategie für Doppel-DI-Crossover

Schriftsteller:ChaoZhang, Datum: 2023-11-13 11:32:08
Tags:

img

Übersicht

Diese Strategie erzeugt Handelssignale basierend auf dem Crossover des positiven Richtungsindikators (DI+) und des negativen Richtungsindikators (DI-) berechnet aus dem durchschnittlichen wahren Bereich (ATR).

Strategie Logik

  1. Berechnen Sie ATR(14): Berechnen Sie den durchschnittlichen wahren Bereich der letzten 14 Tage anhand von Höchst-, Tief- und Schlusskurs.

  2. Berechnung von DI+ und DI-:

    • Dies ist der Fall, wenn die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die

    • Dies ist der Fall, wenn die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die Werte für die

    Bei UP ist die Differenz zwischen aktuellem Höchststand und vorheriger Schließung, bei DOWN ist die Differenz zwischen aktuellem Tiefstand und vorheriger Schließung, bei N ist der Parameterzeitraum, standardmäßig 14, und bei ATNR ist die ATR, die ab Schritt 1 berechnet wird.

  3. Bestimmung der Ein- und Ausfahrt:

    • Wenn DI+ über DI- geht, wird ein Kaufsignal erzeugt.

    • Wenn DI+ unter DI- fällt, wird ein Verkaufssignal erzeugt.

  4. Setzen Sie Stop-Loss und Take-Profit:

    • Der langfristige Stop-Loss ist der Einstiegspreis minus ATR multipliziert mit dem Stop-Loss-Multiplikator

    • Der langfristige Gewinn ist der Einstiegspreis zuzüglich ATR multipliziert mit dem Gewinnmultiplizier

    • Der Wert des Anschlusspreises zuzüglich des ATR multipliziert mit dem Stop-Loss-Multiplikator

    • Der Short Take Profit ist der Einstiegspreis minus ATR multipliziert mit dem Take Profit Multiplikator.

Analyse der Vorteile

  1. Die Verwendung von DI+/DI-Crossover zur Bestimmung der Trendumkehr gibt ein zeitnahes Signal für eine neue Trendrichtung.

  2. Der ATR als dynamischer Stop-Loss/Take-Profit-Indikator kann aufgrund der Marktvolatilität angemessene Werte festlegen.

  3. Die Strategie enthält nur wenige Parameter und ist leicht verständlich und umsetzbar.

  4. Die Ergebnisse der Backtests zeigen, dass diese Strategie einen positiven Gewinnfaktor aufweist und die Buy & Hold-Strategie übertrifft.

Risiken und Lösungen

  1. Falschsignalrisiko durch DI-Kreuzung

    • Filtern Sie Signale mit gleitenden Durchschnitten usw., um einen falschen Ausbruch zu vermeiden.
  2. Stop-Loss/Take-Profit zu nahe

    • Anpassung des ATR-Multiplikators an die Volatilität.
  3. Nichteffizient auf dem Bereichsmarkt

    • Kombination mit anderen Indikatoren zur Filterung von Signalen in der Konsolidierung.
  4. Abzugsrisiko

    • Der Rückzug ist akzeptabel, aber für systematische Strategien unvermeidlich.

Optimierungsvorschläge

  1. Fügen Sie Filter wie gleitende Durchschnitte hinzu, um falsche Signale in Bereichsperioden zu vermeiden.

  2. Implementieren Sie Positionsgrößen wie feste Bruchteile oder Martingale, um den Drawdown zu kontrollieren und die Rentabilität zu steigern.

  3. Optimierung der ATR-Parameter, um die Volatilität verschiedener Handelsinstrumente zu berücksichtigen.

  4. Optimierung der Parameter für DI-Periode, ATR-Periode, ATR-Multiplikator usw., um eine optimale Kombination zu finden.

  5. Fügen Sie die Logik der Nacht und der frühen Sitzung hinzu, um die Strategie rund um die Uhr auszuführen.

Schlussfolgerung

Dies ist eine einfache und praktische Strategie, die Signale aus DI-Crossover generiert und einen dynamischen Stop-Loss / Take-Profit mit ATR festlegt. Mit wenigen Parametern ist es einfach zu testen und zu optimieren. Aber DI-Crossover ist während der Konsolidierung weniger effektiv. In Zukunft ist die Kombination zusätzlicher Filter der Hauptverbesserungsbereich. Insgesamt zeigt diese Strategie eine stabile Performance, die für den kurzfristigen Tageshandel geeignet ist.


/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 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/
// © TheHulkTrading
//@version=4
strategy("DI Crossing Daily Straregy HulkTrading", overlay=true)
// ATR Multiplier. Recommended values between 1..4
atr_multiplier = input(1, minval=1, title="ATR Multiplier") 
//Length of DI. Recommended default value = 14
length = input(14, minval=1, title="Length di")
up = change(high)
down = -change(low)
range = rma(tr, 14)

//DI+ and DI- Calculations
di_plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, length) / range)
di_minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, length) / range)

//Long and short conditions
longCond = crossover(di_plus,di_minus)
shortCond = crossunder(di_plus,di_minus) 


//Stop levels and take profits
stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + 2*atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - 2*atr_multiplier*atr(14)


//Entries and exits 
strategy.entry("Long", strategy.long, when=longCond)
strategy.exit("Close Long","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond)
strategy.exit("Close Short","Short", stop=stop_level_short, limit = take_level_short)



Mehr