using BaseOUDAL; using YLErp.Commons; using YLErp.Helpers; using YLErp.Modules; namespace YLErp.Model { public class EodPositionRisksDTO { public int id { get; set; } public bool? IsUsePremiumRate { get; set; } public double? PremiumRate { get; set; } public double? Notional { get; set; } public double? TradeAmount { get { return Notional / DataCacheProvider.GetUnderlyingDataSource().GetCountRatio(UnderlyingCode); } } public double UnderlyingPrice { get; set; } public int UnderlyingId { get; set; } public int? VarietyId { get; set; } public string EncryptTradeId { get { return DataProtectHelper.Encrypt(id); } } public string IsMoneynessOption { get; set; } /// /// 主交易编号 /// public string ParentTradeNumber { get; set; } /// /// 确认书编号 /// public string ContractCode { get; set; } public string BuySell { get; set; } private string _tradeNumber; /// /// 多腿编号 /// public string TradeNumber { get { return _tradeNumber; } set { if (string.IsNullOrWhiteSpace(value)) { _tradeNumber = ""; } else { _tradeNumber = value; } } } public string ChildLeg { get; set; } public string HedgeUniqueCode { get; set; } public int ParentTradeId { get; set; } public string TradeStatus { get; set; } public DateTime? ExerciseDate { get; set; } public DateTime? SettlementDate { get; set; } public int SettlementFlag { get; set; } public string ExerciseMode { get; set; } public string TradeType { get; set; } public string StructureType { get; set; } public string ClientName { get; set; } public string ClientNumber { get; set; } public string AssetBookName { get; set; } public DateTime? TradeDate { get; set; } public string OptionType { get; set; } public string UnderlyingCode { get; set; } public string UnderlyingAssetName { get; set; } public string UnderlyingVariety { get; set; } public double? InitialSpotPrice { get; set; } /// /// 保底收益总额 /// public double? OriginalPrincipalSum { get; set; } public double? Strike { get; set; } public double? TradeSinglePrice { get; set; } public double? TradePrice { get; set; } public double? etcTradePrice { get; set; } public double? StockEqvNotional { get; set; } internal double? StockEqvNotionalMax { set; get; } public double? OriginalStockEqvNotional { get { return PS.Config.ErpElement.UseStockEqvNotionalMax && StockEqvNotionalMax > 0 ? StockEqvNotionalMax : _originalStockEqvNotional; } set { _originalStockEqvNotional = value; } } public double? StockEqvNotionalToShow { get { if (ConsTrade.TradeTypesForHedge.Contains(TradeType)) { return OtcFormatHelper.FormatValue(StockEqvNotional ?? 0, 2); } if (PS.Config.ComponentVersion == Configuration.ComponentVersion.Broker) { return OtcFormatHelper.FormatValue(StockEqvNotional ?? 0, 2); } return OtcFormatHelper.FormatValue(OriginalStockEqvNotional, 2); } } public double? TradeOriginalAmount { get; set; } public double? OriginalNotional { get; set; } public int IsGroup { get; set; } public double? SinglePV { get; set; } public double? PV { get; set; } public double? RoundedPV { get; set; } public double? PositionPnl { get; set; } public double? RoundedPositionPnl { get; set; } public double RealizedPnl { get; set; } public double dailyPnl { get; set; } public double? CurrentVolatility { get; set; } public string ExchangeOptionCode { get; set; } public double? Delta { get; set; } public double? DeltaCash { get; set; } public double? DeltaLots { get; set; } public double? Gamma { get; set; } public double? GammaCash { get; set; } public double? GammaLots { get; set; } public double? Theta { get; set; } public double? Rho { get; set; } public double? Vega { get; set; } public double? VegaCash { get; set; } /// /// 无风险利率 /// public double RiskFreeRate { get; set; } /// /// 分红率 /// public double DividendRate { get; set; } /// /// Delta_R /// public double? Delta_r { get; set; } public double? Delta_r_1bp { get; set; } public double? Dv01 { get; set; } public double? Gamma_r { get; set; } public double? Gamma_r_1bp { get; set; } public double? Vega_r { get; set; } public double? Vega_r_1bp { get; set; } public double? Vega_1bp { get; set; } /// /// 维持预付金 /// public double? Margin { get; set; } /// /// 广期想查看 /// public double? Spv1 { get; set; } public double? Spv2 { get; set; } public double? Spv3 { get; set; } /// /// 敞口 /// public double? Exposure { get; set; } /// /// 观察状态 /// public string KnockInOutStatus { get; set; } /// /// 交易员 /// public string TraderName { get; set; } /// /// 初始预付金 /// public double? InitMargin { get; set; } /// /// 持仓初始预付金 = 初始预付金 *持仓数量/开仓数量 /// public double? PosiInitMargin { get; set; } [NonSerialized] public string TradeJson; private trade _trade = null; private double? _originalStockEqvNotional; public trade trade { get { if (_trade != null) { return _trade.IsDefault() ? trade.Default : _trade; } if (!string.IsNullOrEmpty(TradeJson)) { try { _trade = TradeHelper2.Deserialize(TradeJson); } catch (Exception e) { LogFactory.GetLogger().Error("EodTrade Trade", e); } } else { _trade = trade.Default; } return _trade; } set { _trade = value; } } #region ----二元---- /// /// 二元类型 /// public string PayoffType { get; set; } /// /// 补偿金额 /// public double? CashOrNothingAmount { get; set; } /// /// 补偿金额比率 /// public double? CashOrNothingAmountRate { get; set; } /// /// 观察方式 /// public string MonitorType { get; set; } /// /// 是否离散观察 /// public string IsDiscreteMonitored { get { if (string.IsNullOrWhiteSpace(MonitorType)) { return string.Empty; } return MonitorType == "离散" ? "是" : "否"; } } /// /// 补偿方式 /// public string RebateType { get; set; } #endregion #region ----亚式---- public string StrikeType { get; set; } /// /// 均价起算日 /// public DateTime? AveragingPeriodStartDate { get; set; } public string PayoffType2 { get; set; } /// /// 参与率 /// public double? ParticipationRate { get; set; } /// /// 杠杆率 /// public double? StrikeGearingFactor { get; set; } /// /// 增强价格 /// public double EnhancedPrice { get; set; } #endregion #region public double? ParticipationRate2 { get; set; } public double? ParticipationRate3 { get; set; } #endregion #region ----障碍---- /// /// 障碍类型 /// public string BarrierType { get; set; } /// /// 观察类型 /// public string Discrete { get; set; } /// /// 障碍价格 /// public double? BarrierPrice { get; set; } /// /// 高障碍价格 /// public double? UpperBarrierPrice { get; set; } public double? RebateRate { get; set; } /// /// 补偿金额 /// public double? Rebate { get; set; } /// /// 高障碍补偿金额 /// public double? RebateHigh { get; set; } /// /// 高障碍补偿金额 /// public double? RebateHighRate { get; set; } /// /// 障碍偏移 /// public double? BarrierShift { get; set; } public string RebateType3 { get; set; } #endregion #region----盈亏分解---- public double? PnLDelta { get; set; } public double? PnLGamma { get; set; } public double? PnLVega { get; set; } public double? PnLTheta { get; set; } public double? PnLPsi { get; set; } #endregion /// /// /// public int? CountRatio { get; set; } /// /// 存续名义本金 /// public double? SurvivingNominalPrincipal { get; internal set; } public string GroupName { get; set; } /// /// 累计期权 类型(标准,三段式) /// public string AccumulatorStructureTypeStr { get; internal set; } /// /// 累计三段式 risk 执行价格2 /// public double? Strike2 { get; internal set; } /// /// 累计三段式 risk 执行价格3 /// public double? Strike3 { get; internal set; } /// /// 备注 /// public string Comments { get; set; } } /// /// 日终持仓风险 /// public class EodPositionRisksReq : BaseSearchReq, IClonable { /// /// 开始时间 /// public DateTime StartDate { get; set; } /// /// 结算日 /// public DateTime ValueDate { get; set; } /// /// 交易编号 /// public string TradeNumber { get; set; } /// /// 是否仅仅导出 /// public bool IsOnlyExport { get; set; } /// /// 簿记账户信息 /// public List BookIds { get; set; } public IEnumerable AssetIdGroupList { get; set; } public IEnumerable TradeTypes { get; set; } public IEnumerable VarietyIds { get; set; } public IEnumerable UnderlyingIds { get; set; } /// /// 正数代表tradeId;负数代表eod_trade_position的id /// public IEnumerable TradeIds { get; set; } public List ClientIds { get; set; } public DateTime? SettlementDateStart { get; set; } public DateTime? SettlementDateEnd { get; set; } public IEnumerable SettlementFlags { get; set; } /// /// 标的价格类型 /// public string EodSettlePriceMode { get; set; } /// /// 波动率类型 /// public string VolType { get; set; } /// /// 分红率类型 /// public string DividendRateType { get; set; } /// /// 是否需要eod结算时的数据 /// public bool needSettleData { get; set; } /// /// 是否只查询场外期权交易,组合交易按照主交易展示 /// public bool IsParentTrade { get; set; } public List UserAssets { get; set; } public List UserClients { get; set; } public List GroupNamesList { get { return (GroupNames + "").Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList(); } } public string GroupNames { get; set; } public List CurUserTradeIds { get; set; } /// /// 标签值 /// public List TagIds { get; set; } public EodPositionRisksReq Clone() { return (EodPositionRisksReq)MemberwiseClone(); } } }