Strategi mengikuti tren berdasarkan rata-rata pergerakan


Tanggal Pembuatan: 2024-01-22 17:26:04 Akhirnya memodifikasi: 2024-01-22 17:26:04
menyalin: 0 Jumlah klik: 575
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan rata-rata pergerakan

Ringkasan

Strategi ini menggunakan rata-rata bergerak cepat dan rata-rata bergerak lambat untuk membangun sinyal perdagangan untuk mengidentifikasi dan melacak tren. Ini menghasilkan sinyal beli ketika garis cepat melintasi garis lambat. Ini menghasilkan sinyal jual ketika garis cepat melintasi garis lambat.

Prinsip Strategi

Strategi ini menggunakan Exponential Moving Average dengan dua periode yang berbeda sebagai dasar keputusan perdagangan. Parameter moving average cepat ditetapkan pada 30 hari untuk menangkap perubahan harga yang lebih pendek. Parameter moving average lambat ditetapkan pada 100 hari untuk menentukan arah tren lini panjang dalam harga.

Ketika garis cepat melewati garis lambat dari bawah, berarti pasar masuk ke tren naik, menghasilkan sinyal beli; ketika garis cepat melewati garis lambat dari atas, berarti pasar masuk ke tren turun, menghasilkan sinyal jual.

Keunggulan Strategis

Strategi ini memiliki keuntungan sebagai berikut:

  1. Berdasarkan konstruksi linear, dapat secara efektif menghilangkan kebisingan pasar jangka pendek, yang terjadi pada saat ini.
  2. Dengan menggunakan strategi dua garis sejajar, kita dapat dengan jelas menentukan arah tren.
  3. Untuk mencapai optimasi parameter, siklus rata-rata lambat dapat disesuaikan.
  4. Dengan fitur untuk melacak tren lini tengah dan jangka pendek.
  5. Peraturan yang sederhana, jelas, mudah dipahami, dan cocok untuk pemula.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Ketika harga terjadi diposisi horizontal, mudah untuk menghasilkan kesalahan sinyal pemicu perdagangan. Risiko dapat dikurangi dengan mengoptimalkan parameter rata-rata.
  2. Tidak dapat menilai secara efektif dan menangani situasi yang tidak biasa dengan harga yang sangat berfluktuasi. Anda dapat mengatur stop loss untuk mengendalikan risiko.
  3. Sistem garis rata itu sendiri memiliki keterlambatan dan mungkin melewatkan titik pivot harga. Dapat dioptimalkan dengan kombinasi indikator lain.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Optimalkan parameter periodik garis rata-rata untuk meningkatkan efektivitas keuntungan.
  2. Menambahkan kriteria lain seperti volume transaksi untuk menghindari false breakout.
  3. Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal.
  4. Menggabungkan indikator tren untuk menilai kekuatan tren dan menghindari pembalikan tren.
  5. Menambahkan fungsi optimasi parameter untuk membuat kebijakan lebih universal.

Meringkaskan

Strategi ini didasarkan pada sistem keputusan perdagangan yang dibangun dengan dua garis rata, untuk menilai tren pasar melalui hubungan harga rata-rata cepat dan rata-rata lambat, menghasilkan sinyal yang sederhana dan jelas. Strategi ini menyaring sebagian dari kebisingan, dapat berjalan lancar, dan cocok untuk perdagangan tren garis tengah dan panjang. Namun ada juga beberapa kekurangan, dengan melakukan optimasi multi-indikator dan pengendalian risiko, strategi ini dapat dioptimalkan menjadi lebih umum dan efisien.

Kode Sumber Strategi
/*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)