Tài nguyên đang được tải lên... tải...

Chiến lược Trung bình chi phí đô la

Tác giả:ChaoZhang, Ngày: 2023-09-15 16:52:06
Tags:

Chiến lược này được gọi là Chiến lược Trung bình Chi phí Đô la. Nó nhằm mục đích tích lũy kích thước vị trí mục tiêu thông qua các giao dịch mua định kỳ, cho phép nắm giữ dài hạn.

Làm thế nào nó hoạt động:

  1. Đặt số tiền mua cố định và tần suất.
  2. Thực hiện mua định kỳ tài sản theo khoảng thời gian cố định theo số tiền đã thiết lập.
  3. Bán khi kích thước vị trí tích lũy đạt ngưỡng.
  4. Lặp lại để tiếp tục tích lũy các vị trí định kỳ.

Dòng công việc điển hình:

  1. Mua một lượng tài sản cố định theo định kỳ (ví dụ: $ 200 mỗi tháng).
  2. Bán tất cả khi kích thước vị trí tích lũy vượt quá ngưỡng (ví dụ: 200 cổ phiếu).
  3. Bắt đầu mua lại định kỳ để tiếp tục tích lũy các vị trí.

Ưu điểm của chiến lược này:

  1. Chi phí trung bình thấp hơn thông qua cổ phần dài hạn.
  2. Giảm rủi ro rút tiền, tránh mua ở điểm cao.
  3. Dễ thực hiện nhất quán mà không cần giám sát thị trường thường xuyên.

Rủi ro của chiến lược này:

  1. Cần thời gian giữ dài, không thể thích nghi với biến động giá ngắn hạn.
  2. Có thể phải đối mặt với tổn thất trong thời gian giảm kéo dài.
  3. Thời điểm ra ngoài không tốt nhất có thể không đạt được điểm bán hàng tốt nhất.

Tóm lại, chiến lược trung bình hóa chi phí đô la tích lũy tài sản thông qua mua hàng loạt, thân thiện với các nhà đầu tư dài hạn.


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

Thêm nữa