using YLErp.Abstract;
using YLErp.Abstract.DataProviders;
using YLErp.Modules.CalculationModule.Abstract;
namespace YLErp.Modules.TradeRiskCalcModule.Abstract
{
public interface ITradeRiskCalcContext : IErrorHandler
{
///
/// 估值日期
///
DateTime ValueDate { get; }
///
/// 上个交易日(场外交易计算用这个)
///
DateTime PreValueDate { get; }
///
/// 上个结算日(场外交易计算用不到这个)
///
DateTime PreSettleDate { get; }
///
/// 波动率类型
///
string VolType { get; }
///
/// 期权价值计算数据接口
///
IOptionCalcDataProvider OptionCalcDataProvider { get; }
///
/// 上个交易日结算价接口
///
IEodPriceProvider YdEodPriceProvider { get; }
///
/// 上日交易历史数据接口
///
ITradeHisDataProvider YdTradeHisDataProvider { get; }
///
/// 上日持仓数据接口
///
ITradeRiskEodPositionDataProvider YdEodPositionDataProvider { get; }
///
/// 获取交易的现金交割
///
IEnumerable GetTrade_Cashes(IEnumerable tradeIds);
///
/// 生成当前风险期权计算上下文
///
IOtcTradeValueCalcContext CreateOptionValueCalcContext(double sysRiskFreeRate);
///
/// 根据期权价值计算上下文生成对冲损益计算上下文
///
IHedgePnlCalcContext CreateHedgePnlCalcContext(IOtcTradeValueCalcContext optionValueCaclContext);
}
}