Strategi DCA harian dengan menyentuh EMA

Penulis:ChaoZhang, Tanggal: 2024-01-16 15:30:17
Tag:

img

Gambaran umum

Strategi skrip Pine ini menerapkan pendekatan rata-rata biaya dolar harian pada platform TradingView, menggabungkan sinyal sentuhan EMA untuk menentukan titik masuk.

Logika Strategi

Strategi ini memiliki fitur utama berikut:

  1. Rata-rata Biaya Dolar Harian

    • Investasi harian tetap terlepas dari kenaikan dan penurunan pasar
    • Investasi batch jangka panjang untuk mengurangi risiko perdagangan tunggal
  2. EMA untuk sinyal masuk

    • Sinyal beli dipicu ketika harga penutupan melintasi EMA 5, 10, 20 dll.
    • Garis EMA berfungsi sebagai dukungan untuk menghindari penurunan jangka pendek
  3. Stop Loss Dinamis

    • Jual semua posisi jika harga penutupan jatuh di bawah SMA 20 hari
    • Hindari kerugian lebih lanjut
  4. Batas Jumlah Perdagangan

    • Caps max trading di 300 untuk mengontrol ukuran posisi
    • Mencegah investasi berlebihan di luar kapasitas aset

Secara khusus, setiap hari strategi menginvestasikan jumlah tetap dan menghitung saham yang akan dibeli berdasarkan harga penutupan. Jika harga penutupan melintasi di atas salah satu EMA 5 hari, 10 hari, 20 hari dll, sinyal beli dipicu. Setelah jumlah perdagangan akumulasi mencapai batas 300, tidak akan terjadi pembelian lebih lanjut. Selain itu, jika harga ditutup di bawah SMA 20 hari atau mencapai tanggal keluar yang telah ditetapkan, semua posisi dibersihkan. Skrip ini juga memetakan EMA pada grafik harga untuk analisis visual.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Diversifikasi Risiko

    • Investasi harian dengan jumlah tetap kecil terlepas dari tren pasar
    • Menghindari mengejar puncak
  2. Kombinasi EMA Menghindari Pullback

    • Crossover EMA mencegah pembelian ke periode penarikan
    • Meneruskan pembelian selama penarikan diversifikasi risiko
  3. Pengendalian Stop Loss Dinamis

    • Stop loss memungkinkan keluar tepat waktu
    • Mencegah kerugian besar
  4. Kontrol Batas Perdagangan Risiko

    • Ukuran posisi maksimum ditetapkan untuk mencegah investasi berlebihan
    • Menjaga investasi dalam kapasitas aset
  5. Visualisasi EMA intuitif

    • EMA digambarkan pada grafik harga
    • Memungkinkan pemantauan yang mudah oleh operator
  6. Sangat Bisa Disesuaikan

    • Input khusus untuk jumlah investasi, periode EMA, stop, dll.
    • Penyesuaian berdasarkan preferensi risiko pribadi

Analisis Risiko

Strategi ini juga membawa beberapa risiko untuk dicatat:

  1. Risiko Sistemik Masih Ada

    • Acara Black Swan dapat menyebabkan kerugian besar
    • Diversifikasi hanya mengurangi tetapi tidak menghilangkan risiko
  2. Jumlah investasi tetap

    • Investasi harian tetap bisa kehilangan kenaikan jika harga melonjak
    • Penyesuaian jumlah dinamis bisa membantu
  3. EMA Tidak Bisa Merespons Gerakan Ekstrim

    • EMA memiliki reaksi yang lebih lambat terhadap peristiwa mendadak dan gagal menghentikan kerugian tepat waktu
    • Dikombinasikan dengan KD, BOLL dapat membantu mengidentifikasi ekstrem
  4. Potensi Keuntungan Batas Perdagangan

    • Batas atas batas perdagangan kemungkinan keuntungan
    • Kebutuhan untuk menyeimbangkan risiko dan manfaat
  5. Penempatan Stop Loss Membutuhkan Perhatian

    • Hentikan terlalu dekat cenderung diambil keluar lebih awal sementara berhenti terlalu longgar gagal untuk melindungi pada waktunya
    • Percobaan yang luas diperlukan untuk menemukan keseimbangan yang tepat

