47 lines
1.8 KiB
C#
47 lines
1.8 KiB
C#
using YLErp.Abstract;
|
|
using YLErp.Abstract.DataProviders;
|
|
using YLErp.Modules.CalculationModule.Abstract;
|
|
using YLErp.Modules.DataProviderModule;
|
|
|
|
namespace YLErp.Modules.TradeRiskCalcModule
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
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; }
|
|
}
|
|
}
|