Table of Contents

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

TradeStatsCollection

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

TimeSpan?

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

TimeSpan?

Maximize

Gets/sets whether the target objective function is maximized (false to minimize).

public bool Maximize { get; set; }

Property Value

bool

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

int

ObjectiveFunction

Gets/sets the objective function. If null, Sharpe Ratio is used as the default.

public Func<TradeStats, double> ObjectiveFunction { get; set; }

Property Value

Func<TradeStats, double>

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

GeneticOptimizer.SaveStrategy

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

int

TargetObjective

Gets/sets a target objective that will result in early stopping of the optimization.

public double? TargetObjective { get; set; }

Property Value

double?

Methods

GetParameterSensitivities()

Returns the parameter sensitivities collection.

public ParameterSensitivities GetParameterSensitivities()

Returns

ParameterSensitivities

GetResults()

Returns a collection of the optimization results.

public override TradeStatsCollection GetResults()

Returns

TradeStatsCollection

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 Type
strategyProperties VariableDictionary
moneyManager Type
moneyManagerProperties VariableDictionary
data 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 Type
strategyProperties VariableDictionary
moneyManager Type
moneyManagerProperties VariableDictionary
data 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 Type
strategyProperties VariableDictionary
moneyManager Type
moneyManagerProperties VariableDictionary
data 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 Type
strategyProperties VariableDictionary
moneyManager Type
moneyManagerProperties VariableDictionary
data 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 Type
strategyProperties VariableDictionary
moneyManager Type
moneyManagerProperties VariableDictionary
data IEnumerable<BarSeries>
optimizationAttributes IEnumerable<OptimizeAttribute>
computePool IComputePool
progress 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 Type
strategyProperties VariableDictionary
moneyManager Type
moneyManagerProperties VariableDictionary
data IEnumerable<BarSeries>
optimizationAttributes IEnumerable<OptimizeAttribute>
maxParallelism int