Peningkatan di Masa Depan

Optimasi lebih lanjut:

  1. Jumlah Investasi Dinamis Harian

    • Investasi harian berdasarkan indikator
    • Meningkat ketika bullish, menurun ketika bearish
  2. Sinyal masuk tambahan

    • Menambah EMA dengan indikator lain seperti KD, BOLL
    • Meningkatkan identifikasi gerakan ekstrim
  3. Rata-rata Bergerak Eksponensial

    • EMA bereaksi lambat terhadap peristiwa mendadak, DEMA, TEMA dapat membantu
    • Menangkap tren baru dengan lebih cepat
  4. Batas Posisi Dinamis

    • Peningkatan batas berdasarkan profitabilitas strategi
    • Memungkinkan eksposur yang lebih tinggi pada penilaian wajar
  5. Penghentian Rugi

    • Strategi pasar saat ini menjual semua, trailing berhenti dapat membantu menghindari kesenjangan ke bawah
    • Mengurangi risiko penghentian yang berjalan

Kesimpulan

Singkatnya, strategi DCA harian yang dikombinasikan EMA ini mewujudkan konsep investasi berkala jangka panjang, menyebarkan risiko di beberapa entri kecil dibandingkan dengan pembelian satu kali besar. EMA membantu menghindari risiko mundur jangka pendek sampai batas tertentu, sementara stop loss mengendalikan kerugian maksimum. Namun, risiko angsa hitam dan keterbatasan ukuran investasi tetap perlu diingat. Aspek ini memberikan arah peningkatan masa depan melalui penyesuaian parameter dan kombinasi indikator untuk membangun strategi kuantitatif yang efisien namun stabil.


/*backtest
start: 2024-01-08 00:00:00
end: 2024-01-15 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Daily DCA Strategy with Touching EMAs", overlay=true, pyramiding=10000)

// Customizable Parameters
daily_investment = input(50000, title="Daily Investment")
start_year = input(2022, title="Start Year")
start_month = input(1, title="Start Month")
start_day = input(1, title="Start Day")
end_year = input(2023, title="End Year")
end_month = input(12, title="End Month")
end_day = input(1, title="End Day")
trade_count_limit = input(10000, title="Pyramiding Limit")
enable_sell = input(true, title="Enable Sell")

start_date = timestamp(start_year, start_month, start_day)
var int trade_count = 0

// Calculate the number of shares to buy based on the current closing price
shares_to_buy = daily_investment / close

// Check if a new day has started and after the start date
isNewDay = dayofmonth != dayofmonth[1] and time >= start_date

// Buy conditions based on EMA crossovers
ema5_cross_above = crossover(close, ema(close, 5))
ema10_cross_above = crossover(close, ema(close, 10))
ema20_cross_above = crossover(close, ema(close, 20))
ema50_cross_above = crossover(close, ema(close, 50))
ema100_cross_above = crossover(close, ema(close, 100))
ema200_cross_above = crossover(close, ema(close, 200))

if isNewDay and (ema5_cross_above or ema10_cross_above or ema20_cross_above or ema50_cross_above or ema100_cross_above or ema200_cross_above) and trade_count < trade_count_limit
    strategy.entry("Buy", strategy.long, qty=shares_to_buy)
    trade_count := trade_count + 1

// Dynamic sell conditions (optional)
sell_condition =  true

if enable_sell and sell_condition
    strategy.close_all()

// EMA Ribbon for visualization
plot(ema(close, 5), color=color.red, title="EMA 5")
plot(ema(close, 10), color=color.orange, title="EMA 10")
plot(ema(close, 20), color=color.yellow, title="EMA 20")
plot(ema(close, 50), color=color.green, title="EMA 50")
plot(ema(close, 100), color=color.blue, title="EMA 100")
plot(ema(close, 200), color=color.purple, title="EMA 200")


Lebih banyak