29 using System.Collections.Generic;
168 registeredTypesProvider,
185 _ =>
throw new ArgumentException(
"Invalid OptionStyle")
189 SetFilter(-1, 1, TimeSpan.Zero, TimeSpan.FromDays(35));
255 return _symbolProperties.ContractUnitOfTrade;
259 _symbolProperties.SetContractUnitOfTrade(value);
270 return (
int)_symbolProperties.ContractMultiplier;
274 _symbolProperties.SetContractMultiplier(value);
427 [Obsolete(
"This property has been deprecated. Please use QLOptionPriceModel.EnableGreekApproximation instead.")]
477 throw new ArgumentException($
"SetOptionAssignmentModel: {pyObject.Repr()} is not a valid argument.");
510 throw new ArgumentException($
"SetOptionExerciseModel: {pyObject.Repr()} is not a valid argument.");
537 SetFilterImp(universe => universe.Strikes(minStrike, maxStrike));
548 public void SetFilter(TimeSpan minExpiry, TimeSpan maxExpiry)
550 SetFilterImp(universe => universe.Expiration(minExpiry, maxExpiry));
567 public void SetFilter(
int minStrike,
int maxStrike, TimeSpan minExpiry, TimeSpan maxExpiry)
569 SetFilterImp(universe => universe
570 .Strikes(minStrike, maxStrike)
571 .Expiration(minExpiry, maxExpiry));
588 public void SetFilter(
int minStrike,
int maxStrike,
int minExpiryDays,
int maxExpiryDays)
590 SetFilterImp(universe => universe
591 .Strikes(minStrike, maxStrike)
592 .Expiration(minExpiryDays, maxExpiryDays));
599 public void SetFilter(Func<OptionFilterUniverse, OptionFilterUniverse> universeFunc)
604 var result = universeFunc(optionUniverse);
605 return result.ApplyTypesFilter();
621 PyObject result = (universeFunc as dynamic)(optionUniverse);
630 if ((result).TryConvert(out filter))
632 optionUniverse = filter;
634 else if ((result).TryConvert(out list))
636 optionUniverse = optionUniverse.WhereContains(list);
640 throw new ArgumentException($
"QCAlgorithm.SetFilter: result type {result.GetPythonType()} from " +
641 $
"filter function is not a valid argument, please return either a OptionFilterUniverse or a list of symbols");
644 return optionUniverse.ApplyTypesFilter();
656 throw new ArgumentException(
"DataNormalizationMode.Raw must be used with options");
659 base.SetDataNormalizationMode(mode);
662 private void SetFilterImp(Func<OptionFilterUniverse, OptionFilterUniverse> universeFunc)
667 var result = universeFunc(optionUniverse);
668 return result.ApplyTypesFilter();