Strategi DCA dengan Trailing Take Profit

Penulis:ChaoZhang, Tanggal: 2024-02-23 14:01:20
Tag:

img

Gambaran umum

Strategi ini menggabungkan Dollar Cost Averaging (DCA) dengan fitur trailing take profit yang tersedia di platform pertukaran. Ini menetapkan penyimpangan harga 1% untuk pembelian dan menargetkan keuntungan 0,5% pada setiap penjualan. Alasan untuk menargetkan keuntungan kecil adalah untuk memastikan operasi yang lancar untuk bot perdagangan, menghindari terjebak selama periode pasar yang lambat. Berdasarkan backtesting, bot ini telah terbukti cukup mudah beradaptasi untuk menahan fluktuasi pasar dan manipulasi. Sementara Annual Percentage Rate (APR) mungkin tidak sangat tinggi, ia menawarkan pilihan yang memuaskan dan aman untuk investasi jangka panjang, seringkali lebih baik daripada strategi beli dan tahan (HODL) tradisional.

Prinsip-prinsip

Strategi pertama menetapkan parameter yang dapat dikonfigurasi seperti persentase trailing stop, order DCA maksimum, persentase deviasi harga, dll. Kemudian melacak variabel seperti harga beli terakhir, jumlah pembelian, harga pembelian awal, harga stop trailing, dll. Pada logika pembelian, jika harga saat ini berada di bawah harga beli terakhir * (1 - persentase deviasi harga) dan jumlah pembelian belum mencapai pesanan DCA maksimum, itu akan mengeluarkan sinyal beli dan mencatat harga beli. Pada logika jual, jika harga saat ini berada di atas harga beli terakhir * (1 + mengambil persentase keuntungan), itu akan menetapkan harga stop trailing. Jika harga terus naik di atas harga stop trailing, harga stop trailing diperbarui menjadi harga saat ini * (1 - persentase trailing). Jika harga turun di bawah variabel stop trailing, sinyal dijual dikeluarkan sementara yang relevan, bersiap-siap untuk putaran pembelian DCA berikutnya.

Keuntungan

  1. Menggabungkan DCA dan trailing stop loss untuk memastikan biaya rata-rata sementara mengunci keuntungan parsial untuk menghindari penarikan.

  2. Mekanisme trailing stop yang fleksibel dengan pengambilan keuntungan yang dapat disesuaikan dan persentase trailing untuk meminimalkan risiko.

  3. Hasil backtesting lebih baik daripada pembelian dan kepemilikan, dengan pengembalian tahunan yang stabil yang cocok untuk investasi jangka panjang.

  4. Sederhana untuk diterapkan dengan parameter yang dapat disesuaikan untuk aplikasi mudah di seluruh platform pertukaran utama.

Risiko

  1. Jumlah pembelian DCA yang terbatas berarti kerugian dapat meningkat jika tren pasar menurun untuk jangka waktu yang lama.

  2. Pengaturan stop loss trailing yang buruk dapat menyebabkan pengambilan keuntungan dini atau kerugian yang tidak terduga.

  3. Biaya perdagangan dapat memakan keuntungan. pengaturan stop loss tinggi meningkatkan jumlah perdagangan.

  4. Membutuhkan modal yang cukup untuk mendukung pembelian DCA yang sering.

Peningkatan

  1. Mengimplementasikan adaptif trailing stop, menurunkan persentase trailing ketika tonggak keuntungan tertentu tercapai.

  2. Masukkan rata-rata bergerak, meningkatkan jumlah pembelian di sekitar area pendukung utama.

  3. Menambahkan mekanisme rebalancing untuk menyesuaikan jumlah DCA berdasarkan total aset.

  4. Mengoptimalkan pengaturan parameter dan menguji profitabilitas di berbagai periode penyimpanan.

Kesimpulan

Strategi ini menggabungkan DCA dan trailing stops untuk pengembalian perdagangan algoritmik yang stabil selama jangka waktu yang lama. Hasil backtested kuat dan cocok untuk investor yang berfokus pada pertumbuhan yang stabil. Kode yang sederhana dan bersih membuatnya mudah dipahami dan diimplementasikan. Peningkatan kinerja lebih lanjut dapat dicapai melalui optimasi parameter dan menggabungkan indikator tambahan. Secara keseluruhan, ini memberikan investor dengan solusi perdagangan yang relatif aman 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


Lebih banyak