Strategi ini berdasarkan prinsip pembalikan purata, menggunakan penyimpangan harga dari purata bergerak untuk membuat keputusan perdagangan. Ia pergi pendek apabila harga menyimpang di atas jalur atas dan pergi panjang apabila ia menyimpang di bawah jalur bawah. Posisi ditutup apabila harga kembali ke purata bergerak. Asumsi utama strategi ini adalah bahawa harga akan selalu kembali ke tahap purata.
Strategi pembalikan purata adalah strategi perdagangan kuantitatif berdasarkan prinsip statistik, yang membuat keputusan perdagangan dengan membina jalur atas dan bawah di sekitar harga purata. Strategi ini mempunyai logika yang mudah dan pelaksanaan yang jelas, tetapi perhatian harus diberikan kepada pemilihan instrumen dan pengoptimuman parameter. Dalam aplikasi praktikal, faktor-faktor seperti trend, kos dagangan, dan kawalan risiko juga perlu dipertimbangkan untuk meningkatkan ketahanan dan keuntungan strategi. Secara umum, strategi pembalikan purata adalah perkara biasa dan layak dikaji secara mendalam dalam 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")