Эта стратегия называется стратегией регулярной фиксированной накопленной средней стоимости. Эта стратегия позволяет долгосрочно держать активы путем регулярной фиксированной покупки, постепенно достигая целевой позиции.
Как работает стратегия:
Конкретные процедуры:
Преимущества этой стратегии:
Риски этой стратегии:
В целом, стратегию регулярного квотирования, которая позволяет накопить активы путем создания позиций в рассрочку, является более дружественной для долгосрочных инвесторов. Однако трейдеру все же необходимо обращать внимание на риски крупных рынков и оптимизировать стратегию продаж, чтобы максимизировать прибыль путем распределения позиций в рассрочку при высоких рыночных ценах.
/*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)