Strategi Perdagangan Crossover Moving Average


Tarikh penciptaan: 2023-11-27 17:25:36 Akhirnya diubah suai: 2023-11-27 17:25:36
Salin: 0 Bilangan klik: 639
1
fokus pada
1617
Pengikut

Strategi Perdagangan Crossover Moving Average

Gambaran keseluruhan

Strategi perdagangan silang rata-rata bergerak dengan mengira purata bergerak dari pelbagai kitaran, untuk membeli atau menjual operasi apabila mereka berlaku garpu emas atau garpu mati, adalah strategi perdagangan jenis analisis teknikal. Strategi ini mudah, mudah digunakan, kurang modal, sedikit penarikan balik, sesuai untuk operasi garis panjang dan sederhana.

Prinsip Strategi

Strategi ini dilakukan dengan mengira purata bergerak indeks 20 dan 50 kitaran (EMA). Apabila 20 kitaran EMA melintasi 50 kitaran EMA, melakukan operasi beli. Apabila 20 kitaran EMA melintasi 50 kitaran EMA, melakukan operasi jual.

Indeks EMA adalah purata bergerak yang memberi lebih banyak berat kepada data terkini. Formula pengiraan EMA adalah:

EMAtoday = (Pricetoday * k) + EMAyesterday * (1-k)

Di mana k = 2/(bilangan kitaran + 1)

Oleh itu, apabila EMA jangka pendek di atas EMA jangka panjang, menunjukkan pergerakan harga bertukar menjadi bullish, LONG; apabila EMA jangka pendek di bawah EMA jangka panjang, menunjukkan pergerakan harga bertukar menjadi bearish, SHORT.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Operasi mudah, mudah difahami dan dilaksanakan.
  2. Pengambilan dana yang lebih rendah, pengeluaran yang lebih kecil, yang membantu dalam pengurusan dana.
  3. Parameter ini boleh disesuaikan dengan pasaran yang berbeza.
  4. Ia boleh digunakan pada mana-mana jenis dan boleh digunakan untuk perdagangan dalam hari dan perdagangan trend.

Risiko dan pengoptimuman

Strategi ini juga mempunyai risiko:

  1. Apabila harga turun naik, isyarat dagangan yang kerap berlaku memerlukan penapisan.
  2. Ia juga boleh menyebabkan penarikan harga yang tinggi dan penarikan harga yang rendah.
  3. Perdagangan terjejas dengan pengoptimuman parameter dan memerlukan lebih banyak pengesahan data sejarah.

Oleh itu, strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menambah penapis seperti penunjuk garis putar untuk mengurangkan isyarat palsu.
  2. Bergabunglah dengan logik Stop Loss untuk mengelakkan penjarahan.
  3. Mencari kombinasi parameter terbaik untuk pelbagai jenis.
  4. Sinyal pembelian dan penjualan yang disahkan bersama-sama dengan petunjuk jumlah dagangan.

ringkaskan

Strategi perdagangan silang rata-rata bergerak adalah strategi perdagangan teknologi yang mudah dan berkesan, mudah difahami, dilaksanakan, diuji oleh pasaran. Dengan cara seperti pengoptimuman parameter, penambahan syarat tambahan, risiko perdagangan dapat dikurangkan lebih jauh, dan kestabilan strategi dapat ditingkatkan. Strategi ini boleh menjadi modul asas perdagangan kuantitatif.

Kod sumber strategi
/*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)