This is a major update to the package which includes changes to allow dynamic (tactical) asset allocation strategies.
The backtest_allocation
function now expects a list containing an element (a function) portfolio_rule_fn
which contains the logic used in determining the weights on each rebalancing date.
The backtest_allocation
function now can take an optional input start_date
in date format. If it is provided, the backtest starts from that date. Otherwise, it starts from the date from which data on all assets becomes available.
Pre-loaded data is now in a list called ETFs
, which has replaced the previous object ETFs_daily
. Type ?ETFs
to see details and ETFs$Description
to see more information about the assets.
Changed logic to calculate portfolio returns. The previous function daily_ret_calc
has been replaced by the function daily_account_cal
.
Added a wrapper function get_data_from_tickers which retrieves adjusted prices from Yahoo Finance and calculates returns. The previous function get_return_data_from_tickers
, which only returned the returns of the assets, has been replaced by the function get_data_from_tickers
.
The pre-loaded asset allocation strategies are now in an object called asset_allocations
. It contains one list with static asset allocations, and one with tactical asset allocations.
Added the following tactical asset allocation strategies:
Ivy portfolio (rebalance function: tactical_ivy)
Robust Asset Allocation portfolio (rebalance function: tactical_RAA)
Dual Momentum (rebalance function: tactical_DualMomentum)
Adaptive Asset Allocation (rebalance function: tactical_AAA
)
Added generic functions to calculate some portfolios that rely on optimization:
risk parity portfolios (rebalance function: risk_parity)
minimum variance portfolios (rebalance function: min_variance
, uses minvar
from NMOF
package)
NEWS.md
file to track changes to the package.