Diese Strategie erzeugt Handelssignale basierend auf dem Crossover des positiven Richtungsindikators (DI+) und des negativen Richtungsindikators (DI-) berechnet aus dem durchschnittlichen wahren Bereich (ATR).
Berechnen Sie ATR(14): Berechnen Sie den durchschnittlichen wahren Bereich der letzten 14 Tage anhand von Höchst-, Tief- und Schlusskurs.
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.
Bestimmung der Ein- und Ausfahrt:
Wenn DI+ über DI- geht, wird ein Kaufsignal erzeugt.
Wenn DI+ unter DI- fällt, wird ein Verkaufssignal erzeugt.
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.
Die Verwendung von DI+/DI-Crossover zur Bestimmung der Trendumkehr gibt ein zeitnahes Signal für eine neue Trendrichtung.
Der ATR als dynamischer Stop-Loss/Take-Profit-Indikator kann aufgrund der Marktvolatilität angemessene Werte festlegen.
Die Strategie enthält nur wenige Parameter und ist leicht verständlich und umsetzbar.
Die Ergebnisse der Backtests zeigen, dass diese Strategie einen positiven Gewinnfaktor aufweist und die Buy & Hold-Strategie übertrifft.
Falschsignalrisiko durch DI-Kreuzung
Stop-Loss/Take-Profit zu nahe
Nichteffizient auf dem Bereichsmarkt
Abzugsrisiko
Fügen Sie Filter wie gleitende Durchschnitte hinzu, um falsche Signale in Bereichsperioden zu vermeiden.
Implementieren Sie Positionsgrößen wie feste Bruchteile oder Martingale, um den Drawdown zu kontrollieren und die Rentabilität zu steigern.
Optimierung der ATR-Parameter, um die Volatilität verschiedener Handelsinstrumente zu berücksichtigen.
Optimierung der Parameter für DI-Periode, ATR-Periode, ATR-Multiplikator usw., um eine optimale Kombination zu finden.
Fügen Sie die Logik der Nacht und der frühen Sitzung hinzu, um die Strategie rund um die Uhr auszuführen.
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)