Strategi skrip Pine ini menerapkan pendekatan rata-rata biaya dolar harian pada platform TradingView, menggabungkan sinyal sentuhan EMA untuk menentukan titik masuk.
Strategi ini memiliki fitur utama berikut:
Rata-rata Biaya Dolar Harian
EMA untuk sinyal masuk
Stop Loss Dinamis
Batas Jumlah Perdagangan
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.
Keuntungan dari strategi ini meliputi:
Diversifikasi Risiko
Kombinasi EMA Menghindari Pullback
Pengendalian Stop Loss Dinamis
Kontrol Batas Perdagangan Risiko
Visualisasi EMA intuitif
Sangat Bisa Disesuaikan
Strategi ini juga membawa beberapa risiko untuk dicatat:
Risiko Sistemik Masih Ada
Jumlah investasi tetap
EMA Tidak Bisa Merespons Gerakan Ekstrim
Potensi Keuntungan Batas Perdagangan
Penempatan Stop Loss Membutuhkan Perhatian
Optimasi lebih lanjut:
Jumlah Investasi Dinamis Harian
Sinyal masuk tambahan
Rata-rata Bergerak Eksponensial
Batas Posisi Dinamis
Penghentian Rugi
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")