Files
zszq-trs/YLErpDAL/Modules/CalculationModule/Abstract/IHedgePnlCalcContext.cs
T
2024-05-09 14:06:26 +08:00

96 lines
2.4 KiB
C#

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