Strategi Crossover SMA Berganda

Penulis:ChaoZhang, Tarikh: 2023-11-23 16:42:58
Tag:

img

Ringkasan

Strategi Dual SMA Crossover menghasilkan isyarat perdagangan dengan mengira persilangan dua garis SMA dengan tetapan parameter yang berbeza. Apabila garis SMA yang lebih cepat melintasi di atas garis SMA yang lebih perlahan, isyarat beli dihasilkan. Apabila garis SMA yang lebih perlahan melintasi di bawah garis SMA yang lebih cepat, isyarat jual dihasilkan. Strategi ini menggunakan dua set parameter SMA pada masa yang sama, satu set untuk menentukan titik masuk, dan yang lain untuk menentukan titik keluar.

Logika Strategi

Strategi ini menggunakan dua set parameter SMA,smaB1, smaB2untuk isyarat beli, dansmaS1, smaS2untuk isyarat jual, yang mewakili purata bergerak yang lebih perlahan dan lebih cepat masing-masing.smaB1Salib di atassmaB2, isyarat beli dihasilkan.smaS2Salib di bawahsmaS1, isyarat jual dihasilkan. Ini membolehkan penyesuaian fleksibel syarat masuk dan keluar untuk menyesuaikan diri dengan perubahan persekitaran pasaran.

Secara khusus, strategi ini memantau situasi persilangan antara dua garis SMA yang dikira dari harga penutupan untuk menentukan masa membeli dan menjual. Apabila garis SMA yang lebih cepat melintasi di atas garis SMA yang lebih perlahan, ia dinilai bahawa trend harga adalah menaik, jadi pergi panjang pada masa ini. Dan apabila garis SMA yang lebih perlahan melintasi di bawah garis SMA yang lebih cepat, trend harga bertukar ke bawah, jadi keluar dari kedudukan panjang.

Analisis Kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggunakan sistem silang purata bergerak berganda membolehkan penyesuaian kriteria kemasukan dan keluar yang fleksibel untuk menyesuaikan diri dengan perubahan pasaran
  2. Garis SMA sendiri boleh menapis beberapa bunyi bising dan menjana isyarat perdagangan yang lebih boleh dipercayai
  3. Gabungan parameter SMA yang boleh disesuaikan membolehkan pengoptimuman parameter untuk produk yang berbeza

Analisis Risiko

Terdapat juga beberapa risiko yang berkaitan dengan strategi ini:

  1. Isyarat silang SMA mungkin tertunda dan gagal menjana isyarat tepat pada masanya di sekitar titik giliran
  2. Pemilihan parameter SMA yang tidak betul boleh menyebabkan terlalu banyak isyarat palsu
  3. Isyarat yang dihasilkan dalam keadaan pasaran yang tidak menentu mungkin tidak berfungsi dengan baik

Untuk mengawal risiko di atas, kaedah seperti pengoptimuman parameter SMA, stop loss dinamik untuk mengunci keuntungan, dan lain-lain boleh digunakan untuk meningkatkan strategi.

Arahan pengoptimuman

Beberapa arah pengoptimuman untuk strategi ini:

  1. Uji lebih banyak kombinasi parameter SMA untuk mencari parameter optimum
  2. Tambah pengesahan jumlah untuk mengelakkan isyarat yang salah semasa turun naik harga yang ganas
  3. Menggabungkan penunjuk lain (contohnya MACD, RSI) untuk menapis isyarat silang SMA
  4. Tambah strategi stop loss untuk mengunci keuntungan dan mengurangkan kerugian

Ringkasan

Strategi SMA Crossover menghasilkan isyarat perdagangan yang mudah dan berkesan dengan mengira situasi silang antara dua garis SMA. Fleksibiliti untuk menyesuaikan parameter menjadikan strategi ini dapat disesuaikan dengan produk yang berbeza, dan ia adalah strategi trend yang biasa digunakan. Penambahbaikan lanjut boleh dibuat kepada strategi ini melalui pengoptimuman parameter, penapisan isyarat dll untuk menghasilkan isyarat yang lebih boleh dipercayai.


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
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/
// © melihtuna

//@version=4
strategy("SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD, commission_value=0.1, commission_type=strategy.commission.percent)

smaB1 = input(title="smaB1",defval=377)
smaB2 = input(title="smaB2",defval=200)
smaS1 = input(title="smaS1",defval=377)
smaS2 = input(title="smaS2",defval=200)
smawidth = 2

plot(sma(close, smaB1), color = #EFB819, linewidth=smawidth, title='smaB1')
plot(sma(close, smaB2), color = #FF23FD, linewidth=smawidth, title='smaB2')
plot(sma(close, smaS1), color = #000000, linewidth=smawidth, title='smaS1')
plot(sma(close, smaS2), color = #c48dba, linewidth=smawidth, title='smaS2')

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2020, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        
window()  => time >= start and time <= finish ? true : false 

longCondition = crossover(sma(close, smaB1),sma(close, smaB2))

if (window() and longCondition)
    strategy.entry("BUY", strategy.long)

shortCondition = crossover(sma(close, smaS2),sma(close, smaS1))

if (window() and shortCondition)
    strategy.entry("SELL", strategy.short)
    
    
    

Lebih lanjut