Tren Mengikuti Strategi Berdasarkan Rata-rata Bergerak

Penulis:ChaoZhang
Tag:

img

Gambaran umum

Strategi ini menggunakan rata-rata bergerak cepat dan lambat untuk mengidentifikasi dan mengikuti tren. Ini menghasilkan sinyal beli ketika garis cepat melintasi garis lambat dan sinyal jual ketika garis cepat melintasi di bawah garis lambat. Strategi ini cocok untuk melacak tren jangka menengah dan panjang dan menyaring kebisingan pasar secara efektif.

Logika Strategi

Ketika EMA cepat melintasi EMA lambat dari bawah, ini menunjukkan pasar memasuki tren naik dan menghasilkan sinyal beli.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Mengadopsi pendekatan dual-EMA untuk menentukan arah tren dengan jelas.
  2. Memungkinkan optimasi parameter di mana periode EMA cepat dan lambat dapat disesuaikan.
  3. Mampu melacak tren jangka menengah hingga jangka panjang dan penyesuaian jangka pendek.
  4. Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan, cocok untuk pemula.

Analisis Risiko

Ada juga beberapa risiko:

  1. Tidak efektif dalam menangani perubahan harga yang ekstrim.
  2. Lagging yang melekat pada sistem MA, dapat melewatkan titik pembalikan harga.

Arahan Optimasi

Beberapa arah optimasi:

  1. Sertakan indikator kekuatan tren untuk menghindari kebalikan tren.
  2. Memperkenalkan optimasi parameter untuk fleksibilitas yang lebih luas.

Kesimpulan

Strategi ini membangun sistem perdagangan berdasarkan crossover EMA ganda, menggunakan hubungan EMA cepat dan lambat untuk menentukan tren pasar. Generasi sinyal sederhana dan jelas. Ini menyaring beberapa kebisingan dan mengikuti tren, cocok untuk perdagangan tren jangka menengah hingga panjang. Ada ruang untuk meningkatkan universalitas dan efisiensi melalui pengoptimalan multi-indikator dan pengendalian risiko.


/*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 banyak