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

116 lines
3.0 KiB
C#

using Qdp.Pricing.Base.Implementations;
using YLErp.Abstract;
using YLErp.Commons;
using YLErp.Enums;
using YLErp.QdpModule;
namespace YLErp.Modules.CalculationModule.Abstract
{
/// <summary>
/// 场外交易估值计算上下文接口
/// </summary>
public interface IOtcTradeValueCalcContext : IDisposable
{
/// <summary>
/// 计算场景枚举
/// </summary>
CalcScenarioEnum CalcScenario { get; }
/// <summary>
/// 用户组
/// </summary>
string UserGroup { get; set; }
/// <summary>
/// 估值日期
/// </summary>
DateTime ValueDate { get; }
/// <summary>
/// 波动率类型
/// </summary>
string VolType { get; }
bool IsEodCalc { get; }
/// <summary>
/// 系统全局无风险利率
/// </summary>
double SysRiskFreeRate { get; }
/// <summary>
/// 是否精确时间模式
/// </summary>
bool IsPreciseTimeMode { get; }
/// <summary>
/// 增加波动率比率
/// </summary>
double AddingVolRate { get; }
/// <summary>
/// QDP市场代理
/// </summary>
MarketProxy MarketProxy { get; }
/// <summary>
/// 数据提供者(接口实现中不能为null)
/// </summary>
IOptionCalcDataProvider DataProvider { get; }
/// <summary>
/// 错误处理接口
/// </summary>
IErrorHandler ErrorHandler { get; }
/// <summary>
/// 是否计算T+1日Delta
/// </summary>
bool CalcDeltaT1 { get; }
/// <summary>
/// 追踪
/// </summary>
TraceWrap Trace { get; }
//----------------------------------------
//方法
//----------------------------------------
/// <summary>
/// 根据交易品种ID获取此交易品种是否存在夜盘
/// </summary>
bool HasNightMarket(int varietyId);
/// <summary>
/// 获取标的关联性
/// </summary>
double GetCorrelation(int underlyingId1, int underlyingId2);
/// <summary>
/// 为计算准备波动率
/// </summary>
bool PrepareVolatility(string qdpTradeId, OtcTradeBase trade, double spotPrice, out string[] volsurfaceNames);
/// <summary>
/// 获取交易的无风险利率
/// </summary>
double GetRiskFreeRate(OtcTradeBase trade);
/// <summary>
/// 获取交易的分红率
/// </summary>
double GetDividendRate(OtcTradeBase trade);
/// <summary>
/// 获取期权计算模式
/// </summary>
PricingRequest GetPricingRequest(OtcTradeBase trade);
/// <summary>
/// 为亚式期权交易获取fixing数据
/// </summary>
string GetFixingString(OtcTradeBase trade, trade_asian_option asianOption, double spotPrice);
}
}