
Die Strategie kombiniert die Trendindikatoren DMI (Directional Dynamics Indicator) und ADX (Average Trend Indicator) zur Identifizierung von starken Markttrends und zur Erfassung von Handelsmöglichkeiten. Die Strategie bestimmt die Trendrichtung durch die Kreuzung der +DI- und -DI-Linien des DMI, während die ADX-Indikatoren zur Messung der Trendstärke verwendet werden.
Die Kernlogik der Strategie umfasst die folgenden Schlüsselelemente:
Gegenmaßnahmen:
Die DMI+ADX-Kreuzstrategie ist eine klassische Trendverfolgungsstrategie, die nach Handelsmöglichkeiten in stark trendigen Märkten sucht, indem sie Richtung und Stärkeindikatoren kombiniert. Die Strategie hat eine klare Logik, eine ausgezeichnete Risikokontrolle, eine gute Praktikabilität und Skalierbarkeit. Durch kontinuierliche Optimierung und Verbesserung kann die Strategie besser an verschiedene Marktumgebungen angepasst werden, um die Effektivität des Handels zu verbessern.
/*backtest
start: 2024-02-19 00:00:00
end: 2024-10-25 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("DMI + ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=250)
// Nastavenie parametrov
adxLength = input.int(14, title="ADX Length")
adxSmoothing = input.int(14, title="ADX Smoothing")
dmiLength = input.int(14, title="DMI Length")
adxThreshold = input.float(25.0, title="ADX Threshold")
stopLossPerc = input.float(1.0, title="Stop Loss (%)")
takeProfitPerc = input.float(2.0, title="Take Profit (%)")
// Výpočet DMI a ADX pomocou ta.dmi
[plusDI, minusDI, adxValue] = ta.dmi(dmiLength, adxSmoothing)
// Nákupné podmienky
longCondition = ta.crossover(plusDI, minusDI) and adxValue > adxThreshold
if (longCondition)
strategy.entry("Long", strategy.long)
// Predajné podmienky
shortCondition = ta.crossunder(plusDI, minusDI) and adxValue > adxThreshold
if (shortCondition)
strategy.entry("Short", strategy.short)
// Definovanie Stop a Limit pre Long pozíciu
longStop = strategy.position_avg_price * (1 - stopLossPerc / 100)
longLimit = strategy.position_avg_price * (1 + takeProfitPerc / 100)
if (strategy.position_size > 0)
strategy.exit("Long Exit", "Long", stop=longStop, limit=longLimit)
// Definovanie Stop a Limit pre Short pozíciu
shortStop = strategy.position_avg_price * (1 + stopLossPerc / 100)
shortLimit = strategy.position_avg_price * (1 - takeProfitPerc / 100)
if (strategy.position_size < 0)
strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortLimit)
// Vizualizácia indikátorov na grafe
plot(adxValue, title="ADX", color=color.blue)
hline(adxThreshold, "ADX Threshold", color=color.gray)
plot(plusDI, title="+DI", color=color.green)
plot(minusDI, title="-DI", color=color.red)