The sample dataset has been replaced with real-world data. Pricing data has been sourced from the Tiingo Stock API, and financial data has been sourced from EDGAR. The dataset includes size and value factors for most of the stocks in the S&P 500 for the period June-August 2020.
The sample shiny app has multiple improvements, including the ability to load simulation results and improved visualizations.
The PortOpt
class has been exported. This class can
be used to solve single portfolio optimization problems.
Writing html reports for a simulation based on an Rmd template is
now possible using the writeReport
method of the
Simulation
class.
Delistings can now be entered with a delisting return.
Average volume has been changed to a market value measure from a
shares measure. This makes it much easier to provide a measure of ADV
(average daily volume) in a reference currency for setting trading and
position limit constraints. By default the column is called
rc_vol
.
Added input_dates parameter to Simulation class constructor. The date vector passed to input_dates contols the dates on which input data (e.g., alpha and risk factors) is updated.
Added force-trim feature to trim back positions that grow too
large. Setting the simulator configuration parameter
force_trim_factor
to a numeric value X will cause orders to
be created that trim positions back to X times their maximum allowable
size.
Added force-exit feature for non-investable securities. Setting
the simulator configuration parameter
force_exit_non_investable
to TRUE
will cause
exit orders to be created for positions not in the universe during a
simulation.
Added feature to limit LMV/SMV increase/decrease on a single day.
This feature is useful when ramping up the portfolio to its target
LMV/SMV at the beginning of the simulation. For example, setting the
simulator configuration parameter max_weight_change
to 0.1
will limit LMV/SMV increase to 10% of the target LMV/SMV per
day.
Now saving gross, long, and short exposures in addition to net.
Standardized simulation result data and plotting methods to have a strategy_name parameter where appropriate.
Improved handling of delistings.
Added new plotting methods for the Simulation
class:
plotContribution
, plotTurnover
,
plotUniverseSize
, and
plotNonInvestablePct
.
Added overallReturnsByMonthDf
method for the
Simulation
class.
Fixed recording of loosened constraints during simulation.
Fixed loading of configuration information in
readFeather
.
The example in the package vignette now uses the sample datasets included in the package.
overallStatsDf()
includes a max drawdown
entry.
Rsymphony
dependency has been moved from Imports to
Suggests to make installation easier.
Example shiny application now uses the sample datasets provided
with the package, and can now be run directly by calling the new
function example_shiny_app()
.
New function example_strategy_config()
provides an
easy way to grab the sample configuration used in examples and the shiny
app.