Strategi Purata Kos Dolar

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

Strategi ini dipanggil Strategi Purata Kos Dolar. Ia bertujuan untuk mengumpul saiz kedudukan sasaran melalui pembelian jumlah tetap berkala, yang membolehkan pegangan jangka panjang.

Bagaimana ia berfungsi:

  1. Tetapkan jumlah pembelian tetap dan kekerapan.
  2. Melakukan pembelian aset secara berkala pada selang masa yang tetap mengikut jumlah yang ditetapkan.
  3. Jual apabila saiz kedudukan terkumpul mencapai ambang.
  4. Ulangi untuk terus mengumpul kedudukan secara berkala.

Aliran kerja biasa:

  1. Beli sejumlah aset tetap secara berkala (contohnya $ 200 setiap bulan).
  2. Jual semua apabila saiz kedudukan terkumpul melebihi ambang (contohnya 200 saham).
  3. Mulakan semula pembelian berkala untuk terus mengumpul kedudukan.

Kelebihan strategi ini:

  1. Kos purata yang lebih rendah melalui pegangan jangka panjang.
  2. Mengurangkan risiko pengeluaran, mengelakkan membeli pada titik tinggi.
  3. Mudah dilaksanakan secara konsisten tanpa pemantauan pasaran yang kerap.

Risiko strategi ini:

  1. Memerlukan tempoh penyimpanan yang panjang, tidak dapat menyesuaikan diri dengan turun naik harga jangka pendek.
  2. Mungkin menghadapi kerugian semasa penurunan jangka panjang.
  3. Masa keluar yang kurang optimum mungkin terlepas titik penjualan terbaik.

Ringkasnya, strategi purata kos dolar mengumpul aset melalui pembelian berpasangan, mesra kepada pelabur jangka panjang. Tetapi peniaga masih perlu berhati-hati terhadap risiko pasaran yang luas dan mengoptimumkan strategi keluar untuk memaksimumkan keuntungan melalui penjualan berpasangan pada paras tertinggi.


/*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 lanjut