Strategi persilangan rata-rata bergerak


Tanggal Pembuatan: 2024-01-23 15:20:16 Akhirnya memodifikasi: 2024-01-23 15:20:16
menyalin: 1 Jumlah klik: 534
1
fokus pada
1617
Pengikut

Strategi persilangan rata-rata bergerak

Ringkasan

Strategi ini adalah strategi trading berdasarkan moving average. Strategi ini menggunakan 45-day moving average sebagai indikator teknis utama untuk membeli dan menjual berdasarkan sinyal bahwa harga telah menembus moving average.

Prinsip Strategi

Ketika harga naik melewati 45 hari moving average, menghasilkan sinyal beli; ketika memegang posisi setelah 8 hari, menghasilkan sinyal jual. Setelah itu, jika harga naik lagi melewati 45 hari moving average, menghasilkan sinyal beli lagi.

Kebijakan ini mencakup:

  1. Menghitung rata-rata bergerak 45 hari.
  2. Ketika harga penutupan dari bawah rata-rata bergerak ke atas, menghasilkan sinyal beli, melakukan lebih banyak masuk ke pasar.
  3. 8 hari setelah masuk ke pasar.
  4. Setelah 8 hari, posisi yang diletakkan pada posisi yang lebih tinggi menghasilkan sinyal jual.
  5. Jika setelah itu harga penutupan kembali terobosan dari bawah rata-rata bergerak ke atas, kembali menghasilkan sinyal beli, kembali melakukan pembelian.

Ini adalah logika transaksi yang menjadi inti dari strategi tersebut.

Keunggulan Strategis

Strategi ini memiliki keuntungan sebagai berikut:

  1. Aturan operasinya sederhana dan jelas, mudah dipahami dan diterapkan.
  2. Menggunakan fitur pelacakan tren rata-rata bergerak untuk menangkap tren garis tengah dan panjang secara efektif.
  3. 8 hari memegang posisi tidak lama atau singkat, baik dapat melacak tren, dan dapat menghentikan kerugian tepat waktu.
  4. Aturan untuk masuk kembali ke pasar jelas dan dapat mengontrol frekuensi transaksi secara efektif.

Risiko Strategis

Strategi ini juga memiliki beberapa risiko:

  1. Terlambatnya pergerakan rata-rata menyebabkan terlambatnya masuk dan terlambatnya berhenti.
  2. Periode pegangan tetap dan parameter moving average mungkin tidak dapat beradaptasi dengan perubahan pasar.
  3. Frekuensi transaksi yang terlalu tinggi dapat meningkatkan biaya transaksi dan kehilangan slippage.
  4. Sinyal penembusan dapat menghasilkan sinyal palsu, ada probabilitas masuk dan keluar yang salah.

Tanggapan:

  1. Optimalkan parameter moving average untuk mengurangi latensi.
  2. Meningkatkan waktu memegang posisi atau memindahkan stop loss untuk melacak tren.
  3. Bergabung dengan indikator lain, filter palsu terobosan.
  4. Optimalkan kondisi masuk kembali dan kontrol frekuensi transaksi.

Arah optimasi strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Mengoptimalkan parameter moving average untuk mencari kombinasi optimal dari parameter tersebut. Anda dapat menguji parameter bilangan hari yang berbeda, seperti 15 hari, 30 hari, dan 60 hari.

  2. Mengoptimalkan jangka waktu, mencari optimum untuk jangka waktu 5 hari, 10 hari, 15 hari, dan lain-lain.

  3. Tambahkan stop mobile untuk melacak tren dan mengendalikan risiko. Misalnya, stop trialing atau stop ATR.

  4. Menyaring indikator lain seperti MACD, KDJ, dll untuk mengurangi sinyal palsu.

  5. Optimalkan kondisi masuk kembali untuk mencegah transaksi yang terlalu sering.

  6. Uji coba terhadap pasar dan varietas yang berbeda. Parameter perlu dioptimalkan untuk pasar yang berbeda.

Meringkaskan

Strategi lintas rata-rata bergerak secara keseluruhan adalah strategi pelacakan tren yang sederhana dan praktis. Ini menggunakan fitur pelacakan tren rata-rata bergerak untuk menghasilkan sinyal perdagangan dengan harga yang terobosan. Keuntungan adalah mudahnya implementasi, trade-off adalah kemungkinan ada beberapa kesalahan.

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

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Calculate the 45-day moving average
ma_length = 45
ma = ta.sma(close, ma_length)

// Track position entry and entry bar
var bool in_long_position = na
var int entry_bar = na
var int exit_bar = na

// Entry condition: Close price crosses above the 45-day moving average to enter the position
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1])
    in_long_position := true
    entry_bar := bar_index

// Exit condition: Close the position after holding for 8 trading days
if (in_long_position and bar_index - entry_bar >= 8)
    in_long_position := false
    exit_bar := bar_index

// Re-entry condition: Wait for price to cross over the 45-day moving average again
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8))
    in_long_position := true
    entry_bar := bar_index

// Execute long entry and exit
if (in_long_position)
    strategy.entry("Long", strategy.long)

if (not in_long_position)
    strategy.close("Long")