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.