Strategi ini menggabungkan Simple Moving Average (SMA) dan rolling linear regression trendline. Strategi ini menetapkan kondisi masuk panjang ketika harga penutupan berada di atas SMA dan trendline, dan kondisi keluar ketika harga penutupan berada di bawahnya. Strategi ini terutama menggunakan SMA sebagai sinyal perdagangan dan garis tren rolling untuk dukungan saluran.
Komponen utama dari strategi ini meliputi:
SMA: Rata-rata bergerak sederhana, menghitung harga penutupan rata-rata selama periode (smaPeriod) sebagai garis sinyal.
Rolling Trendline: Memasang garis regresi linier terbaik di atas jendela (jendela) sebagai sinyal tren. Dihitung dengan metode Ordinary Least Square.
Kondisi masuk: pergi panjang ketika harga tutup > SMA dan garis tren.
Kondisi keluar: Penutupan posisi ketika harga penutupan < SMA dan garis tren.
Jadi strategi ini terutama mengandalkan sinyal SMA untuk masuk, dan saluran breakout untuk keluar.
Strategi ini mengintegrasikan filter ganda MA dan trendline, yang secara efektif dapat mengurangi perdagangan breakout palsu. Sementara itu, trendline rolling memberikan dukungan saluran yang lebih tepat untuk keputusan yang dapat diandalkan. Keuntungan utama meliputi:
Ada juga beberapa risiko dari strategi ini:
Beberapa arah optimasi untuk risiko ini:
Strategi ini dapat dioptimalkan dalam aspek berikut:
Tambahkan fungsi penyesuaian dinamis untuk periode SMA, parameter slippage berdasarkan rezim pasar.
Mengembangkan mekanisme stop loss yang elastis. Menetapkan stop loss ketika harga melanggar garis tren pada rasio.
Tambahkan filter dari indikator lain misalnya Volume, RSI untuk meningkatkan akurasi keputusan.
Pergi panjang ketika harga mendekati dasar dan memecahkan saluran ke bawah.
Strategi ini mengintegrasikan sinyal perdagangan dari moving average dan channel support dari rolling trendline untuk mengimplementasikan trend following operations. Filter ganda mengurangi probabilitas false breakout dan meningkatkan kualitas keputusan. Strategi ini memiliki pengaturan parameter sederhana dan logika yang jelas, yang mudah diimplementasikan dan dioptimalkan.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SMA Strategy with Rolling Trendline", overlay=true) // Input parameters smaPeriod = input(14, title="SMA Period") window = input(20, title="Trendline Window") startDate = input(timestamp("2023-01-01"), title="Start Date") endDate = input(timestamp("2023-12-31"), title="End Date") // Calculating SMA sma = sma(close, smaPeriod) // Function to calculate linear regression trendline for a window linreg_trendline(window) => sumX = 0.0 sumY = 0.0 sumXY = 0.0 sumX2 = 0.0 for i = 0 to window - 1 sumX := sumX + i sumY := sumY + close[i] sumXY := sumXY + i * close[i] sumX2 := sumX2 + i * i slope = (window * sumXY - sumX * sumY) / (window * sumX2 - sumX * sumX) intercept = (sumY - slope * sumX) / window slope * (window - 1) + intercept // Calculating the trendline trendline = linreg_trendline(window) // Entry and Exit Conditions longCondition = close > sma and close < trendline exitLongCondition = close < sma and close > trendline // Strategy logic if (true) if (longCondition) strategy.entry("Long", strategy.long) if (exitLongCondition) strategy.close("Long") // Plotting plot(sma, title="Simple Moving Average", color=color.blue) plot(trendline, title="Rolling Trendline", color=color.red) plotshape(series=longCondition, title="Enter Trade", location=location.belowbar, color=color.green, style=shape.triangleup) plotshape(series=exitLongCondition, title="Exit Trade", location=location.abovebar, color=color.red, style=shape.triangledown)