
Strategi ini adalah sistem pengesanan trend yang menggabungkan petunjuk teknikal dan kaedah pembelajaran mesin. Strategi ini mengintegrasikan indikator kekuatan relatif ((RSI), indikator trend rata-rata ((ADX) dan model ramalan regresi linear untuk menentukan trend pasaran dan peluang perdagangan melalui analisis pelbagai dimensi. Strategi ini berjalan pada kitaran masa 5 minit, mewujudkan sistem keputusan perdagangan yang lengkap dengan menggabungkan isyarat RSI overbought dan oversold, pengesahan trend ADX dan ramalan regresi linear.
Strategi ini menggunakan tiga lapisan penapisan untuk menentukan isyarat perdagangan:
Strategi ini membina sistem perdagangan yang agak lengkap dengan menggabungkan analisis teknikal tradisional dan kaedah ramalan moden. Kelebihan utama strategi ini adalah mekanisme pengesahan isyarat berbilang dimensi yang dapat mengurangkan kesan isyarat palsu dengan berkesan. Strategi ini mempunyai ruang pengoptimuman yang besar dengan memperbaiki model ramalan, mengoptimumkan mekanisme penyesuaian parameter dan meningkatkan pengurusan risiko.
/*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)