
Strategi ini menggabungkan prinsip trend-following dengan pendekatan DCA yang bertujuan untuk mengerahkan dana dengan cekap dan meminimumkan risiko pasaran. Strategi ini adalah berdasarkan pada purata bergerak 50 kitaran indeks (EMA) sebagai penunjuk trend pasaran, dan mengumpul dana melalui pelaburan tetap bulanan. Apabila harga berada di bawah 50 EMA kitaran, strategi akan menambah jumlah tetap setiap bulan ke rizab tunai.
Prinsip teras strategi ini adalah menggabungkan isyarat trend dalam analisis teknikal dengan kaedah pengurusan dana yang sistematik. Mekanisme pelaksanaan khusus adalah sebagai berikut:
Mekanisme penilaian trend: Menggunakan EMA 50 kitaran sebagai penunjuk trend jangka panjang. Apabila harga berada di atas EMA, ia dianggap sebagai tren naik; apabila harga jatuh di bawah EMA, ia dianggap sebagai tren menurun.
Peringkat pengumpulan danaApabila harga berada di bawah 50 kitaran EMA, strategi ini tidak melakukan operasi kedudukan pasaran, tetapi menambah jumlah tetap setiap bulan ke rizab tunai. Ini memastikan bahawa dana dapat terus terkumpul dalam keadaan pasaran yang tidak menguntungkan.
Tahap pembiayaanApabila harga melepasi 50 EMA ke atas, strategi akan:
Mekanisme pengeluaranApabila harga jatuh di bawah EMA 50 kitaran, strategi akan menutup semua kedudukan dan memulakan semula proses penimbunan rizab tunai.
Dari segi pelaksanaan kod, strategi ini menggunakancash_reserveVariabel yang mengesan wang tunai yang terkumpul, penggunaantime_since_last_investmentpembolehubah untuk memastikan pengurangan masa yang tepat dalam kira-kira satu bulan (~ 30 hari) dan melaluistrategy.close_all()Fungsi mewujudkan mekanisme keluar yang lengkap.
Setelah menganalisis kod secara mendalam, strategi ini menunjukkan kelebihan yang ketara:
Kaedah pelaburan sistematikStrategi ini menghapuskan keputusan emosi sepenuhnya, memastikan bahawa dana dapat digunakan secara sistematik dalam keadaan pasaran apa pun melalui peraturan yang telah ditetapkan. Ini menghalang kelewatan atau keraguan yang disebabkan oleh penilaian manusia.
Memaksimumkan kecekapan penggunaan danaStrategi ini memaksimumkan kecekapan penggunaan dana dengan mengumpul dana dalam keadaan yang tidak baik dan menggunakan semua dana yang terkumpul dalam satu masa apabila keadaan baik muncul. Kaedah ini mengelakkan pelaburan awal dalam trend menurun dan memastikan penyertaan penuh dalam trend menaik.
Keseimbangan risiko dan ganjaran: Mekanisme berganda yang menggabungkan trend-tracking dan pelaburan tetap, tidak terlepas peluang untuk mendapatkan keuntungan di pasaran penting sambil melindungi keselamatan modal.
Sangat boleh menyesuaikan diriParameter strategi boleh disesuaikan mengikut keadaan pasaran yang berbeza dan pilihan risiko pelabur. Siklus EMA dan jumlah pelaburan tetap adalah parameter yang boleh disesuaikan, meningkatkan fleksibiliti strategi.
Kesan jangka panjangBerkongsi dengan pelaburan bulanan dan penilaian trend, strategi ini dapat mencapai pertumbuhan pulangan dalam pasaran jangka panjang, terutamanya dalam persekitaran di mana beberapa kitaran pasaran bertukar.
Pelaksanaan mudah dan jelasWalaupun konsep strategi lebih maju, peraturan pelaksanaannya adalah mudah dan jelas, yang mengurangkan kerumitan operasi dan potensi kesilapan pelaksanaan.
Walaupun strategi ini dirancang dengan teliti, terdapat risiko yang berpotensi:
Risiko ketinggalan zaman: EMA adalah penunjuk ketinggalan yang boleh menyebabkan masa masuk dan keluar yang tidak sesuai pada titik perubahan trend. Terutama dalam pasaran yang berubah dengan cepat, ia boleh menyebabkan isyarat keluar hanya setelah penarikan balik yang lebih besar.
Perkembangan pasaran yang burukDalam pasaran yang bergolak, harga mungkin sering melintasi EMA, menyebabkan beberapa kali masuk dan keluar, meningkatkan kos dagangan dan mungkin menyebabkan “kesan ketumpatan” kerugian.
Cabaran Pengurusan DanaJumlah pelaburan tetap mungkin tidak sesuai untuk semua peringkat pasaran dan mungkin memerlukan strategi peruntukan dana yang lebih fleksibel dalam persekitaran yang tidak menentu.
Ketergantungan kitaranStrategi sangat bergantung kepada kitaran EMA yang dipilih (di sini adalah 50), dan pelbagai tetapan kitaran akan menghasilkan hasil yang sangat berbeza, sukar untuk menentukan parameter optimum.
Kesan titik geser: Kod menetapkan satu titik titik, tetapi dalam perdagangan sebenar, terutamanya di pasaran yang kurang likuid, titik-titik yang dilaksanakan mungkin jauh lebih besar daripada nilai yang ditetapkan, yang mempengaruhi prestasi strategi.
Kaedah untuk mengurangkan risiko ini termasuk: meningkatkan penapisan penunjuk untuk mengurangkan isyarat palsu; pelaksanaan mekanisme hentian dinamik; pengenalan pengurusan dana yang disesuaikan dengan kadar turun naik; penggunaan isyarat pengesahan pelbagai kitaran; dan pengukuran dan pengoptimuman parameter yang luas dalam pelbagai keadaan pasaran.
Berdasarkan analisis mendalam kod, strategi ini boleh dioptimumkan dalam beberapa arah:
Mekanisme pengesahan pelbagai indikator: memperkenalkan penunjuk teknikal tambahan (seperti RSI, MACD atau kuantiti) sebagai isyarat pengesahan, mengurangkan isyarat palsu yang dihasilkan oleh persilangan EMA. Oleh itu, ia dapat meningkatkan kualiti isyarat dan mengurangkan perdagangan yang tidak perlu.
Pengurusan wang dinamikMengikat jumlah pelaburan tetap dengan kadar turun naik pasaran atau kekuatan trend, meningkatkan jumlah pelaburan dalam persekitaran yang tinggi kepastian, mengurangkan jumlah pelaburan dalam persekitaran yang tinggi ketidakpastian. Sebagai contoh, jumlah pelaburan boleh disesuaikan berdasarkan ATR (rata-rata amplitudo turun naik sebenar).
Bahagian pengurusan kedudukanMenerapkan mekanisme pembinaan dan penghapusan gudang secara berturut-turut, dan bukannya operasi gudang penuh sekali gus, yang dapat mengurangkan tekanan untuk memilih masa dan memberikan kurva kepentingan yang lebih lancar.
Penyesuaian kepada kitaran EMA: menukar EMA 50 kitaran tetap kepada purata bergerak yang disesuaikan secara automatik berdasarkan keadaan pasaran untuk menyesuaikan diri dengan lebih baik dengan peringkat dan kitaran pasaran yang berbeza.
Mekanisme henti kerugian yang sempurnaMenambah penangguhan bergerak atau mekanisme penangguhan berdasarkan kadar turun naik, dan tidak hanya bergantung pada EMA cross-out, yang dapat melindungi modal lebih awal dalam penarikan balik yang besar.
Penapis masa: Tambah penapis masa perdagangan untuk mengelakkan operasi pada masa perdagangan yang diketahui tidak cekap, atau menyesuaikan parameter strategi dalam mod bermusim tertentu.
Kerangka Pengoptimuman: mewujudkan kerangka pengoptimuman parameter, mencari kombinasi parameter yang optimum secara automatik dalam keadaan pasaran yang berbeza, dan melakukan pengesahan ke hadapan untuk memastikan kestabilan parameter.
Tujuan bersama dari arah pengoptimuman ini adalah untuk meningkatkan peluang kemenangan strategi, mengurangkan penarikan balik, dan menjadikan pengurusan dana lebih fleksibel dan cekap, dengan itu meningkatkan daya serap dan kestabilan dalam pelbagai keadaan pasaran, sambil mengekalkan logik teras strategi asal.
“Strategi pengesanan trend yang dioptimumkan secara berganda dengan pelaburan bulanan yang digabungkan dengan indeks bergerak rata-rata 50 kitaran” mewakili kaedah perdagangan kuantitatif yang seimbang dan sistematik yang dengan bijak menggabungkan penilaian trend analisis teknikal dengan konsep pelaburan berkala tradisional. Dengan mengumpul dana dalam trend menurun dan menggunakan sepenuhnya apabila trend naik telah ditetapkan, strategi ini mencapai kecekapan penggunaan dana dan kawalan risiko yang lebih baik.
Walaupun terdapat risiko yang wujud seperti ketinggalan EMA dan ketidakpantasan pasaran yang bergolak, kelemahan-kelemahan ini dapat dikurangkan dengan berkesan dengan memperkenalkan langkah-langkah seperti pengesahan pelbagai petunjuk, pengoptimuman kaedah pengurusan dana dan penghadaman yang lebih baik. Yang perlu diperhatikan, fleksibiliti dan penyesuaian strategi ini menjadikannya sesuai untuk pelbagai keadaan pasaran dan gaya pelaburan.
Dari perspektif pelaburan jangka panjang, strategi pengesanan trend yang digabungkan ini sangat sesuai untuk pelabur yang ingin mengekalkan disiplin pelaburan yang sistematik sambil mencari masa yang optimum untuk mengambil bahagian dalam pasaran. Dengan mengurangkan pendedahan dalam trend yang tidak menguntungkan dan mengambil bahagian sepenuhnya dalam trend naik, strategi ini dijangka mencapai ciri-ciri pulangan risiko yang lebih seimbang daripada pelaburan atau trend yang semata-mata dalam kitaran pasaran jangka panjang.
Strategi ini menyediakan kerangka yang boleh dipercayai untuk membuat keputusan pelaburan yang lebih sistematik dan objektif dalam persekitaran pasaran yang kompleks dan berubah-ubah.
/*backtest
start: 2024-10-23 00:00:00
end: 2024-12-23 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//CELIA IS EEN KLEINE VIS
strategy("50 EMA Crossover With Monthly DCA", overlay=true, initial_capital=100000, slippage=1, default_qty_type=strategy.cash, process_orders_on_close=true)
// === Parameters ===
dca_amount = input.int(100000, title="DCA Investment Amount ($)", minval=1) // Monthly DCA amount
//ema_length = input.int(50, title="EMA Length", minval=1) // EMA length
emaValue = ta.ema(close, 50)
plot(emaValue, color=color.blue, title="50W EMA")
// === Tracking Variables ===
var float cash_reserve = 0 // To track the accumulated cash
var float total_invested = 0 // To track the total amount invested (cash + DCA)
var float last_investment_time = na
month_seconds = 30 * 24 * 60 * 60 // Approx 1 month in seconds
// === Time Check: Has 1 Month Passed? ===
time_since_last_investment = na(last_investment_time) ? month_seconds : (time - last_investment_time) / 1000
// === Strategy Conditions ===
longCondition = close > emaValue // Buy when close is above the 50-week EMA
if longCondition
if strategy.opentrades == 0 // No open positions
// Invest full capital (equity + cash), including DCA saved
strategy.order("Open Order", strategy.long, qty = (strategy.equity+cash_reserve) / close)
cash_reserve := 0 // Reset cash reserve after full reinvestment
if time_since_last_investment >= month_seconds
// Accumulate DCA buy orders
strategy.order("DCA Buy", strategy.long, qty = dca_amount / close)
last_investment_time := time // Update the time of the last investment
// Accumulate DCA amount into cash reserve every month, regardless of long condition
if time_since_last_investment >= month_seconds
last_investment_time := time
// === Exit Strategy ===
exitCondition = close < emaValue // Exit if the price crosses below the 50-week EMA
if exitCondition
strategy.close_all() // Close the position when price crosses below the EMA
//plot(strategy.equity, style = plot.style_line, title = "Equity")
//plot(cash_reserve, style = plot.style_line, title = "DCA")
// Place the text below the current bar
var label myLabel = na
if (na(myLabel))
myLabel := label.new(bar_index, low - 0.02, "Celia is een kleine vis", color=color.white, textcolor=color.black, style=label.style_label_up, size=size.normal)
// Update the position of the label each bar
label.set_xy(myLabel, bar_index, low - 200)