
Strategi ini menggunakan prinsip persilangan rata-rata bergerak bertingkat, menangkap trend garis tengah dan panjang, dan mencapai keuntungan yang stabil. Strategi ini menggunakan tiga kumpulan rata-rata bergerak cepat, sederhana, dan perlahan dengan parameter yang berbeza, membuat keputusan perdagangan berdasarkan keadaan persilangan mereka. Strategi persilangan rata-rata bergerak bertingkat ini, berbanding dengan strategi tradisional yang hanya mempunyai dua kumpulan rata-rata bergerak, dapat menyaring lebih banyak isyarat palsu dan meningkatkan peluang kemenangan strategi.
Strategi ini menggunakan tiga kumpulan purata bergerak: purata bergerak cepat MAshort, purata bergerak sederhana MAmid, dan purata bergerak perlahan MAlong. Di antaranya, parameter MAshort adalah 9, bertindak balas paling cepat, untuk menangkap isyarat garis pendek; parameter MAmid adalah 50, pantas, untuk mengesahkan trend; dan parameter MAlong adalah 100, bertindak balas paling lambat, untuk menentukan arah trend garis panjang.
Logik dagangan khusus strategi adalah: apabila rata-rata bergerak laju sederhana di atas MAmid melintasi rata-rata bergerak perlahan MAlong, menunjukkan bahawa momentum kenaikan harga saham sedang terbentuk, maka strategi melakukan lebih banyak; apabila rata-rata bergerak cepat di bawah MAshort melintasi rata-rata bergerak laju sederhana di bawah MAmid, menunjukkan bahawa trend garis pendek bertukar, strategi ini berhampiran.
Kelebihan utama strategi ini adalah bahawa ia dapat memfilterkan isyarat palsu dengan berkesan melalui gabungan pelbagai kumpulan purata bergerak, hanya dengan memilih satu terobosan yang lebih kuat dalam trend kenaikan garis tengah dan panjang untuk membuat lebih banyak kedudukan.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai risiko:
Untuk menghadapi risiko di atas, kami akan meluaskan lagi kelayakan strategi kami, digabungkan dengan kawalan kawalan teknologi hentian untuk penarikan maksimum. Apabila trend garis panjang tengah bertukar, kami akan bertindak balas dengan cara menurunkan kedudukan.
Strategi ini juga boleh dioptimumkan dengan:
Strategi ini merupakan strategi kuantitatif garis tengah yang tipikal, dengan berlainan peringkat rata-rata bergerak yang sepadan dengan WebDriverWait== trend jangka panjang, untuk mengawal risiko perdagangan, keuntungan yang berterusan. Strategi ini menggabungkan pelbagai set parameter, berbanding dengan satu petunjuk, yang dapat mengenal pasti isyarat trend garis tengah yang kuat. Dengan pengoptimuman lanjut, strategi ini boleh digunakan untuk lebih banyak jenis, memainkan peranan penting dalam bidang perdagangan kuantitatif.
/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule
//@version=4
strategy(shorttitle='Multi Moving Average Crossing',title='Multi Moving Average Crossing (by Coinrule)', overlay=true, initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
//MA inputs and calculations
inlong=input(100, title='MAlong')
inmid=input(50, title='MAmid')
inshort=input(9, title='MAfast')
MAlong = sma(close, inlong)
MAshort= sma(close, inshort)
MAmid= sma(close, inmid)
//Entry
bullish = crossover(MAmid, MAlong)
strategy.entry(id="long", long = true, when = bullish and window())
//Exit
bearish = crossunder(MAshort, MAmid)
strategy.close("long", when = bearish and window())
plot(MAshort, color=color.orange, linewidth=2)
plot(MAmid, color=color.red, linewidth=2)
plot(MAlong, color=color.blue, linewidth=2)