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
Optimalf
Optimal f objective function.
public static Func<TradeStats, double> Optimalf
Field Value
OutputToConsole
Gets/sets whether any message events raised through OnMessage are also printed to the console.
public static bool OutputToConsole
Field Value
SharpeRatio
Arithmetic Sharpe Ratio objective function.
public static Func<TradeStats, double> SharpeRatio
Field Value
SortinoRatio
Sortino Ratio objective function.
public static Func<TradeStats, double> SortinoRatio
Field Value
UlcerPerformanceIndex
Ulcer Performance Index objective function.
public static Func<TradeStats, double> UlcerPerformanceIndex
Field Value
Properties
AutoExport
Gets/sets whether the optimization results are automatically exported to Excel.
public bool AutoExport { get; set; }
Property Value
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
CloneData(IEnumerable<BarSeries>)
Returns a clone of the specified data.
protected static IEnumerable<BarSeries> CloneData(IEnumerable<BarSeries> data)
Parameters
data
IEnumerable<BarSeries>
Returns
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
GetOptimizationAttributes(Type)
Returns an enumerable of OptimizeAttributes that decorate the specified type.
public static IEnumerable<OptimizeAttribute> GetOptimizationAttributes(Type type)
Parameters
type
Type
Returns
GetResults()
Gets the collection of optimization results.
public abstract TradeStatsCollection GetResults()
Returns
OnIterationCompleted(OptimizationIterationEventArgs)
Raises an IterationCompleted event.
protected virtual void OnIterationCompleted(OptimizationIterationEventArgs e)
Parameters
OnMessage(MessageEventArgs)
Raises a message event
protected virtual void OnMessage(MessageEventArgs e)
Parameters
OnOptimizationCompleted(OptimizationCompletedEventArgs)
Called when an optimization is complete.
protected virtual void OnOptimizationCompleted(OptimizationCompletedEventArgs e)
Parameters
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
TypestrategyProperties
VariableDictionarymoneyManager
TypemoneyManagerProperties
VariableDictionarydata
IEnumerable<BarSeries>optimizationAttributes
IEnumerable<OptimizeAttribute>computePool
IComputePoolprogress
IProgress<double>token
CancellationToken
Events
IterationCompleted
Raised after an iteration is completed.
public event EventHandler<OptimizationIterationEventArgs> IterationCompleted
Event Type
Message
Raised when the optimizer sends a message.
public event EventHandler<MessageEventArgs> Message
Event Type
OptimizationCompleted
Raised after the optimization is completed.
public event EventHandler<OptimizationCompletedEventArgs> OptimizationCompleted