Strategy vault / DCA & fixed investment
Dollar Cost Averaging Strategy
This strategy is called the Dollar Cost Averaging Strategy. It aims to accumulate a target position size through periodic fixed-amount purchases, enabling long-term holdings. How it works: 1. Set a fixed purchase…
This strategy is called the Dollar Cost Averaging Strategy. It aims to accumulate a target position size through periodic fixed-amount purchases, enabling long-term holdings.
How it works:
- Set a fixed purchase amount and frequency.
- Make periodic purchases of the asset at fixed intervals according to set amount.
- Sell when accumulated position size reaches a threshold.
- Repeat to continue accumulating positions periodically.
Typical workflow:
- Buy a fixed amount of assets periodically (e.g. $200 every month).
- Sell all when accumulated position size exceeds a threshold (e.g. 200 shares).
- Restart periodic buying to continue accumulating positions.
Advantages of this strategy:
- Lower averaged cost through long-term holdings.
- Lower drawdown risks, avoids buying at high points.
- Easy to execute consistently without frequent market monitoring.
Risks of this strategy:
- Requires long holding periods, cannot adapt to short-term price swings.
- May face losses during prolonged downtrends.
- Suboptimal exit timing may miss best selling point.
In summary, the dollar cost averaging strategy accumulates assets through batched buys, friendly to long-term investors. But traders still need to watch out for broad market risks and optimize exit strategies to maximize profits through batched sells at highs.
Source Pine Script
/*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)Published by ChaoZhang on the FMZ strategy square · last modified 2023-09-15. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.
Build this with AgenKit
A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Dollar-Cost-Averaging-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- Get tests, backtest, risk controls and a paper-trading switch
Understand it first
Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.
Related specs
- Dollar Cost Averaging Investment StrategyPine Script · DCA & fixed investment · 1d
- Dynamic DCA based Cryptocurrency Quantitative Trading StrategyPine Script · DCA & fixed investment · 1h
- Dynamic Position Building StrategyPine Script · DCA & fixed investment · 1h
- Fibonacci Zone DCA StrategyPine Script · DCA & fixed investment · 1d
- Multi Indicator Confirmation EMA Breakout with DCA and Dynamic Take Profit StrategyPine Script · DCA & fixed investment · 1d
- Bollinger Band and RSI Mixing with DCA StrategyPine Script · DCA & fixed investment · 1d