Files
zszq-trs/YLErpDAL/Modules/EodModule/QueryModule/EodTradePositionApiServiceModels.cs
T
2024-05-09 14:06:26 +08:00

916 lines
27 KiB
C#

namespace YLErp.Modules.EodModule.QueryModule
{
/// <summary>
/// 日终清算--请求参数
/// </summary>
public class EodSettleInfoRequest
{
/// <summary>
/// 清算日期
/// </summary>
public DateTime ValueDate { get; set; }
/// <summary>
/// 返回结果是否采用精简模式
/// </summary>
public bool CompactResult { get; set; }
}
/// <summary>
/// 日终清算--持仓列表结果
/// </summary>
public class EodTradePositionResult
{
public List<EodOptionPositionField> OptionPositions { get; set; }
public List<EodForwardPositionField> ForwardPositions { get; set; }
public List<EodPayOffSwapPositionField> SwapPositions { get; set; }
}
/// <summary>
/// 持仓记录
/// </summary>
public abstract class EodPositionField
{
/// <summary>
/// 交易编号
/// </summary>
public string TradeNumber { get; set; }
/// <summary>
/// 簿记账户
/// </summary>
public string AssetBookName { get; set; }
/// <summary>
/// 交易员
/// </summary>
public string TraderName { get; set; }
/// <summary>
/// 交易对手方
/// </summary>
public string ClientName { get; set; }
/// <summary>
/// 交易对手方编号
/// </summary>
public string ClientNumber { get; set; }
/// <summary>
/// 成交日期
/// </summary>
public string TradeDate { get; set; }
/// <summary>
/// 到期日期
/// </summary>
public string ExerciseDate { get; set; }
/// <summary>
/// 交易备注
/// </summary>
public string Comments { get; set; }
/// <summary>
/// 日终结算价格
/// </summary>
public double SettlePrice { get; set; }
}
/// <summary>
/// (日终清算)场外期权持仓数据字段
/// </summary>
public class EodOptionPositionField : EodPositionField
{
#region----基本要素----
/// <summary>
/// 交易类型
/// </summary>
public string TradeType { get; set; }
/// <summary>
/// 结构类型
/// </summary>
public string StructureType { get; set; }
/// <summary>
/// 行权方式
/// </summary>
public string ExerciseMode { get; set; }
/// <summary>
/// 看涨看跌
/// </summary>
public string CallPut { get; set; }
/// <summary>
/// 结算日期
/// </summary>
public string SettlementDate { get; set; }
/// <summary>
///
/// </summary>
public string TradeSide { get; set; }
/// <summary>
///
/// </summary>
public string UnderlyingCode { get; set; }
/// <summary>
///
/// </summary>
public string UnderlyingName { get; set; }
/// <summary>
/// 期初标的价格
/// </summary>
public double InitSpotPrice { get; set; }
public string Strike { get; set; }
public string IsMoneynessOption { get; set; }
public string Premium { get; set; }
public string IsUsePremiumRate { get; set; }
/// <summary>
/// 初始预付金
/// </summary>
public double InitialMargin { get; set; }
/// <summary>
/// 有效成交数量
/// </summary>
public double TradeAmount { get; set; }
/// <summary>
/// 成交金额
/// </summary>
public double TradePrice { get; set; }
/// <summary>
/// 名义本金(成交)
/// </summary>
public double StockEqvNotional { get; set; }
/// <summary>
/// 实际名义本金(成交)
/// </summary>
public double StockEqvNotionalReal { get; set; }
public string IsAnnualized { get; set; }
public string AnnualizeFactor { get; set; }
public string PrincipalRate { get; set; }
public string ParticipationRate { get; set; }
public string NoRiskRate { get; set; }
public string DividendRate { get; set; }
public string TradeOpenVolatility { get; set; }
public string TradeCloseVolatility { get; set; }
/// <summary>
/// 平滑过渡天数
/// </summary>
public int NumOfSmoothingDays { get; set; }
#endregion
#region----亚式期权----
/// <summary>
/// 均价起算日 格式:yyyy-MM-dd
/// </summary>
public string AsianAveragingPeriodStartDate { get; set; }
/// <summary>
/// 均价计算方式(算术平均|几何平均|算术平均(离散)|增强算术平均)
/// </summary>
public string AsianPayoffType { get; set; }
/// <summary>
/// 行权价类型(固定行权价|浮动行权价|分段式)
/// </summary>
public string AsianStrikeType { get; set; }
/// <summary>
/// 杠杆率(百分数)
/// </summary>
public string AsianStrikeGearingFactor { get; set; }
#endregion
#region----障碍期权----
/// <summary>
/// 障碍类型(上升敲入|上升敲出|下降敲入|下降敲出|双障碍敲入|双障碍敲出)
/// </summary>
public string BarrierType { get; set; }
/// <summary>
/// 障碍价格 IsMoneynessOption等于‘是’时为百分数,否则为绝对数值
/// </summary>
public string BarrierPrice { get; set; }
/// <summary>
/// 高障碍价格 IsMoneynessOption等于‘是’时为百分数,否则为绝对数值
/// </summary>
public string BarrierPriceHigh { get; set; }
/// <summary>
/// 障碍偏移
/// </summary>
public double? BarrierShift { get; set; }
/// <summary>
/// 补偿金额 IsUsePremiumRate等于‘是’时为百分数,否则为绝对数值
/// </summary>
public string BarrierRebate { get; set; }
/// <summary>
/// 补偿支付方式(立即|递延)
/// </summary>
public string BarrierRebateType { get; set; }
/// <summary>
/// 观察方式(离散|连续)
/// </summary>
public string BarrierDiscrete { get; set; }
/// <summary>
/// 敲入敲出状态(观察中|已敲入|已敲出)
/// </summary>
public string BarrierKnockInOutStatus { get; set; }
/// <summary>
/// 敲入敲出日期(格式:yyyy-MM-dd)
/// </summary>
public string BarrierKnockInOutDate { get; set; }
#endregion
#region----双鲨期权----
/// <summary>
/// 低障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string DbSharkBarrierLow { get; set; }
/// <summary>
/// 高障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string DbSharkBarrierHigh { get; set; }
/// <summary>
/// 高行权价(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string DbSharkStrikeHigh { get; set; }
/// <summary>
/// 高参与率(百分数)
/// </summary>
public string DbSharkCallParticipationRate { get; set; }
/// <summary>
/// 低参与率(百分数)
/// </summary>
public string DbSharkPutParticipationRate { get; set; }
/// <summary>
/// 补偿金额(IsUsePremiumRate等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string DbSharkRebate { get; set; }
/// <summary>
/// 高障碍补偿金额(IsUsePremiumRate等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string DbSharkRebateHigh { get; set; }
/// <summary>
/// 补偿支付方式(立即|递延)
/// </summary>
public string DbSharkRebateType { get; set; }
/// <summary>
/// 观察方式(离散|连续)
/// </summary>
public string DbSharkDiscrete { get; set; }
/// <summary>
/// 敲入敲出状态 观察中|已敲入|已敲出
/// </summary>
public string DbsharkKnockInOutStatus { get; set; }
/// <summary>
/// 敲入敲出日期 格式:yyyy-MM-dd
/// </summary>
public string DbsharkKnockInOutDate { get; set; }
#endregion
#region----二元期权----
/// <summary>
/// 二元类型 "欧式期权: CashOrNothing|AssetOrNothing
/// 美式期权: UpOneTouch|DownOneTouch|UpNoTouch|DownNoTouch|DoubleOneTouch|DoubleNoTouch"
/// </summary>
public string BinaryPayoffType { get; set; }
/// <summary>
/// 高障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string BinaryUpperBarrier { get; set; }
/// <summary>
/// 补偿金额(IsUsePremiumRate等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string BinaryCashOrNothingAmount { get; set; }
/// <summary>
/// 高障碍补偿金额(IsUsePremiumRate等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string BinaryCashOrNothingAmountHigh { get; set; }
/// <summary>
/// 观察方式(离散|连续)
/// </summary>
public string BinaryMonitorType { get; set; }
/// <summary>
/// 补偿支付方式(立即|递延)
/// </summary>
public string BinaryRebateType { get; set; }
#endregion
#region----区间累积期权----
/// <summary>
/// 区间下限(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string RangeAccrualLowerRange { get; set; }
/// <summary>
/// 区间上限(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string RangeAccrualUpperRange { get; set; }
/// <summary>
/// 区间收益(百分数)
/// </summary>
public string RangeAccrualBonusRate { get; set; }
#endregion
#region----气囊结构----
/// <summary>
/// 障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AirbagBarrier { get; set; }
/// <summary>
/// 是否离散观察(是|否)
/// </summary>
public string AirbagIsDiscrete { get; set; }
/// <summary>
/// 敲入参与率(百分数)
/// </summary>
public string AirbagKIParticipationRate { get; set; }
/// <summary>
/// 收益封顶(是|否)
/// </summary>
public string AirbagHasPayoffLimit { get; set; }
/// <summary>
/// 收益封顶价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AirbagHighStrike { get; set; }
//收益增强结构
/// <summary>
/// 年化增强收益(百分数)
/// </summary>
public string AnnualizedEnhanceRate { get; set; }
#endregion
#region----凤凰期权----
/// <summary>
/// 票息年化(是|否)
/// </summary>
public string AutocallIsAnnualizedCoupon { get; set; }
/// <summary>
/// 票息率(百分数)
/// </summary>
public string AutocallCoupon { get; set; }
/// <summary>
/// 票息障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AutocallCouponBarrier { get; set; }
/// <summary>
/// 票息结算方式(产生时支付|敲出时支付|期末支付)
/// </summary>
public string AutocallCouponPayType { get; set; }
/// <summary>
/// 敲出障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AutocallKOBarrier { get; set; }
/// <summary>
/// 敲入障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AutocallKIBarrier { get; set; }
/// <summary>
/// 敲入到期是否支付票息(是|否)
/// </summary>
public string AutocallIncludeCouponAfterKI { get; set; }
/// <summary>
/// 敲入到期支付类别(无|敲入转期权|敲入转价差期权)
/// </summary>
public string AutocallKIPayoffType { get; set; }
/// <summary>
/// 敲入行权价1(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AutocallKIStrike1 { get; set; }
/// <summary>
/// 敲入行权价2(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AutocallKIStrike2 { get; set; }
/// <summary>
/// 敲入敲出状态 观察中|已敲入|已敲出
/// </summary>
public string AutocallKnockInOutStatus { get; set; }
/// <summary>
/// 敲入敲出日期 格式:yyyy-MM-dd
/// </summary>
public string AutocallKnockInOutDate { get; set; }
#endregion
#region----雪球期权----
/// <summary>
/// 敲出障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string SnowballKOBarrier { get; set; }
/// <summary>
/// 敲出赔付类别(票息补偿|敲出转期权|敲出转价差期权)
/// </summary>
public string SnowballKOPayoffType { get; set; }
/// <summary>
/// 票息年化(是|否, SnowballKOPayoffType等于‘票息补偿’时有值)
/// </summary>
public string SnowballIsAnnualizedCoupon { get; set; }
/// <summary>
/// 票息率(百分数, SnowballKOPayoffType等于‘票息补偿’时有值)
/// </summary>
public string SnowballKORebate { get; set; }
/// <summary>
/// 年化期权费率(百分数, SnowballKOPayoffType等于‘票息补偿’时有值)
/// </summary>
public string SnowballAnnualizedPremiumRate { get; set; }
/// <summary>
/// 票息支付日期(以逗号分隔的日期序列)
/// </summary>
public string SnowballKOObservationSettleDates { get; set; }
/// <summary>
/// 敲出行权价1(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值, SnowballKOPayoffType等于‘票息补偿’或‘敲出转价差期权’时有值)
/// </summary>
public string SnowballKOStrike1 { get; set; }
/// <summary>
/// 敲出行权价2(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值, SnowballKOPayoffType等于‘敲出转价差期权’时有值)
/// </summary>
public string SnowballKOStrike2 { get; set; }
/// <summary>
/// 敲出支付方式(立即|期末)
/// </summary>
public string SnowballKORebateType { get; set; }
/// <summary>
/// 敲入障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string SnowballKIBarrier { get; set; }
/// <summary>
/// 敲入到期支付类别(无|敲入转期权|敲入转价差期权)
/// </summary>
public string SnowballKIPayoffType { get; set; }
/// <summary>
/// 敲入行权价1(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值, SnowballKIPayoffType等于‘票息补偿’或‘敲出转价差期权’时有值)
/// </summary>
public string SnowballKIStrike1 { get; set; }
/// <summary>
/// 敲入行权价2(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值, SnowballKIPayoffType等于‘敲出转价差期权’时有值)
/// </summary>
public string SnowballKIStrike2 { get; set; }
/// <summary>
/// 非敲入到期支付票息(百分数)
/// </summary>
public string SnowballNoKICoupon { get; set; }
/// <summary>
/// 敲入敲出状态 观察中|已敲入|已敲出
/// </summary>
public string SnowballKnockInOutStatus { get; set; }
/// <summary>
/// 敲入敲出日期 格式:yyyy-MM-dd
/// </summary>
public string SnowballKnockInOutDate { get; set; }
#endregion
#region----自定义交易----
/// <summary>
/// 自定义结构类型
/// </summary>
public string StructureTypeSpec { get; set; }
/// <summary>
/// 自定义结构说明
/// </summary>
public string StructureIntroduction { get; set; }
/// <summary>
/// 交易扩展信息
/// </summary>
public string ExtendInfo { get; set; }
#endregion
#region----累计期权----
/// <summary>
/// 敲出障碍价格(IsMoneynessOption等于‘是’时为百分数,否则为绝对数值)
/// </summary>
public string AccumulatorKOBarrier { get; set; }
/// <summary>
/// 上端收益类型 浮动|固定
/// </summary>
public string AccumulatorPayoffType { get; set; }
/// <summary>
/// 票息 带'%'后缀的为百分比格式的票息率方式,否则为单份票息金额方式,'上端收益类型'为‘票息’时适用
/// </summary>
public string AccumulatorCoupon { get; set; }
/// <summary>
/// 票息年化 是|否,为'否'时票息年化,'上端收益类型'为‘票息’时适用
/// </summary>
public string AccumulatorIsAnnualizedCoupon { get; set; }
/// <summary>
/// 票息日历规则,为空时则默认为Act365
/// </summary>
public string AccumulatorCouponDayCount { get; set; }
/// <summary>
/// 杠杆倍数
/// </summary>
public double? AccumulatorMultiplier { get; set; }
/// <summary>
/// 敲出是否终止 是|否
/// </summary>
public string AccumulatorEarlyTerminate { get; set; }
/// <summary>
/// 结算方式 现金结算(当日)|现金结算(期末)|实物交割
/// </summary>
public string AccumulatorSettlementMode { get; set; }
/// <summary>
/// 累计类型 子弹|空值
/// </summary>
public string AccumulatorAccumuType { get; set; }
#endregion
#region----敲入敲出观察----
/// <summary>
/// 观察频率 以逗号分隔的日期序列,适用于:障碍期权,
/// </summary>
public string ObservationDates { get; set; }
/// <summary>
/// 敲出观察频率 以逗号分隔的日期序列,适用于:障碍期权,
/// </summary>
public string KOObservationDates { get; set; }
/// <summary>
/// 敲入观察频率 以逗号分隔的日期序列,适用于:障碍期权,
/// </summary>
public string KIObservationDates { get; set; }
#endregion
#region----持仓信息----
/// <summary>
/// 持仓数量
/// </summary>
public double PositionTradeAmount { get; set; }
/// <summary>
/// 持仓市值
/// </summary>
public double PositionPv { get; set; }
/// <summary>
/// 持仓盈亏
/// </summary>
public double PositionPnl { get; set; }
/// <summary>
/// 持仓波动率(百分数)
/// </summary>
public string PositionVol { get; set; }
/// <summary>
/// 当日盈亏
/// </summary>
public double DailyPnl { get; set; }
#endregion
#region----风险信息----
/// <summary>
/// 持仓Delta
/// </summary>
public double Delta { get; set; }
public double DeltaInLots { get; set; }
/// <summary>
/// 持仓Gamma
/// </summary>
public double Gamma { get; set; }
/// <summary>
/// 持仓Vega
/// </summary>
public double Vega { get; set; }
/// <summary>
/// 持仓Theta
/// </summary>
public double Theta { get; set; }
/// <summary>
/// 持仓Rho
/// </summary>
public double Rho { get; set; }
/// <summary>
///
/// </summary>
public double DeltaCash { get; set; }
/// <summary>
///
/// </summary>
public double GammaCash { get; set; }
/// <summary>
///
/// </summary>
public double VegaCash { get; set; }
#endregion
}
/// <summary>
/// (日终清算)场内期权持仓数据字段
/// </summary>
public class EodExOptionPositionFields
{
public string OptionCode { get; set; }
public string UnderlyingCode { get; set; }
public string ExerciseMode { get; set; }
public string Strike { get; set; }
public string PositionType { get; set; }
public string PositionTradeAmount { get; set; }
public string PositionPv { get; set; }
public string PositionPnl { get; set; }
public string PositionVol { get; set; }
}
/// <summary>
/// (日终清算)收益互换持仓数据字段
/// </summary>
public class EodPayOffSwapPositionField : EodPositionField
{
/// <summary>
/// 结构类型
/// </summary>
public string StructureType { get; set; }
/// <summary>
/// 名义本金
/// </summary>
public double StockEqvNotional { get; set; }
/// <summary>
/// [收取]浮动收益(是|否)
/// </summary>
public string IsGetFloatingProfit { get; set; }
/// <summary>
/// [收取]标的代码
/// </summary>
public string GetUnderlyingCode { get; set; }
/// <summary>
/// [收取]多头空头(多头|空头)
/// </summary>
public string GetLongShort { get; set; }
/// <summary>
/// [收取]标的期初价格
/// </summary>
public double? GetSpotPrice { get; set; }
/// <summary>
/// [收取]交易费用
/// </summary>
public double? GetTradePrice { get; set; }
/// <summary>
/// [收取]初始预付金率(百分数)
/// </summary>
public string GetMarginRate { get; set; }
/// <summary>
/// [收取]固定收益
/// </summary>
public double? GetFixedProfit { get; set; }
/// <summary>
/// [支付]浮动收益(是|否)
/// </summary>
public string IsPayFloatingProfit { get; set; }
/// <summary>
/// [支付]标的代码
/// </summary>
public string PayUnderlyingCode { get; set; }
/// <summary>
/// [支付]多头空头(多头|空头)
/// </summary>
public string PayLongShort { get; set; }
/// <summary>
/// [支付]标的期初价格
/// </summary>
public double? PaySpotPrice { get; set; }
/// <summary>
/// [支付]交易费用
/// </summary>
public double? PayTradePrice { get; set; }
/// <summary>
/// [支付]固定收益
/// </summary>
public double? PayFixedProfit { get; set; }
/// <summary>
/// [支付]初始预付金率(百分数)
/// </summary>
public string PayMarginRate { get; set; }
//持仓信息
/// <summary>
/// 持仓名义本金
/// </summary>
public double PositionStockEqvNotional { get; set; }
/// <summary>
/// 持仓市值
/// </summary>
public double PositionPv { get; set; }
/// <summary>
/// 持仓盈亏
/// </summary>
public double PositionPnl { get; set; }
/// <summary>
/// 当日盈亏
/// </summary>
public double DailyPnl { get; set; }
}
/// <summary>
/// (日终清算)远期持仓数据字段
/// </summary>
public class EodForwardPositionField : EodPositionField
{
/// <summary>
/// 结构类型
/// </summary>
public string StructureType { get; set; }
/// <summary>
/// 标的代码
/// </summary>
public string UnderlyingCode { get; set; }
/// <summary>
/// 标的名称
/// </summary>
public string UnderlyingName { get; set; }
/// <summary>
/// 挂钩标的
/// </summary>
public string BasisUnderlyingCode { get; set; }
/// <summary>
/// 基差
/// </summary>
public double? BasisGap { get; set; }
/// <summary>
/// 交易方向(买入|卖出)
/// </summary>
public string TradeSide { get; set; }
/// <summary>
/// 多头空头(多头|空头)
/// </summary>
public string CallPut { get; set; }
/// <summary>
/// 成交数量
/// </summary>
public double TradeAmount { get; set; }
/// <summary>
/// 交割价格
/// </summary>
public double Strike { get; set; }
/// <summary>
/// 期初标的价格
/// </summary>
public double InitSpotPrice { get; set; }
/// <summary>
/// 开仓费用(每手单价)
/// </summary>
public double OpenFee { get; set; }
/// <summary>
/// 开仓总费用
/// </summary>
public double TotalFee { get; set; }
/// <summary>
/// 年化预付金成本率(百分数)
/// </summary>
public string AnnualMarginRate { get; set; }
/// <summary>
/// 年化仓储成本(单价)
/// </summary>
public double AnnualStoragePrice { get; set; }
/// <summary>
/// 无风险利率(百分数)
/// </summary>
public string NoRiskRate { get; set; }
/// <summary>
/// 均价结算设置
/// </summary>
public string ObservationDates { get; set; }
/// <summary>
/// 持仓数量
/// </summary>
public double PositionTradeAmount { get; set; }
/// <summary>
/// 持仓市值
/// </summary>
public double PositionPv { get; set; }
/// <summary>
/// 持仓盈亏
/// </summary>
public double PositionPnl { get; set; }
/// <summary>
/// 当日盈亏
/// </summary>
public double DailyPnl { get; set; }
public double CountRatio { get; set; }
}
public class ClientSettleBalancesSumInfo
{
public double WinLossSum { get; set; }
public double TdWinLossSum { get; set; }
public double PositionPnlSum { get; set; }
}
}