Strategi Rata-rata Biaya Dolar

Penulis:ChaoZhang, Tanggal: 2023-09-15 16:52:06
Tag:

Strategi ini disebut Dollar Cost Averaging Strategy. Ini bertujuan untuk mengumpulkan ukuran posisi target melalui pembelian jumlah tetap berkala, memungkinkan kepemilikan jangka panjang.

Cara kerjanya:

  1. Tetapkan jumlah pembelian dan frekuensi yang tetap.
  2. Melakukan pembelian periodik dari aset pada interval yang ditetapkan sesuai dengan jumlah yang ditetapkan.
  3. Jual saat ukuran posisi terakumulasi mencapai ambang batas.
  4. Ulangi untuk terus mengumpulkan posisi secara berkala.

Alur kerja yang khas:

  1. Membeli sejumlah aset secara berkala (misalnya $ 200 setiap bulan).
  2. Jual semua ketika ukuran posisi akumulasi melebihi ambang batas (misalnya 200 saham).
  3. Memulai kembali pembelian berkala untuk melanjutkan akumulasi posisi.

Keuntungan dari strategi ini:

  1. Biaya rata-rata yang lebih rendah melalui kepemilikan jangka panjang.
  2. Mengurangi risiko penarikan, menghindari membeli pada titik tinggi.
  3. Mudah dilaksanakan secara konsisten tanpa pemantauan pasar yang sering.

Risiko dari strategi ini:

  1. Membutuhkan periode penyimpanan yang panjang, tidak dapat beradaptasi dengan perubahan harga jangka pendek.
  2. Mungkin menghadapi kerugian selama penurunan jangka panjang.
  3. Waktu keluar yang tidak optimal mungkin melewatkan titik penjualan terbaik.

Singkatnya, strategi rata-rata biaya dolar mengumpulkan aset melalui pembelian berpasangan, ramah bagi investor jangka panjang.


/*backtest
start: 2022-09-08 00:00:00
end: 2023-09-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tanoshimooo

//@version=5
strategy ("DCA", initial_capital=44700, overlay=true)

// To start script at a given date
tz = 0 //timezone
timeadj = time + tz * 60 * 60 * 1000 //adjust the time (unix)
t1 = timeadj >= timestamp(2003, 03, 01, 0, 0) ? 1 : 0 //get the starting time

// Variables
var float lastRef = na
if barstate.isfirst
    lastRef := close
var float cash = 50000 // available money
var float sell_contracts = na
var bool first_trade_done = false

// Parameters
var float sell_min = 200 //200 sell more than sell_min or sell all
var float buy_dollars = 200

var int bi = 90

// LONGS
// if bar_index < bi
strategy.order("Long", strategy.long, int(buy_dollars/close))
cash := cash - int(buy_dollars/close)*close
// label.new(bar_index, na, na, xloc.bar_index, yloc.abovebar, color.blue, label.style_triangleup, color.blue, size.tiny)

//plot(cash)

// SHORTS
// if longExit  
//     if (strategy.position_size*sf*close > sell_min) and (strategy.position_size*sf >= 1)
//         strategy.order ("Long", strategy.short, strategy.position_size*sf)
//         cash := cash + strategy.position_size*sf*close
//     else 
//         strategy.order ("Long", strategy.short, strategy.position_size)
//         cash := cash + strategy.position_size*close
//     lastRef := close
//     label.new(bar_index, na, na, xloc.bar_index, yloc.belowbar, color.red, label.style_triangledown, color.red, size.tiny)

if bar_index == last_bar_index - 2 // bi
    strategy.order ("Long", strategy.short, strategy.position_size)

Lebih banyak