/// <summary> /// Initializes a new instance of the <see cref="OptionStrategyMatcherOptions"/> class, providing /// options that control the behavior of the <see cref="OptionStrategyMatcher"/> /// </summary> public OptionStrategyMatcherOptions( IReadOnlyList <OptionStrategyDefinition> definitions, IReadOnlyList <int> maximumCountPerLeg, TimeSpan maximumDuration = default(TimeSpan), int maximumSolutionCount = 100, IOptionStrategyDefinitionEnumerator definitionEnumerator = null, IOptionStrategyMatchObjectiveFunction objectiveFunction = null, IOptionPositionCollectionEnumerator positionEnumerator = null ) { if (maximumDuration == default(TimeSpan)) { maximumDuration = Time.OneMinute; } if (definitionEnumerator == null) { // by default we want more complex option strategies to have matching priority definitionEnumerator = new DescendingByLegCountOptionStrategyDefinitionEnumerator(); } if (objectiveFunction == null) { objectiveFunction = new UnmatchedPositionCountOptionStrategyMatchObjectiveFunction(); } if (positionEnumerator == null) { positionEnumerator = new DefaultOptionPositionCollectionEnumerator(); } _definitions = definitions; MaximumDuration = maximumDuration; ObjectiveFunction = objectiveFunction; MaximumCountPerLeg = maximumCountPerLeg; _positionEnumerator = positionEnumerator; _definitionEnumerator = definitionEnumerator; MaximumSolutionCount = maximumSolutionCount; }
/// <summary> /// Initializes a new instance of the <see cref="OptionStrategyMatcherOptions"/> class, providing /// options that control the behavior of the <see cref="OptionStrategyMatcher"/> /// </summary> public OptionStrategyMatcherOptions( IReadOnlyList <OptionStrategyDefinition> definitions, IReadOnlyList <int> maximumCountPerLeg, TimeSpan maximumDuration = default(TimeSpan), int maximumSolutionCount = 100, IOptionStrategyDefinitionEnumerator definitionEnumerator = null, IOptionStrategyMatchObjectiveFunction objectiveFunction = null, IOptionPositionCollectionEnumerator positionEnumerator = null ) { if (maximumDuration == default(TimeSpan)) { maximumDuration = Time.OneMinute; } if (definitionEnumerator == null) { definitionEnumerator = new IdentityOptionStrategyDefinitionEnumerator(); } if (objectiveFunction == null) { objectiveFunction = new UnmatchedPositionCountOptionStrategyMatchObjectiveFunction(); } if (positionEnumerator == null) { positionEnumerator = new DefaultOptionPositionCollectionEnumerator(); } _definitions = definitions; MaximumDuration = maximumDuration; ObjectiveFunction = objectiveFunction; MaximumCountPerLeg = maximumCountPerLeg; _positionEnumerator = positionEnumerator; _definitionEnumerator = definitionEnumerator; MaximumSolutionCount = maximumSolutionCount; }