Strategi ini menggabungkan Dollar Cost Averaging (DCA) dengan ciri mengambil keuntungan yang tersedia di platform pertukaran. Ia menetapkan penyimpangan harga 1% untuk pembelian dan menyasarkan keuntungan 0.5% pada setiap penjualan. Rasional untuk menyasarkan keuntungan kecil adalah untuk memastikan operasi yang lancar untuk bot perdagangan, mengelakkan terjebak semasa tempoh pasaran yang perlahan. Berdasarkan pengujian belakang, bot ini telah terbukti cukup mudah disesuaikan untuk menahan turun naik pasaran dan manipulasi. Walaupun Kadar Peratusan Tahunan (APR) mungkin tidak sangat tinggi, ia menawarkan pilihan yang memuaskan dan selamat untuk pelaburan jangka panjang, sering melebihi strategi beli dan pegang tradisional (HODL).
Strategi pertama menetapkan parameter yang boleh dikonfigurasikan seperti peratusan hentian, pesanan DCA maksimum, peratusan penyimpangan harga, dan lain-lain. Ia kemudian mengesan pembolehubah seperti harga beli terakhir, jumlah pembelian, harga pembelian awal, harga hentian terakhir, dan lain-lain. Pada logika beli, jika harga semasa berada di bawah harga beli terakhir * (1 - peratusan penyimpangan harga) dan bilangan pembelian belum mencapai pesanan DCA maksimum, ia akan mengeluarkan isyarat beli dan merekodkan harga beli. Pada logika jual, jika harga semasa berada di atas harga beli terakhir * (1 + mengambil peratusan keuntungan), ia akan menetapkan harga hentian hentian. Jika harga terus meningkat di atas harga hentian hentian itu, harga hentian hentian dikemas kini ke harga semasa * (1 - peratusan hentian). Jika harga turun di bawah pembolehubah hentian hentian, isyarat dikeluarkan sementara harga jual relevan, bersiap untuk pusingan pembelian DCA seterusnya.
Menggabungkan DCA dan penangguhan stop loss untuk memastikan purata kos sambil mengunci keuntungan separa untuk mengelakkan penarikan.
Mekanisme hentian yang fleksibel dengan pengambilan keuntungan yang boleh disesuaikan dan peratusan hentian untuk meminimumkan risiko.
Hasil yang diuji lebih baik daripada membeli dan memegang, dengan pulangan tahunan yang stabil yang sesuai untuk pelaburan jangka panjang.
Mudah dilaksanakan dengan parameter yang boleh disesuaikan untuk penerapan mudah di seluruh platform pertukaran utama.
Bilangan pembelian DCA yang terhad bermakna kerugian boleh bertambah jika pasaran cenderung menurun untuk tempoh yang panjang.
Tetapan stop loss yang tidak baik boleh membawa kepada keuntungan awal atau kerugian yang tidak terkawal.
Kos dagangan boleh memakan keuntungan. tetapan stop loss tinggi meningkatkan bilangan dagangan.
Memerlukan modal yang mencukupi untuk menyokong pembelian DCA yang kerap.
Melaksanakan penangguhan penangguhan, menurunkan peratusan penangguhan apabila pencapaian kejayaan tertentu dicapai.
Menggabungkan purata bergerak, meningkatkan jumlah beli di sekitar kawasan sokongan utama.
Tambah mekanisme rebalancing untuk menyesuaikan jumlah DCA berdasarkan jumlah aset.
Mengoptimumkan tetapan parameter dan menguji keuntungan dalam pelbagai tempoh penahan.
Strategi ini menggabungkan DCA dan trailing stops untuk pulangan dagangan algoritma yang stabil dalam jangka masa yang lama. Hasil yang diuji balik kuat dan sesuai untuk pelabur yang memberi tumpuan kepada pertumbuhan yang stabil. Kod yang mudah dan bersih menjadikannya mudah difahami dan dilaksanakan. Peningkatan prestasi yang lebih lanjut dapat dicapai melalui pengoptimuman parameter dan menggabungkan penunjuk tambahan. Secara keseluruhan, ia menyediakan pelabur dengan penyelesaian dagangan yang relatif selamat dan konsisten.
/*backtest start: 2023-02-16 00:00:00 end: 2024-02-22 00:00:00 period: 1d 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/ // © Stavolt //@version=5 strategy("DCA Strategy with Trailing Take Profit", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Correctly using input to define user-configurable parameters takeProfitPercent = input.float(0.6, title="Take Profit (%)", minval=0.1, maxval=5) trailingPercent = input.float(0.1, title="Trailing Stop (%)", minval=0.05, maxval=1) maxDCAOrders = input.int(10, title="Max DCA Orders", minval=1, maxval=20) priceDeviationPercent = input.float(1.0, title="Price Deviation (%)", minval=0.5, maxval=5) var float lastBuyPrice = na var int buyCount = 0 var float initialBuyPrice = na var float trailingStopPrice = na // Strategy logic here... // Note: The detailed logic for buying and selling based on the DCA strategy // needs to be tailored to your specific requirements and tested for correctness. if (buyCount < maxDCAOrders) if (na(lastBuyPrice) or close < lastBuyPrice * (1 - priceDeviationPercent / 100)) strategy.entry("Buy", strategy.long) lastBuyPrice := close buyCount += 1 if (na(initialBuyPrice)) initialBuyPrice := close if (not na(lastBuyPrice) and close > lastBuyPrice * (1 + takeProfitPercent / 100)) if (na(trailingStopPrice) or close > trailingStopPrice) trailingStopPrice := close * (1 - trailingPercent / 100) if (close < trailingStopPrice) strategy.close("Buy") lastBuyPrice := na trailingStopPrice := na buyCount := 0 initialBuyPrice := na