using YLErp.Abstract;
using YLErp.Abstract.DataProviders;
namespace YLErp.Modules.CalculationModule.Abstract
{
///
/// 持仓风险对冲计算上下文接口
///
public interface IHedgePnlCalcContext
{
///
/// 估值日
///
DateTime ValueDate { get; }
///
/// 计算场景
///
Enums.CalcScenarioEnum CalcScenario { get; }
///
/// 波动率类型
///
string VolType { get; }
bool IsEodCalc { get; }
///
/// 标的数据提供者
///
IUnderlyingDataProvider UnderlyingDataProvider { get; }
///
/// 标的价格提供者
///
IPriceProvider UnderlyingPriceProvider { get; }
///
/// 标的结算价格提供者
///
IPriceProvider UnderlyingSettlePriceProvider { get; }
///
/// 场内期权价格提供者
///
IPriceProvider ExchangeOptionPriceProvider { get; }
///
/// 错误处理接口
///
IErrorHandler ErrorHandler { get; }
///
/// 对冲交易佣金计算接口
///
IExchangeTradeCommissionCalc CommissionCalc { get; }
///
/// 场内期权价格使用选项
/// 注意:在计算类中光子将忽略此项并固定为CalcPv
///
ExchangeOptionPriceUseFlag ExchangeOptionPriceUseFlag { get; }
///
/// 创建期权计算上下文对象
///
IOtcTradeValueCalcContext CreateOptionCalculateContext();
}
///
/// 场内期权价格使用选项
///
public enum ExchangeOptionPriceUseFlag
{
///
/// 不使用
///
None = 0,
///
/// 只设置HedgePnl的ExOptionPrice属性值
///
SetExOptionPrice = 1,
///
/// 用来计算PV(此选项涵盖了SetExOptionPrice选项)
///
CalcPv = SetExOptionPrice + 1,
///
/// 价格试算模式
///
TrialCalclMode = 11
}
}