
Strategi respon rata-rata bergerak adalah strategi perdagangan tren yang sangat sederhana. Gagasan utamanya adalah melakukan lebih banyak ketika rata-rata bergerak jangka pendek lebih rendah dari rata-rata bergerak jangka panjang dalam persentase tertentu, dan melakukan posisi terdepan ketika rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka panjang. Strategi ini pertama-tama menghitung satu rata-rata bergerak jangka pendek dan satu rata-rata bergerak jangka panjang, dan kemudian menghasilkan sinyal perdagangan berdasarkan hubungan antara dua rata-rata bergerak.
Strategi ini terutama bergantung pada dua rata-rata bergerak, satu rata-rata bergerak jangka pendek, dan satu rata-rata bergerak jangka panjang. Parameter rata-rata bergerak jangka pendek adalah smallMAPeriod, parameter rata-rata bergerak jangka panjang adalah bigMAPeriod. Strategi ini pertama-tama menghitung hubungan ukuran antara kedua rata-rata bergerak ini, dan kemudian membandingkan dua rata-rata bergerak.
Ketika rata-rata bergerak jangka pendek jatuh dari atas ke bawah dari rata-rata bergerak jangka panjang dalam persentase tertentu (ditentukan oleh parameter PercentBelowToBuy), menghasilkan sinyal beli, melakukan over entry. Ketika rata-rata bergerak jangka pendek kemudian naik, naik kembali melewati rata-rata bergerak jangka panjang, menghasilkan sinyal jual, posisi kosong.
Strategi ini menangkap peluang respons rata-rata antara rata-rata bergerak jangka pendek dan rata-rata bergerak jangka panjang. Ketika rata-rata bergerak jangka pendek lebih rendah dari rata-rata bergerak jangka panjang, ini menunjukkan bahwa aset mungkin terbebani dan harus memiliki kesempatan untuk kembali ke rata-rata.
Strategi respon rata-rata bergerak memiliki beberapa keuntungan:
Optimasi parameter sederhana dari strategi ini dapat memberikan hasil yang baik. Dengan menyesuaikan parameter moving average dan parameter persentase kelonggaran, dapat dilakukan pengujian ulang terhadap berbagai aset pasar seperti saham, forex, dan cryptocurrency untuk memilih kombinasi parameter terbaik.
Strategi respon rata-rata bergerak juga memiliki beberapa risiko:
Risiko dapat dikurangi dengan melakukan hal berikut:
Strategi respon rata-rata bergerak dapat dioptimalkan dalam beberapa hal:
Strategi responsif rata-rata bergerak menangkap peluang untuk kembali setelah harga jangka pendek menyimpang dari tren jangka panjang dengan membandingkan hubungan antara dua rata-rata bergerak jangka pendek dan jangka panjang. Strategi ini sederhana, mudah dimengerti dan diterapkan, dan dapat memperoleh hasil yang lebih baik melalui pengoptimalan parameter. Namun, ada juga risiko kurangnya sinyal perdagangan, mudah untuk melewatkan pergeseran harga, dan perlu menguji dan mengoptimalkan parameter dan kondisi penyaringan untuk memaksimalkan keuntungan dari strategi.
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
//
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//
// @author Sunil Halai
//
// This very simple strategy is an implementation of PJ Sutherlands' Jaws Mean reversion algorithm. It simply buys when a small moving average period (e.g. 2) is below
// a longer moving average period (e.g. 5) by a certain percentage, and closes when the small period average crosses over the longer moving average.
//
// If you are going to use this, you may wish to apply this to a range of investment assets, as the amount signals is low. Alternatively you may wish to tweak the settings to provide more
// signals.
strategy("Jaws Mean Reversion [Strategy]", overlay = true)
//Strategy inputs
source = input(title = "Source", defval = close)
smallMAPeriod = input(title = "Small Moving Average", defval = 2)
bigMAPeriod = input(title = "Big Moving Average", defval = 5)
percentBelowToBuy = input(title = "Percent below to buy %", defval = 3)
//Strategy calculation
smallMA = sma(source, smallMAPeriod)
bigMA = sma(source, bigMAPeriod)
buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0]
if(crossunder(smallMA, buyMA))
strategy.entry("BUY", strategy.long)
if(crossover(smallMA, bigMA))
strategy.close("BUY")