Strategi ini menghasilkan isyarat dagangan berdasarkan salib emas dan salib mati purata bergerak dengan kitaran yang berbeza.
Strategi ini mula-mula mengira purata bergerak jangka sederhana dan jangka pendek, ma1 dan ma2, harga, di mana ma1 mempunyai kitaran yang lebih pendek dan ma2 mempunyai kitaran yang lebih lama. Kemudian ia mengira perbezaan antara ma1 dan ma2 sebagai ma3, dan seterusnya mengira purata bergerak licin ma4 ma3. Apabila ma3 melintasi ma4 ke atas, isyarat beli dihasilkan. Apabila melintasi ke bawah, isyarat jual dihasilkan.
Oleh itu, ma3 mencerminkan trend jangka menengah harga, dan ma4 menapis beberapa bunyi bising dari ma3 untuk membentuk isyarat perdagangan yang lebih boleh dipercayai. kitaran ma1 dan ma2 ditetapkan oleh parameter maLen. Pengguna boleh mengoptimumkan parameter untuk mencapai tetapan terbaik untuk pasaran yang berbeza.
Kelebihan strategi ini termasuk:
Terdapat juga beberapa risiko untuk strategi ini:
Strategi ini boleh dioptimumkan dari aspek berikut:
Strategi ini menghasilkan isyarat perdagangan berdasarkan salib emas dan salib mati purata bergerak. Dengan menggunakan ALMA dan purata harga pelbagai kitaran, isyarat menjadi lebih tepat dan boleh dipercayai. Parameter yang boleh disesuaikan menjadikannya boleh digunakan secara meluas. Juga, logiknya mudah dan jelas dan berfungsi dengan baik di pasaran yang sedang berkembang. Oleh itu, ia mempunyai nilai praktikal 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)