dcapal icon indicating copy to clipboard operation
dcapal copied to clipboard

[Proposal] Add Dynamic DCA Investment Strategy to DcaPal

Open mattiapitossi opened this issue 2 years ago • 3 comments

Background

In traditional Dollar Cost Averaging, an investor allocates a fixed amount of money at regular intervals (e.g., weekly, monthly) to purchase a specific asset, regardless of price. This approach aims to reduce the impact of market volatility and lower the average purchase price over time. The idea behind dynamic DCA is to increase the investment amount when the market is experiencing a downtrend or when prices are lower, this allows the investor to buy more of the asset when it's cheaper.

Proposed Functionality

The user has the option to select the Dynamic DCA investment strategy, the investment amount would be calculated based on the following parameters (users can customize these defaults):

Average Cost Price variation Periodic Investment Multiplier
-10% 100€ 1
Between -10% and -15% 125€ 1.25
Between -15% and -20% 150€ 1.5
-20% or worse 175€ 1.75

The implementation should consider that the Average Buy Price variation must be calculated across all assets as a weighted average.

Use case

  • The user loads or inputs the composition of their portfolio with the corresponding ABP for each asset.
  • The user specifies the amount they wish to invest.
  • The user selects the option to calculate the Dynamic DCA strategy.
  • If the average Average Cost Price is lower than 10%, the algorithm suggests investing an additional amount.

mattiapitossi avatar Aug 15 '23 19:08 mattiapitossi

Great proposal @mattiapitossi, thanks! I like the overall idea, got a couple of questions design-wise:

  • Do you envision user to still provide the desired investment amount and then apply the multipliers at optimization level? i.e. in the final step the user is made aware that a higher amount has been allocated bc Dynamic PAC is triggered
  • What if only one asset ABP is less than 10% the market price? Does it make sense to overweight that asset or smart PAC applies only at portfolio level?

Thanks!

leonardoarcari avatar Aug 16 '23 08:08 leonardoarcari

Do you envision user to still provide the desired investment amount and then apply the multipliers at optimization level? i.e. in the final step the user is made aware that a higher amount has been allocated bc Dynamic PAC is triggered

Yes, the user should provide the amount they want to invest (without the extra amount). When selecting the option to enable Dynamic DCA, they should be informed that the amount could be increased by up to the maximum multiplier.

What if only one asset ABP is less than 10% the market price? Does it make sense to overweight that asset or smart PAC applies only at portfolio level?

I think it makes perfect sense, but I was considering letting the user decide which one to apply. That being said, users have two more options when enabling Dynamic DCA:

  • Overweighting underperforming ETFs
  • Weighted ABP calculation across all assets as mentioned in the proposal

mattiapitossi avatar Aug 17 '23 07:08 mattiapitossi

When selecting the option to enable Dynamic DCA, they should be informed that the amount could be increased by up to the maximum multiplier.

Cool! Thanks :)

I think it makes perfect sense, but I was considering letting the user decide which one to apply. That being said, users have two more options when enabling Dynamic DCA:

Sounds good 👍 I agree with you, we should start with Weighted ABP as proposed and see if there's demand for more complicated variants.

leonardoarcari avatar Aug 18 '23 14:08 leonardoarcari