Table of Contents

Class OptimizerBase

Namespace
Balsam
Assembly
Balsam.Backtester.dll

Provides common functionality used across optimizers.

public abstract class OptimizerBase
Inheritance
OptimizerBase
Derived
Inherited Members
Extension Methods

Fields

Expectation

Expectation objective function.

public static Func<TradeStats, double> Expectation

Field Value

Func<TradeStats, double>

Optimalf

Optimal f objective function.

public static Func<TradeStats, double> Optimalf

Field Value

Func<TradeStats, double>

OutputToConsole

Gets/sets whether any message events raised through OnMessage are also printed to the console.

public static bool OutputToConsole

Field Value

bool

SharpeRatio

Arithmetic Sharpe Ratio objective function.

public static Func<TradeStats, double> SharpeRatio

Field Value

Func<TradeStats, double>

SortinoRatio

Sortino Ratio objective function.

public static Func<TradeStats, double> SortinoRatio

Field Value

Func<TradeStats, double>

UlcerPerformanceIndex

Ulcer Performance Index objective function.

public static Func<TradeStats, double> UlcerPerformanceIndex

Field Value

Func<TradeStats, double>

Properties

AutoExport

Gets/sets whether the optimization results are automatically exported to Excel.

public bool AutoExport { get; set; }

Property Value

bool

Methods

CartesianProduct(IEnumerable<IEnumerable<double>>)

Returns all possible parameter combinations.

protected static IEnumerable<IEnumerable<double>> CartesianProduct(IEnumerable<IEnumerable<double>> inputs)

Parameters

inputs IEnumerable<IEnumerable<double>>

Returns

IEnumerable<IEnumerable<double>>

CloneData(IEnumerable<BarSeries>)

Returns a clone of the specified data.

protected static IEnumerable<BarSeries> CloneData(IEnumerable<BarSeries> data)

Parameters

data IEnumerable<BarSeries>

Returns

IEnumerable<BarSeries>

FindOptimal(IEnumerable<TradeStats>, Func<TradeStats, double>, bool)

Returns the optimal TradeStats object using the specified objective function.

public static TradeStats FindOptimal(IEnumerable<TradeStats> results, Func<TradeStats, double> objectiveFunction, bool maximize = true)

Parameters

results IEnumerable<TradeStats>
objectiveFunction Func<TradeStats, double>
maximize bool

Returns

TradeStats

GetOptimizationAttributes(Type)

Returns an enumerable of OptimizeAttributes that decorate the specified type.

public static IEnumerable<OptimizeAttribute> GetOptimizationAttributes(Type type)

Parameters

type Type

Returns

IEnumerable<OptimizeAttribute>

GetResults()

Gets the collection of optimization results.

public abstract TradeStatsCollection GetResults()

Returns

TradeStatsCollection

OnIterationCompleted(OptimizationIterationEventArgs)

Raises an IterationCompleted event.

protected virtual void OnIterationCompleted(OptimizationIterationEventArgs e)

Parameters

e OptimizationIterationEventArgs

OnMessage(MessageEventArgs)

Raises a message event

protected virtual void OnMessage(MessageEventArgs e)

Parameters

e MessageEventArgs

OnOptimizationCompleted(OptimizationCompletedEventArgs)

Called when an optimization is complete.

protected virtual void OnOptimizationCompleted(OptimizationCompletedEventArgs e)

Parameters

e OptimizationCompletedEventArgs

Optimize(Type, VariableDictionary, Type, VariableDictionary, IEnumerable<BarSeries>, IEnumerable<OptimizeAttribute>, IComputePool, IProgress<double>, CancellationToken)

The main optimization method that will be implemented in derived classes.

public abstract 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

Events

IterationCompleted

Raised after an iteration is completed.

public event EventHandler<OptimizationIterationEventArgs> IterationCompleted

Event Type

EventHandler<OptimizationIterationEventArgs>

Message

Raised when the optimizer sends a message.

public event EventHandler<MessageEventArgs> Message

Event Type

EventHandler<MessageEventArgs>

OptimizationCompleted

Raised after the optimization is completed.

public event EventHandler<OptimizationCompletedEventArgs> OptimizationCompleted

Event Type

EventHandler<OptimizationCompletedEventArgs>