Description Usage Arguments Details Author(s) See Also
This function will run applyStrategy
on portfolio.st
,
once for each parameter combination as specified by the parameter
distributions and constraints in the paramset. Results are gathered and
returned as a list containing a slot for each parameter combination.
1 2 3 4 5 |
strategy.st |
the name of the strategy object |
paramset.label |
a label uniquely identifying the paramset within the strategy |
portfolio.st |
the name of the portfolio |
... |
any other passthru parameters |
account.st |
the name of the account |
mktdata |
optional xts mktdata object, will be passed unchanged to applyStrategy |
nsamples |
if > 0 then take a sample of only size nsamples from the paramset |
user.func |
an optional user-supplied function to be run for each param.combo at the end, either on the slave or on the master (see calc) |
user.args |
user-supplied list of arguments for user.func |
calc |
'slave' to run |
audit |
a user-specified environment to store a copy of all portfolios, orderbooks and other data from the tests, or NULL to trash this information |
packages |
a vector specifying names of R packages to be loaded by the slave, default NULL |
verbose |
return full information, in particular the .blotter environment, default FALSE |
paramsets |
a user-sepcified (sub)set of paramsets to run |
rule.subset |
ISO-8601 subset for period to execute rules over, default NULL (will use all dates) |
perf.subset |
ISO-8601 subset for period to examine performance over, default NULL (will use all dates) |
psgc |
boolean, if TRUE, the default, will force |
store |
indicates whether to store the strategy in the .strategy environment |
apply.paramset uses the foreach package to start the runs for each parameter combination, and as such allows for parallel processing. It is up to the caller to load and register an appropriate backend, eg. doMC, doParallel or doRedis.
Note that we will attempt to pass dots through to most other called functions.
This could include arguments such as the tradeDef
argument for
tradeStats
, or additional arguments to be passed to
applyStrategy
It is also worth discussing the nsamples
argument. This option will
randomly sample from the total parameter space. It is quite useful for testing
your parameterization distributions. It is not always terribly useful for
real tests,even for a large parameter space. Use of this sampling methodology,
if there are not enough samples, will make parameter surface analysis
challenging, for example, because there may be 'voids' in any randomly chosen
parameter space. Also, if apply.paramset
is called via walk.forward
with nsamples
, then the sampled parameter sets will be different for
each training period, as the sampling methodology is independent. This
latter issue could be addressed by passing paramsets
instead, so if
you must use a parameter subset (e.g. one generated via some optimization
algorithm, or to use a constand sample for all training periods), then
passing paramsets
should be preferred to passing nsamples
.
Jan Humme, Brian Peterson
add.distribution
,
add.distribution.constraint
,
delete.paramset
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.