
この戦略は,技術指標と機械学習の方法を組み合わせたトレンド追跡システムである.この戦略は,相対的に強い指標 ((RSI),平均トレンド指標 ((ADX) と線形回帰予測モデルを統合し,多次元分析によって市場の傾向と取引機会を決定する.この戦略は,5分間の周期で動作し,RSIの超買超売信号,ADXのトレンド確認と線形回帰予測を組み合わせた方法で,完全な取引意思決定システムを実現する.
戦略は3つのフィルタリングメカニズムを使用して取引信号を特定します.
この戦略は,伝統的な技術分析と近代的な予測方法を組み合わせて,比較的完全な取引システムを構築している.戦略の核心的な優点は,偽信号の影響を効果的に軽減できる多次元信号確認機構である.予測モデルを改良し,パラメータ調整機構を最適化し,リスク管理を強化することにより,戦略には大きな最適化余地がある.実際の適用では,投資家は,特定の市場特性と自身のリスク承受能力に応じて,戦略パラメータを適切に調整することを推奨している.
/*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)