
Diese Strategie basiert auf dem Durchschnitt der realen Bandbreite (ATR) und dem Trendindikator (DMI) auf der Grundlage der Kreuzung der positiven Indikatoren (DI +) und der negativen Indikatoren (DI -). Die Strategie gehört zu den Trend-Tracking-Strategien. Die ATR wird verwendet, um die Trendwende durch die Kreuzung von DI + und DI - zu bestimmen.
Berechnung des ATR ((14)): Berechnung der durchschnittlichen realen Bandbreite unter Verwendung der Höchst-, Mindest- und Schlusskurs der letzten 14 Tage
Berechnen Sie DI+ und DI-
DI+ = 100 * RMA(MAX(UP,0),N) / ATNR
DI- = 100 * RMA(MAX(DOWN,0),N) / ATNR
UP ist die Differenz zwischen dem heutigen Höchstpreis und dem heutigen Schlusskurs, DOWN ist die Differenz zwischen dem heutigen Höchstpreis und dem heutigen Schlusskurs, N ist die Länge der Parameter, default 14, ATNR ist der ATR, der für den vorherigen Schritt berechnet wurde
Es ist eine sehr schwierige Aufgabe.
Wenn DI+ auf DI- getragen wird, wird ein Kaufsignal erzeugt
Wenn DI+ unter DI- durchschreitet, erzeugt dies ein Verkaufssignal
Einstellung der Stop-Loss-Sperre:
Multiple Stop-Loss-Preis ist der Einstiegspreis abzüglich ATR multipliziert mit dem Stop-Loss-Multiplikator
Multiple-Stop-Aufschlag als Einstiegspreis plus ATR multipliziert mit dem Aufschlag-Multiplikator
Leerfahrkarten Stop-Loss-Preis als Einstiegspreis plus ATR multipliziert mit dem Stop-Loss-Multiplikator
Leer Ticket Stop-Kennzahl minus ATR multipliziert mit Stop-Kennzahl
Die Nutzung von DI+ und DI-Kreuzung zur Beurteilung von Trendwechselpunkten ermöglicht die zeitnahe Erfassung neuer Trendrichtungen
ATR ist ein dynamischer Stop-Loss-Anzeiger, der einen vernünftigen Stop-Loss-Anzeiger basierend auf der Schwankung des Marktes festlegen kann
Wenige Strategieparameter, leicht zu verstehen und umzusetzen
Die Rückmeldedaten zeigen, dass die Strategie einen positiven Gewinnfaktor aufweist und besser als die Buy-Hold-Strategie funktioniert.
DI-Kreuzung mit Risiko für Fehltransaktionen
Der Stoppschalter ist zu nahe.
Trends und Marktschwankungen sind nicht effektiv zu handhaben.
Rückzug Risiken
Filterung von DI-Kreuzsignalen in Kombination mit Moving Averages, um Fehlhandlungen in schwankenden Zeiten zu vermeiden
Erhöhung der Positionsmanagement-Mechanismen wie Fixed Share, Martingale usw. zur Kontrolle von Rücknahmen und zur Steigerung der Profitabilität
Optimierung der ATR-Parameter, um die Stop-Loss-Stopps besser an die Schwankungsbreite der verschiedenen Handelsarten anzupassen
Optimierung der Parameter, um die optimale Kombination von Parametern zu finden, wie DI-Zyklen, ATR-Zyklen und ATR-Multiplikationen
Erweiterung der Logik für die Beurteilung von Geschäften in Nacht- und Morgenpositionen, so dass die Strategie rund um die Uhr funktioniert
Diese Strategie ist insgesamt relativ einfach und praktisch, indem sie die Zeit zum Kauf und Verkauf durch die Kreuzung von DI beurteilt und die Stop-Loss-Sperre mit ATR-Dynamik eingestellt. Die Strategie hat weniger Parameter, ist leicht zu testen und in der Praxis zu überprüfen, und es ist auch bequem, optimierte Anpassungen vorzunehmen. Die DI-Kreuzung ist jedoch nicht gut für die Beurteilung von Schocksituationen, und dies ist die Richtung, in der die Strategie verbessert werden muss.
/*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)