Class Optimizer
- Namespace
- Balsam
- Assembly
- Balsam.Backtester.dll
Runs simulations across a range of parameter values and collate results using brute force search.
public class Optimizer : OptimizerBase
- Inheritance
-
Optimizer
- Inherited Members
- Extension Methods
Properties
BaseCase
Gets/sets a simulation result that will be listed at the beginning of results for comparison purposes.
public TradeStats BaseCase { get; set; }
Property Value
MaxIterations
Gets/sets the maximum number of iterations the optimization will run for. Typically set when RandomizeOrder is true.
public int? MaxIterations { get; set; }
Property Value
- int?
MaxRuntime
Gets/sets the maximum runtime of the optimization. Typically set for very large optimizations when RandomizeOrder is true.
public TimeSpan? MaxRuntime { get; set; }
Property Value
RandomizeOrder
Gets/sets whether parameter sets will be run in random order.
public bool RandomizeOrder { get; set; }
Property Value
SaveResults
Gets/sets whether TradeStats are saved to the Results collection. When true, the optimizer will also save results to a temporary file called OptimizationResults. When false, results are exposed via the IterationCompleted event and are not saved internally. This may be useful for very large optimizations that could potentially result in OutOfMemory exceptions.
public bool SaveResults { get; set; }
Property Value
Methods
GetResults()
Returns a collection of the optimization results.
public override TradeStatsCollection GetResults()
Returns
Optimize(MoneyManager)
Optimizes the specified money manager.
public void Optimize(MoneyManager moneyManager)
Parameters
moneyManager
MoneyManager
Optimize(MoneyManager, params OptimizeAttribute[])
Optimizes the specified money manger.
public void Optimize(MoneyManager moneyManager, params OptimizeAttribute[] optimizationAttributes)
Parameters
moneyManager
MoneyManageroptimizationAttributes
OptimizeAttribute[]
Optimize(Strategy)
Optimizes the specified strategy. Typically the strategy would already have the primary series set.
public void Optimize(Strategy strategy)
Parameters
strategy
Strategy
Optimize(Strategy, IEnumerable<BarSeries>)
Optimizes the strategy across all data in the specified enumerable.
public void Optimize(Strategy strategy, IEnumerable<BarSeries> data)
Parameters
strategy
Strategydata
IEnumerable<BarSeries>
Optimize(Strategy, IEnumerable<BarSeries>, params OptimizeAttribute[])
Optimizes the strategy using the specified parameters.
public void Optimize(Strategy strategy, IEnumerable<BarSeries> data, params OptimizeAttribute[] optimizationAttributes)
Parameters
strategy
Strategydata
IEnumerable<BarSeries>optimizationAttributes
OptimizeAttribute[]
Optimize(Type, DataStoreBase)
Multi-threaded optimization of a money manager type using the specified datastore.
public void Optimize(Type moneyManager, DataStoreBase dataStore)
Parameters
moneyManager
TypedataStore
DataStoreBase
Optimize(Type, DataStoreBase, VariableDictionary)
Multi-threaded optimization of a money manager type using the specified properties and datastore.
public void Optimize(Type moneyManager, DataStoreBase dataStore, VariableDictionary moneyManagerProperties)
Parameters
moneyManager
TypedataStore
DataStoreBasemoneyManagerProperties
VariableDictionary
Optimize(Type, VariableDictionary, Type, VariableDictionary)
Used to optimize strategies that load their own data. They must be decorated with StrategyProvidedDataAttribute.
public void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionary
Optimize(Type, VariableDictionary, Type, VariableDictionary, BarSeries)
Runs a multi-threaded optimization on a single data series.
public void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties, BarSeries data)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
BarSeries
Optimize(Type, VariableDictionary, Type, VariableDictionary, IEnumerable<BarSeries>)
Runs a multi-threaded strategy optimization using the specified parameters.
public void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties, IEnumerable<BarSeries> data)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
IEnumerable<BarSeries>
Optimize(Type, VariableDictionary, Type, VariableDictionary, IEnumerable<BarSeries>, IComputePool)
Runs a multi-threaded strategy optimization using the specified parameters.
public void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties, IEnumerable<BarSeries> data, IComputePool computePool)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
IEnumerable<BarSeries>computePool
IComputePool
Optimize(Type, VariableDictionary, Type, VariableDictionary, IEnumerable<BarSeries>, IEnumerable<OptimizeAttribute>, IComputePool)
Runs an optimization with the specified parameters. Cancellation from the console is supported.
public void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties, IEnumerable<BarSeries> data, IEnumerable<OptimizeAttribute> optimizationAttributes, IComputePool computePool)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
IEnumerable<BarSeries>optimizationAttributes
IEnumerable<OptimizeAttribute>computePool
IComputePool
Optimize(Type, VariableDictionary, Type, VariableDictionary, IEnumerable<BarSeries>, IEnumerable<OptimizeAttribute>, IComputePool, IProgress<double>, CancellationToken)
Runs an optimization using the specified parameters.
public override void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties, IEnumerable<BarSeries> data, IEnumerable<OptimizeAttribute> optimizationAttributes, IComputePool computePool, IProgress<double> progress, CancellationToken token)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
IEnumerable<BarSeries>optimizationAttributes
IEnumerable<OptimizeAttribute>computePool
IComputePoolprogress
IProgress<double>token
CancellationToken
Optimize(Type, VariableDictionary, Type, VariableDictionary, IEnumerable<BarSeries>, IEnumerable<OptimizeAttribute>, int)
Runs a multi-threaded strategy optimization using the specified parameters.
public void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties, IEnumerable<BarSeries> data, IEnumerable<OptimizeAttribute> optimizationAttributes, int maxParallelism = -1)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
IEnumerable<BarSeries>optimizationAttributes
IEnumerable<OptimizeAttribute>maxParallelism
int
Optimize(Type, VariableDictionary, Type, VariableDictionary, IEnumerable<BarSeries>, int)
Runs a multi-threaded strategy optimization using the specified parameters.
public void Optimize(Type strategy, VariableDictionary strategyProperties, Type moneyManager, VariableDictionary moneyManagerProperties, IEnumerable<BarSeries> data, int maxParallelism = -1)
Parameters
strategy
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
IEnumerable<BarSeries>maxParallelism
int