
Die Strategie ist ein Trend-Tracking-System, das technische Indikatoren und Machine-Learning-Methoden kombiniert. Die Strategie integriert die relativ starken Indikatoren (RSI), die durchschnittlichen Trendindikatoren (ADX) und die lineare Regression-Vorhersage-Modelle, um Markttrends und Handelschancen durch mehrdimensionale Analyse zu bestimmen. Die Strategie läuft auf 5-Minuten-Zeiträumen und ermöglicht ein vollständiges Handelsentscheidungssystem durch die Kombination von RSI-Überkauf-Überverkauf-Signalen, ADX-Trendbestätigung und lineare Regression-Vorhersage.
Die Strategie nutzt drei Filtermechanismen, um Handelssignale zu identifizieren:
Durch die Kombination von traditioneller technischer Analyse und modernen Prognosemethoden wurde ein relativ vollständiges Handelssystem aufgebaut. Die Kernstärke der Strategie liegt in der mehrdimensionalen Signalbestätigungsmechanik, die die Auswirkungen von Falschsignalen wirksam reduzieren kann. Durch die Verbesserung des Prognosemodells, die Optimierung der Parameteranpassungsmechanismen und die Erhöhung des Risikomanagements besteht ein großer Optimierungsraum für die Strategie. In der praktischen Anwendung wird den Anlegern empfohlen, die Strategieparameter entsprechend den spezifischen Markteigenschaften und der eigenen Risikobereitschaft anzupassen.
/*backtest
start: 2025-01-20 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("RSI + ADX + ML-like Strategy (5min)", overlay=true)
// ———— 1. Inputs ————
rsiLength = input(14, "RSI Length")
adxLength = input(14, "ADX Length")
mlLookback = input(20, "ML Lookback (Bars)")
// ———— 2. Calculate Indicators ————
// RSI
rsi = ta.rsi(close, rsiLength)
// ADX
[diPlus, diMinus, adx] = ta.dmi(adxLength, adxLength)
// ———— 3. Simplified ML-like Component (Linear Regression) ————
var float predictedClose = na
sumX = math.sum(bar_index, mlLookback) // FIXED: Using math.sum()
sumY = math.sum(close, mlLookback) // FIXED: Using math.sum()
sumXY = math.sum(bar_index * close, mlLookback) // FIXED: Using math.sum()
sumX2 = math.sum(bar_index * bar_index, mlLookback)
slope = (mlLookback * sumXY - sumX * sumY) / (mlLookback * sumX2 - sumX * sumX)
intercept = (sumY - slope * sumX) / mlLookback
predictedClose := slope * bar_index + intercept
// ———— 4. Strategy Logic ————
mlBullish = predictedClose > close
mlBearish = predictedClose < close
enterLong = ta.crossover(rsi, 30) and adx > 25 and mlBullish
enterShort = ta.crossunder(rsi, 70) and adx > 25 and mlBearish
// ———— 5. Execute Orders ————
strategy.entry("Long", strategy.long, when=enterLong)
strategy.entry("Short", strategy.short, when=enterShort)
// ———— 6. Plotting ————
plot(predictedClose, "Predicted Close", color=color.purple)
plotshape(enterLong, "Buy", shape.triangleup, location.belowbar, color=color.green)
plotshape(enterShort, "Sell", shape.triangledown, location.abovebar, color=color.red)