Strategi ini menghasilkan sinyal perdagangan berdasarkan golden cross dan dead cross dari moving average dengan siklus yang berbeda.
Strategi ini pertama-tama menghitung rata-rata bergerak jangka menengah dan jangka pendek, ma1 dan ma2, dari harga, di mana ma1 memiliki siklus yang lebih pendek dan ma2 memiliki siklus yang lebih lama. Kemudian menghitung perbedaan antara ma1 dan ma2 sebagai ma3, dan selanjutnya menghitung rata-rata bergerak halus ma4 dari ma3. Ketika ma3 melintasi ma4 ke atas, sinyal beli dihasilkan. Ketika melintasi ke bawah, sinyal jual dihasilkan.
Dengan demikian, ma3 mencerminkan tren harga jangka menengah, dan ma4 menyaring beberapa kebisingan dari ma3 untuk membentuk sinyal perdagangan yang lebih dapat diandalkan. Siklus ma1 dan ma2 ditetapkan oleh parameter maLen. Pengguna dapat mengoptimalkan parameter untuk mencapai pengaturan terbaik untuk pasar yang berbeda.
Keuntungan dari strategi ini meliputi:
Ada juga beberapa risiko untuk strategi ini:
Strategi dapat dioptimalkan dari aspek berikut:
Strategi ini menghasilkan sinyal perdagangan berdasarkan golden cross dan dead cross dari moving average. Dengan menggunakan ALMA dan rata-rata harga multi-siklus, sinyal menjadi lebih tepat dan dapat diandalkan. Parameter yang dapat disesuaikan membuatnya dapat diterapkan secara luas. Juga, logika sederhana dan jelas dan berkinerja baik di pasar tren. Oleh karena itu, ia memiliki nilai praktis yang tinggi.
/*backtest start: 2024-01-08 00:00:00 end: 2024-01-15 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Oracle Move Strategy", overlay=true) maLen = input(30, "ma period") mode = input(defval="wma", options=["alma", "ema", "wma"]) price = close ma(src, len) => mode=="alma" ? alma(src, len, 0.85, 6) : mode=="ema"? ema(src, len) : wma(src, len) ma1 = ma(price, floor(maLen / 2)) ma2 = ma(price, maLen) ma3 = 2.0 * ma1 - ma2 ma4 = ma(ma3, floor(sqrt(maLen))) //plot(ma1, color = red) //plot(ma2, color = green) plot(ma3, color = blue) plot(ma4, color = orange) mafast = ma3 maslow = ma4 if (crossover(mafast, maslow)) strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE") if (crossunder(mafast, maslow)) strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)