
Strategi ini berdasarkan pada prinsip regresi rata-rata, menggunakan keadaan harga yang menyimpang dari rata-rata bergerak untuk membuat keputusan perdagangan. Apabila harga bergerak ke atas dari arah atas, ia melakukan penyingkiran, apabila ia bergerak ke bawah, ia melakukan penyingkiran, dan apabila harga kembali ke arah rata-rata bergerak, ia akan kembali ke tahap rata-rata.
Strategi pulangan rata-rata adalah strategi perdagangan kuantitatif berdasarkan prinsip statistik, membuat keputusan perdagangan dengan membina harga rata-rata naik dan turun. Logik strategi ini mudah, dilaksanakan dengan jelas, tetapi berhati-hati dengan pilihan dan optimasi parameter varieti. Dalam aplikasi praktikal, faktor-faktor seperti trend, kos perdagangan, dan kawalan risiko juga perlu dipertimbangkan untuk meningkatkan kestabilan dan keuntungan strategi.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Mean Regression Strategy", overlay=true)
// Define the lookback period for the moving average
length = input.int(20, title="Moving Average Length")
mult = input.float(1.5, title="Standard Deviation Multiplier")
// Calculate the moving average and standard deviation
ma = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
// Calculate upper and lower bands
upper_band = ma + dev
lower_band = ma - dev
// Plot the moving average and bands
plot(ma, color=color.blue, linewidth=2, title="Moving Average")
plot(upper_band, color=color.red, linewidth=2, title="Upper Band")
plot(lower_band, color=color.green, linewidth=2, title="Lower Band")
// Entry conditions
long_condition = ta.crossover(close, lower_band)
short_condition = ta.crossunder(close, upper_band)
// Exit conditions
exit_long_condition = ta.crossunder(close, ma)
exit_short_condition = ta.crossover(close, ma)
// Strategy orders
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
if (exit_long_condition)
strategy.close("Long")
if (exit_short_condition)
strategy.close("Short")
// Plot signals on the chart
plotshape(series=long_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=short_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")