using YLErp.Abstract; using YLErp.Abstract.DataProviders; using YLErp.Modules.CalculationModule.Abstract; using YLErp.Modules.DataProviderModule; namespace YLErp.Modules.TradeRiskCalcModule { /// /// /// class OptionCalcDataProvider : IOptionCalcDataProvider { public OptionCalcDataProvider(TradeRiskCalcTestContextBase context, IPriceProvider underlyingPriceProvider = null, IPriceProvider underlyingSettlePriceProvider = null) { if (underlyingPriceProvider != null) { UnderlyingPriceProvider = underlyingPriceProvider; UnderlyingSettlePriceProvider = underlyingSettlePriceProvider; } else if (context.IsEodSettle) { UnderlyingPriceProvider = new EodPriceProvider(context.ValueDate).GetPriceProvider(); UnderlyingSettlePriceProvider = new EodPriceProvider(context.ValueDate).GetPriceProvider(DBModels.SettlementTypeEnum.SettlePrice); } else { UnderlyingPriceProvider = DataCacheProvider.GetUnderlyingDataSource(); UnderlyingSettlePriceProvider = DataCacheProvider.GetUnderlyingDataSource(); } UnderlyingDataProvider = new UnderlyingDataProvider(); TradeExtendDataProvider = new TradeExtendDataProvider(InnerHelper.UserInfo); VolatilityDataProvider = new VolatilityDataProvider(context.ValueDate); } public IPriceProvider UnderlyingPriceProvider { get; } public IPriceProvider UnderlyingSettlePriceProvider { get; } public IUnderlyingDataProvider UnderlyingDataProvider { get; } public ITradeExtendDataProvider TradeExtendDataProvider { get; } public IVolatilityDataProvider VolatilityDataProvider { get; } } }