Strategi mengikuti tren berdasarkan persilangan rata-rata pergerakan


Tanggal Pembuatan: 2024-01-31 15:17:31 Akhirnya memodifikasi: 2024-01-31 15:17:31
menyalin: 1 Jumlah klik: 597
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan persilangan rata-rata pergerakan

Ringkasan

Strategi ini menghasilkan sinyal beli ketika rata-rata yang lebih pendek melewati rata-rata yang lebih panjang dari bawah; menghasilkan sinyal jual ketika rata-rata yang lebih pendek melewati rata-rata yang lebih panjang dari atas ke bawah.

Prinsip Strategi

Strategi ini menilai tren pasar terutama dengan membandingkan hubungan antara dua garis rata yang berbeda. Secara khusus, jenis dan panjang dua garis rata diatur dengan parameter masukan. Yang pertama adalah panjang rata-rata, yang mewakili tren jangka panjang; yang kedua adalah panjang rata-rata, yang mewakili tren jangka pendek saat ini.

Ketika garis rata-rata pendek dari bawah melintasi garis rata-rata panjang, berarti tren jangka pendek menjadi kuat, dan harga masuk ke tren naik, dan karenanya mengirim sinyal beli di titik persimpangan ini. Sebaliknya, ketika garis rata-rata pendek melintasi garis rata-rata panjang dari atas, berarti tren jangka pendek menjadi lemah, dan harga masuk ke tren turun, dan karenanya mengirim sinyal jual di titik persimpangan ini.

Pertimbangan ini dapat digunakan untuk mengikuti tren pasar.

Keunggulan Strategis

  • Trend utama dalam penilaian dengan crossover rata-rata adalah indikator teknis klasik dan praktis
  • Mendukung berbagai jenis kombinasi garis rata, fleksibilitas tinggi
  • Strategi logis yang sederhana dan jelas, mudah dipahami implementasi, cocok untuk otomatisasi transaksi kuantitatif
  • Fleksibilitas parameter yang dapat dikonfigurasi untuk lingkungan pasar yang berbeda

Analisis risiko

  • Garis rata memiliki keterlambatan, ketika sinyal silang dikirim, pergerakan harga mungkin telah terjadi atau mendekati titik balik, ada risiko tertentu untuk terlambat misinformasi
  • Pertimbangan tren dapat salah, sehingga menyebabkan kerugian yang tidak perlu
  • Parameter linear rata-rata perlu dikonfigurasi secara wajar, dan parameter yang berbeda dapat menyebabkan hasil yang sangat berbeda

Solusi untuk Mengatasi Risiko:

  • Mempersingkat siklus rata-rata dengan tepat dan meningkatkan sensitivitas terhadap perubahan pasar
  • Verifikasi dengan indikator lain untuk menghindari kesalahan penilaian
  • Metode Optimasi Parameter: Perjalanan, Pembelajaran Mesin, Algoritma Genetik, dll.
  • Mengontrol ukuran posisi dan titik berhenti yang tepat

Arah optimasi strategi

  • Menambahkan filter indikator lain, menggabungkan penilaian dari beberapa indikator, meningkatkan akurasi keputusan
  • Parameter garis rata-rata disesuaikan secara otomatis dengan kondisi pasar
  • Menggabungkan algoritma pembelajaran mesin untuk mencari parameter optimasi secara otomatis
  • Optimalkan strategi stop loss

Meringkaskan

Strategi ini didasarkan pada pemikiran klasik untuk menilai tren utama yang bersilang, dengan aplikasi yang fleksibel melalui kombinasi garis yang sama. Logika strategi sederhana, mudah diimplementasikan, cocok untuk perdagangan otomatis. Secara keseluruhan, strategi ini memiliki beberapa kepraktisan, tetapi ada juga beberapa ruang untuk perbaikan dan pengoptimalan.

Kode Sumber Strategi
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

f_hma(_src, _length)=>
    _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    if (type1 == "EMA")
        ema(price, ma1)
    else
        if (type1 == "VWMA")
            vwma(price, ma1)
        else
            f_hma(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    if (type2 == "EMA")
        ema(price, ma2)
    else
        if (type2 == "VWMA")
            vwma(price, ma2)
        else
            f_hma(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


longCondition = crossover(price1, price2)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(price1, price2)
if (shortCondition)
    strategy.entry("Short", strategy.short)