Sumber daya yang dimuat... Pemuatan...

Multi-Moving Average Trend Following Strategy - Sistem Sinyal Investasi Jangka Panjang Berdasarkan Indikator EMA dan SMA

Penulis:ChaoZhang, Tanggal: 2024-12-13 10:28:02
Tag:EMASMA

img

Gambaran umum

Strategi ini adalah sistem mengikuti tren berdasarkan kombinasi beberapa moving average, terutama memanfaatkan hubungan silang dan posisi antara Weekly EMA20, Daily SMA100, Daily SMA50, dan Daily EMA20 untuk menangkap peluang investasi jangka menengah hingga panjang. Strategi mengidentifikasi titik masuk panjang potensial dengan mengamati hubungan antara harga dan moving average, dikombinasikan dengan persyaratan durasi.

Prinsip Strategi

Logika inti dari strategi ini didasarkan pada kondisi kunci berikut:

  1. Menggunakan 20-periode mingguan eksponensial Moving Average (EMA1W20) sebagai indikator tren utama
  2. Kombinasi dengan 100 hari Simple Moving Average (SMA1D100) untuk konfirmasi tren sekunder
  3. Menggunakan rata-rata bergerak sederhana 50 hari (SMA1D50) sebagai referensi tren jangka menengah.
  4. Menggunakan 20-hari Exponential Moving Average (EMA1D20) untuk konfirmasi tren jangka pendek Sistem ini menghasilkan sinyal panjang ketika harga mempertahankan di atas EMA1W20 dan SMA1D100 selama 14 hari berturut-turut dan kemudian turun di bawah SMA1D50.

Keuntungan Strategi

  1. Validasi multi-frame time: Menggabungkan rata-rata bergerak mingguan dan harian untuk penilaian tren yang lebih komprehensif
  2. Kondisi masuk yang ketat: Memerlukan harga untuk mempertahankan di atas rata-rata bergerak utama untuk durasi yang cukup, secara efektif menyaring sinyal palsu
  3. Pengendalian risiko yang wajar: Menggunakan beberapa persilangan dan posisi rata-rata bergerak untuk batas risiko yang jelas
  4. Kemampuan beradaptasi yang tinggi: Parameter strategi dapat disesuaikan dengan lingkungan pasar yang berbeda
  5. Eksekusi yang jelas: Sinyal perdagangan didefinisikan dengan baik dan cocok untuk implementasi program

Risiko Strategi

  1. Risiko keterlambatan: Rata-rata bergerak secara inheren memiliki beberapa keterlambatan, berpotensi menyebabkan keterlambatan entri
  2. Risiko pasar sampingan: Dapat menghasilkan sinyal pecah palsu yang sering di pasar yang berbeda
  3. Sensitivitas parameter: Parameter optimal dapat bervariasi dalam lingkungan pasar yang berbeda
  4. Risiko penarikan: Dapat mengalami penarikan yang signifikan selama pembalikan tren mendadak
  5. Risiko pelaksanaan: Membutuhkan operasi sistem yang stabil untuk menghindari hilangnya sinyal atau penundaan pelaksanaan

Arah Optimasi Strategi

  1. Masukkan indikator volume: Tambahkan mekanisme konfirmasi volume untuk meningkatkan keandalan sinyal
  2. Mengoptimalkan penyesuaian parameter: Mengembangkan mekanisme penyesuaian parameter dinamis
  3. Tambahkan kondisi penyaringan: Pertimbangkan untuk menambahkan indikator lingkungan pasar
  4. Memperbaiki mekanisme stop loss: Merancang aturan stop loss dan profit taking yang lebih rinci
  5. Meningkatkan konfirmasi sinyal: Pertimbangkan untuk menambahkan indikator teknis lain untuk konfirmasi tambahan

Ringkasan

Strategi ini menetapkan tren yang relatif komprehensif mengikuti sistem melalui beberapa kombinasi rata-rata bergerak, yang cocok untuk investor jangka menengah hingga panjang. Meskipun memiliki risiko lag dan sensitivitas parameter tertentu, strategi ini memiliki nilai praktis melalui kontrol risiko yang tepat dan optimalisasi terus-menerus.


/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © petitepupu

//@version=5

ema20wTemp = ta.ema(close, 20)
ema20w = request.security(syminfo.tickerid, "1W", ema20wTemp, barmerge.gaps_on, barmerge.lookahead_off)
sma100d = ta.sma(close, 100)
sma50d = ta.sma(close, 50)
ema20d = ta.ema(close, 20)
daysAbove = input.int(14, title="Days", minval=1)
plot(ema20w, color=color.blue)
plot(sma100d, color=color.yellow)
plot(sma50d, color=color.red)
plot(ema20d, color=color.green)

longCondition = true
clean = true
for i = 0 to daysAbove
    if close[i] < ema20w or close[i] < sma100d or close > sma50d
        longCondition := false
        clean := false
        break

//TODO: 
if clean != true
    longCondition := true
    for i = 0 to daysAbove
        if close[i] > ema20w or close[i] > sma100d or close >= ema20d or -100 * (close - ema20d)/ema20d < 5.9
            longCondition := false
            break


// plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal", size = size.small)

if (longCondition)
    strategy.entry("Long", strategy.long)

    
strategy(title="LT Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=800)

Berkaitan

Lebih banyak