32 private SymbolPropertiesHolder _properties;
49 get => _properties.ContractMultiplier;
50 internal set => _properties.ContractMultiplier = value;
61 public decimal
LotSize => _properties.LotSize;
96 _properties = properties._properties;
102 public SymbolProperties(
string description,
string quoteCurrency, decimal contractMultiplier,
103 decimal minimumPriceVariation, decimal lotSize,
string marketTicker,
104 decimal? minimumOrderSize =
null, decimal priceMagnifier = 1, decimal strikeMultiplier = 1)
106 _properties =
new SymbolPropertiesHolder(description, quoteCurrency, contractMultiplier,
107 minimumPriceVariation, lotSize, marketTicker, minimumOrderSize, priceMagnifier, strikeMultiplier);
125 return new SymbolProperties(
string.Empty, quoteCurrency.LazyToUpper(), 1, 0.01m, 1,
string.Empty);
134 _properties = other._properties;
140 private class SymbolPropertiesHolder
150 public decimal
LotSize {
get; }
164 public SymbolPropertiesHolder(
string description,
string quoteCurrency, decimal contractMultiplier, decimal minimumPriceVariation, decimal lotSize,
string marketTicker, decimal? minimumOrderSize, decimal priceMagnifier, decimal strikeMultiplier)
174 throw new ArgumentException(Messages.SymbolProperties.InvalidLotSize);
183 throw new ArgumentException(Messages.SymbolProperties.InvalidPriceMagnifier);
187 if (strikeMultiplier <= 0)
189 throw new ArgumentException(Messages.SymbolProperties.InvalidStrikeMultiplier);