Trend Mengikut Strategi Berdasarkan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-01-22 17:26:04
Tag:

img

Ringkasan

Strategi ini menggunakan purata bergerak pantas dan perlahan untuk mengenal pasti dan mengikuti trend. Ia menghasilkan isyarat beli apabila garis pantas melintasi garis perlahan dan isyarat jual apabila garis pantas melintasi di bawah garis perlahan. Strategi ini sesuai untuk mengesan trend jangka menengah dan panjang dan menapis bunyi pasaran dengan berkesan.

Logika Strategi

Strategi ini menggunakan dua purata bergerak eksponen (EMA) dengan tempoh yang berbeza sebagai asas untuk keputusan perdagangan. EMA pantas mempunyai tempoh ditetapkan kepada 30 untuk menangkap turun naik harga jangka pendek. EMA perlahan mempunyai tempoh ditetapkan kepada 100 untuk mengukur arah trend jangka menengah hingga panjang.

Apabila EMA cepat melintasi EMA perlahan dari bawah, ia menunjukkan pasaran memasuki trend menaik dan menghasilkan isyarat beli.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Mengambil pendekatan dua-EMA untuk menentukan arah trend dengan jelas.
  2. Mampu mengesan trend jangka menengah hingga panjang dan penyesuaian jangka pendek.
  3. Logik yang mudah dan jelas, mudah difahami dan dilaksanakan, sesuai untuk pemula.

Analisis Risiko

Terdapat juga beberapa risiko:

  1. Rendah kepada isyarat palsu apabila harga bergerak ke sisi.
  2. Tidak berkesan dalam menangani perubahan harga yang melampau.
  3. Lagging yang melekat pada sistem MA, mungkin terlepas titik pembalikan harga.

Arahan pengoptimuman

Beberapa arah pengoptimuman:

  1. Mengoptimumkan tempoh EMA untuk meningkatkan keuntungan.
  2. Tambahkan penunjuk lain seperti jumlah dagangan untuk mengelakkan pecah palsu.
  3. Masukkan penunjuk kekuatan trend untuk mengelakkan perubahan trend.
  4. Memperkenalkan pengoptimuman parameter untuk fleksibiliti yang lebih luas.

Kesimpulan


/*backtest
start: 2023-01-21 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 30, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 100, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 0, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 0, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)

Lebih lanjut