从山证v2.3.0拷贝
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
using YLErp.Abstract;
|
||||
using YLErp.Modules.CalculationModule.Abstract;
|
||||
|
||||
namespace YLErp.Modules.DataProviderModule
|
||||
{
|
||||
/// <summary>
|
||||
/// 波动率数据提供
|
||||
/// </summary>
|
||||
public class VolatilityDataProvider : IVolatilityDataProvider
|
||||
{
|
||||
readonly UnderlyingVolProvider _UnderlyingVolProvider;
|
||||
readonly OtcPositionVolProvider _OtcPositionVolProvider;
|
||||
readonly OtcHedgingVolProvider _OtcHedgingVolProvider;
|
||||
readonly OtcEodOverrideVolProvider _OtcEodOverrideVolProvider;
|
||||
readonly ExOptionSavedVolProvider _ExOptionSavedVolProvider;
|
||||
|
||||
public VolatilityDataProvider(DateTime valueDate)
|
||||
{
|
||||
_UnderlyingVolProvider = new UnderlyingVolProvider(valueDate);
|
||||
_OtcPositionVolProvider = new OtcPositionVolProvider(valueDate);
|
||||
_OtcHedgingVolProvider = new OtcHedgingVolProvider(valueDate);
|
||||
_OtcEodOverrideVolProvider = new OtcEodOverrideVolProvider(valueDate);
|
||||
_ExOptionSavedVolProvider = new ExOptionSavedVolProvider(valueDate);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 场内期权保存的波动率
|
||||
/// </summary>
|
||||
public double? GetExOptionSavedVol(string optionCode, DateTime valueDate)
|
||||
{
|
||||
return _ExOptionSavedVolProvider.GetSavedVol(optionCode, valueDate);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 场外期权对冲波动率
|
||||
/// </summary>
|
||||
public double? GetOtcHedgingVol(int tradeId, DateTime valueDate)
|
||||
{
|
||||
return _OtcHedgingVolProvider.GetVol(tradeId, valueDate);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 标的波动率
|
||||
/// </summary>
|
||||
public IVolatility GetUnderlyingVol(DateTime valueDate, string voltype, string contractCode, string userGroup)
|
||||
{
|
||||
return _UnderlyingVolProvider.GetVolatility(voltype, contractCode, userGroup);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 场外期权结算波动率
|
||||
/// </summary>
|
||||
public double? GetOtcEodOverrideVol(int tradeId, DateTime valueDate)
|
||||
{
|
||||
return _OtcEodOverrideVolProvider.GetVol(tradeId, valueDate);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 场外期权持仓波动率
|
||||
/// </summary>
|
||||
public IOtcTradeVolatility GetOtcPositionVol(int tradeId, DateTime valueDate)
|
||||
{
|
||||
return _OtcPositionVolProvider.GetVol(tradeId, valueDate);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user