Strategi perdagangan crossover purata bergerak menghasilkan isyarat beli dan jual apabila purata bergerak jangka pendek dan jangka panjang bersilang. Ia tergolong dalam strategi perdagangan berdasarkan analisis teknikal. Strategi ini mudah, cekap modal dengan pengeluaran yang lebih kecil, sesuai untuk perdagangan jangka menengah dan panjang.
Strategi ini mengira 20 dan 50 tempoh Eksponensial Moving Average (EMA). Ia mencetuskan kedudukan panjang apabila 20 EMA melintasi atas 50 EMA. Ia mencetuskan kedudukan pendek apabila 20 EMA melintasi di bawah 50 EMA.
EMA memberi lebih banyak berat kepada data terkini.
EMA hari ini = (Harga hari ini * k) + EMA semalam * (1-k)
Di mana k = 2/(bilangan tempoh + 1)
Apabila EMA jangka pendek melintasi EMA jangka panjang, ia menunjukkan pergerakan harga bullish ke LONG. Apabila ia melintasi di bawah, ia menunjukkan pembalikan harga bearish ke SHORT.
Kelebihan strategi ini:
Risiko termasuk:
Peningkatan:
Strategi crossover purata bergerak adalah strategi teknikal yang mudah tetapi berkesan yang terbukti oleh pasaran. Penambahbaikan lanjut mengenai kawalan risiko dan ketahanan boleh dicapai dengan penyesuaian parameter, menambah penapis dll. Ia berfungsi sebagai blok bangunan asas untuk perdagangan kuantitatif.
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h 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/ // © brandlabng //@version=5 //study(title="Holly Grail", overlay = true) strategy('HG|E15m', overlay=true) src = input(close, title='Source') price = request.security(syminfo.tickerid, timeframe.period, src) ma1 = input(20, title='1st MA Length') type1 = input.string('EMA', '1st MA Type', options=['EMA']) ma2 = input(50, title='2nd MA Length') type2 = input.string('EMA', '2nd MA Type', options=['EMA']) price1 = if type1 == 'EMA' ta.ema(price, ma1) price2 = if type2 == 'EMA' ta.ema(price, ma2) //plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0) plot(series=price1, style=plot.style_line, title='1st MA', color=color.new(#219ff3, 0), linewidth=2) plot(series=price2, style=plot.style_line, title='2nd MA', color=color.new(color.purple, 0), linewidth=2) longCondition = ta.crossover(price1, price2) if longCondition strategy.entry('Long', strategy.long) shortCondition = ta.crossunder(price1, price2) if shortCondition strategy.entry('Short', strategy.short)