Chiến lược này được gọi là chiến lược giá trị trung bình tích lũy định kỳ. Chiến lược này thực hiện việc nắm giữ tài sản trong thời gian dài bằng cách mua định kỳ, dần dần đạt được vị trí mục tiêu.
Chiến lược hoạt động như sau:
Quy trình hoạt động cụ thể:
Những lợi thế của chiến lược này:
Rủi ro của chiến lược này:
Tóm lại, chiến lược định lượng định kỳ tích lũy tài sản bằng cách xây dựng kho hàng loạt, thân thiện với các nhà đầu tư dài dòng. Tuy nhiên, các nhà giao dịch vẫn cần phải chú ý đến rủi ro của thị trường lớn và tối ưu hóa chiến lược bán hàng, tối đa hóa lợi nhuận bằng cách tạo kho hàng loạt ở mức cao.
/*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)