Strategi ini didasarkan pada prinsip reversi rata-rata, menggunakan penyimpangan harga dari rata-rata bergerak untuk membuat keputusan perdagangan. Ia pergi pendek ketika harga menyimpang di atas band atas dan pergi panjang ketika menyimpang di bawah band bawah. Posisi ditutup ketika harga kembali ke rata-rata bergerak. Asumsi inti dari strategi ini adalah bahwa harga akan selalu kembali ke tingkat rata-rata.
Strategi reversi rata-rata adalah strategi perdagangan kuantitatif berdasarkan prinsip statistik, yang membuat keputusan perdagangan dengan membangun band atas dan bawah di sekitar harga rata-rata. Strategi ini memiliki logika sederhana dan eksekusi yang jelas, tetapi perhatian harus diberikan pada pemilihan instrumen dan pengoptimalan parameter. Dalam penerapan praktis, faktor-faktor seperti tren, biaya perdagangan, dan pengendalian risiko juga perlu dipertimbangkan untuk meningkatkan ketahanan dan profitabilitas strategi. Secara umum, strategi reversi rata-rata adalah hal yang umum dan layak dipelajari secara mendalam di bidang perdagangan kuantitatif.
/*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")