Class GeneticOptimizer
- Namespace
- Balsam.Optimization
- Assembly
- Balsam.Backtester.dll
Searchs a range of parameter values using random parameter mutation.
public class GeneticOptimizer : OptimizerBase
- Inheritance
-
GeneticOptimizer
- Inherited Members
- Extension Methods
Properties
InitialState
Gets/sets a TradeStatsCollection used to initialize the valid parameter space. Those parameters contained in the optimization properties have already been run.
public TradeStatsCollection InitialState { get; set; }
Property Value
MaxIterations
Gets/sets the max total iterations that will be run before early stopping. This can result in no results returned. See also MaxResults.
public int? MaxIterations { get; set; }
Property Value
- int?
MaxResults
Get/sets the maximum number of results that will be collected before early stopping.
public int? MaxResults { get; set; }
Property Value
- int?
MaxRuntime
Gets/sets the maximum runtime of the optimization.
public TimeSpan? MaxRuntime { get; set; }
Property Value
MaxTimeSinceImprovement
Gets/sets the maximum elapsed time since the last improvement in the objective function for early stopping.
public TimeSpan? MaxTimeSinceImprovement { get; set; }
Property Value
Maximize
Gets/sets whether the target objective function is maximized (false to minimize).
public bool Maximize { get; set; }
Property Value
MinTrades
Gets/sets the minimum number of trades a simulation must have for it to be considered. Applies to SaveStrategy.Best only.
public int MinTrades { get; set; }
Property Value
ObjectiveFunction
Gets/sets the objective function. If null, Sharpe Ratio is used as the default.
public Func<TradeStats, double> ObjectiveFunction { get; set; }
Property Value
SaveResults
Gets/sets whether all results are saved. By default the genetic optimizer only saves the best result for each optimization cycle.
public GeneticOptimizer.SaveStrategy SaveResults { get; set; }
Property Value
Spawn
Gets/sets the number of iterations after which the optimzer will attempt to 'mate' two of the highest performing variants
public int Spawn { get; set; }
Property Value
TargetObjective
Gets/sets a target objective that will result in early stopping of the optimization.
public double? TargetObjective { get; set; }
Property Value
Methods
GetParameterSensitivities()
Returns the parameter sensitivities collection.
public ParameterSensitivities GetParameterSensitivities()
Returns
GetResults()
Returns a collection of the optimization results.
public override TradeStatsCollection GetResults()
Returns
Optimize(Type, VariableDictionary, Type, VariableDictionary, BarSeries)
Optimizes the specified strategy.
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>)
Optimizes the specified strategy.
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 genetic 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 and reporting 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 a genetic 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)
Optimizes the specified strategy using the specified optimization attributes.
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