Files
zszq-trs/Tools/YLTestTool/Modules/TradeRiskCalcModule/OptionCalcDataProvider.cs
2024-05-09 14:06:26 +08:00

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; }
}
}