Strategi ini mendesain tren sederhana mengikuti sistem perdagangan berdasarkan garis regresi linier dan garis rata-rata bergerak. Ini panjang ketika garis regresi linier melintasi di atas rata-rata bergerak dan pendek ketika garis regresi linier melintasi di bawah. Sementara itu, ini menggunakan kemiringan garis regresi untuk menyaring beberapa sinyal perdagangan dan hanya masuk ketika arah tren cocok.
Tren Mengikuti Strategi Regression Trading
Komponen utama dari strategi ini meliputi:
Garis regresi linier dapat sesuai dengan arah tren dengan baik dalam periode terakhir. Ini dapat membantu menilai arah tren secara keseluruhan. Ketika harga menembus garis SMA, kita perlu lebih lanjut menentukan apakah arah garis regresi linier konsisten dengan pemecahan ini. Hanya ketika kedua arah konsisten, sinyal perdagangan dihasilkan. Ini dapat menyaring beberapa pemecahan palsu.
Selain itu, strategi ini juga menetapkan mekanisme stop loss. Ketika harga mencapai garis stop loss, tutup posisi untuk menghentikan kerugian.
Strategi ini memiliki keuntungan berikut:
Strategi ini juga memiliki beberapa risiko:
Mengenai risiko ini, kita dapat mengoptimalkan dari aspek berikut:
Aspek utama untuk mengoptimalkan strategi lebih lanjut meliputi:
Strategi ini mengintegrasikan fungsi mengikuti tren rata-rata bergerak dan kemampuan menilai tren regresi linier, membentuk sistem perdagangan tren yang relatif sederhana. Ini dapat mencapai hasil yang baik di pasar tren yang kuat. Kami masih membutuhkan pengujian dan pengoptimalan yang luas pada parameter dan aturan, dan pengendalian risiko yang tepat. Kemudian strategi ini harus dapat memperoleh pengembalian investasi yang stabil.
/*backtest start: 2023-11-17 00:00:00 end: 2023-12-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Regression Trading Strategy", shorttitle="RTS", overlay=true) // Input parameters n = input(14, title="SMA Period") stop_loss_percentage = input(2, title="Stop Loss Percentage") take_profit_percentage = input(2, title="Take Profit Percentage") // Calculate the SMA sma = sma(close, n) // Linear regression function linear_regression(src, length) => sumX = 0.0 sumY = 0.0 sumXY = 0.0 sumX2 = 0.0 for i = 0 to length - 1 sumX := sumX + i sumY := sumY + src[i] sumXY := sumXY + i * src[i] sumX2 := sumX2 + i * i slope = (length * sumXY - sumX * sumY) / (length * sumX2 - sumX * sumX) intercept = (sumY - slope * sumX) / length line = slope * length + intercept line // Calculate the linear regression regression_line = linear_regression(close, n) // Plot the SMA and regression line plot(sma, title="SMA", color=color.blue) plot(regression_line, title="Regression Line", color=color.red) // Trading strategy conditions long_condition = crossover(close, sma) and close > regression_line short_condition = crossunder(close, sma) and close < regression_line // Exit conditions stop_loss_price = close * (1 - stop_loss_percentage / 100) take_profit_price = close * (1 + take_profit_percentage / 100) // Plot entry and exit points on the chart plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) plotshape(series=crossunder(close, stop_loss_price), title="Stop Loss", location=location.abovebar, color=color.red, style=shape.labeldown, text="SL") plotshape(series=crossover(close, take_profit_price), title="Take Profit", location=location.belowbar, color=color.green, style=shape.labelup, text="TP") // Strategy orders strategy.entry("Long", strategy.long, when = long_condition) strategy.entry("Short", strategy.short, when = short_condition) strategy.exit("Exit", from_entry = "Long", when = crossover(close, stop_loss_price) or crossover(close, take_profit_price)) strategy.exit("Exit", from_entry = "Short", when = crossunder(close, stop_loss_price) or crossunder(close, take_profit_price))