1262 lines
33 KiB
C#
1262 lines
33 KiB
C#
using System.ComponentModel.DataAnnotations.Schema;
|
|
using YLErp.Commons;
|
|
|
|
namespace YLErp.Modules.SuperviseReportModule.CFMMC2022.Model
|
|
{
|
|
public abstract class SuperviseReportBaseModel
|
|
{
|
|
/// <summary>
|
|
/// 交易对手方2名称
|
|
/// </summary>
|
|
public string ClientName { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易对手方2的统一社会信用代码
|
|
/// </summary>
|
|
public string ClientLicenseCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易对手方2的LEI
|
|
/// </summary>
|
|
public string ClientLEI { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// 主协议类型
|
|
/// </summary>
|
|
public string ProtocalType { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// 主协议日期
|
|
/// </summary>
|
|
public DateTime? ProtocolSignDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 生效日
|
|
/// </summary>
|
|
public string ProtocolSignDateString
|
|
{
|
|
get
|
|
{
|
|
return ProtocolSignDate == null ? null : ProtocolSignDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 是否中央对手方清算
|
|
/// </summary>
|
|
public string IsCentralClearingPlatform { get; set; }
|
|
|
|
/// <summary>
|
|
/// 中央清算平台名称
|
|
/// </summary>
|
|
public string CentralClearingPlatform { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易平台
|
|
/// </summary>
|
|
public string TradePlatform { get; set; }
|
|
|
|
/// <summary>
|
|
/// 持仓编号
|
|
/// </summary>
|
|
public string PositionCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 多腿编号
|
|
/// </summary>
|
|
public string MoreLegCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 生效日
|
|
/// </summary>
|
|
public DateTime? StartDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 生效日
|
|
/// </summary>
|
|
public string StartDateString
|
|
{
|
|
get
|
|
{
|
|
return StartDate == null ? null : StartDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 到期日
|
|
/// </summary>
|
|
public DateTime? EndDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 到期日
|
|
/// </summary>
|
|
public string EndDateString
|
|
{
|
|
get
|
|
{
|
|
return EndDate == null ? null : EndDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 提前终止日期
|
|
/// </summary>
|
|
public DateTime? UnWindDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 提前终止日期
|
|
/// </summary>
|
|
public string UnWindDateString
|
|
{
|
|
get
|
|
{
|
|
return UnWindDate == null ? null : UnWindDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 成交编号
|
|
/// </summary>
|
|
public string TradeNumber { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易确认时间
|
|
/// </summary>
|
|
public DateTime? TradeDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易确认时间
|
|
/// </summary>
|
|
public string TradeDateString
|
|
{
|
|
get
|
|
{
|
|
return TradeDate == null ? null : TradeDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 资产类型
|
|
/// </summary>
|
|
public string VarietyType { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// 交易对手方1方向 (1.针对期权和远期交易:B:买方S:卖方 2.针对互换交易:P:payer,即付固定、收浮动方 R:receiver,即收固定、付浮动方)
|
|
/// </summary>
|
|
public string ClientDirection { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标的资产所属板块
|
|
/// </summary>
|
|
public string UnderlyingPlate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 买入卖出
|
|
/// </summary>
|
|
public string BuySell { get; set; }
|
|
|
|
/// <summary>
|
|
/// 工具类型
|
|
/// </summary>
|
|
public string ToolType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 期权行权时间类型
|
|
/// </summary>
|
|
public string ExerciseMode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 期权权利类型
|
|
/// </summary>
|
|
public string OptionType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易类型
|
|
/// </summary>
|
|
public string TradeType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 结构化交易中的组合类型
|
|
/// <para>确定产品结构时使用</para>
|
|
/// </summary>
|
|
public string StructureType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 二元期权PayoffType
|
|
/// <para>确定产品结构时使用</para>
|
|
/// </summary>
|
|
public string PayoffType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标的资产品种
|
|
/// </summary>
|
|
public string VarietyCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标的资产对应合约
|
|
/// </summary>
|
|
public string UnderlyingCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标的期初价格
|
|
/// </summary>
|
|
public string UnderlyingInitialPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标的期初价格货币
|
|
/// </summary>
|
|
public string UnderlyingInitialPriceCurrency { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// 标的期初价格符号
|
|
/// </summary>
|
|
public string UnderlyingInitialPriceSymbol { get; set; }
|
|
|
|
/// <summary>
|
|
/// 平仓或终止时的标的价格
|
|
/// </summary>
|
|
public string ClosedUnderlyingPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// 数量单位En
|
|
/// </summary>
|
|
public string QuoteUnitEn { get; set; }
|
|
|
|
/// <summary>
|
|
/// 执行价格1
|
|
/// </summary>
|
|
private double? _strike;
|
|
/// <summary>
|
|
/// 执行价格1
|
|
/// </summary>
|
|
public double? Strike
|
|
{
|
|
get
|
|
{
|
|
return _strike;
|
|
}
|
|
set
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
_strike = OtcFormatHelper.FormatValue(value, 2);
|
|
}
|
|
else
|
|
{
|
|
_strike = OtcFormatHelper.FormatValue(value, 4);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
public string StrikeString
|
|
{
|
|
get
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
return Strike == null ? null : Strike.Value.ToString("0.##");
|
|
}
|
|
else
|
|
{
|
|
return Strike == null ? null : Strike.Value.ToString("0.####");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private double? _strike2;
|
|
/// <summary>
|
|
/// 执行价格2
|
|
/// </summary>
|
|
public double? Strike2
|
|
{
|
|
get
|
|
{
|
|
return _strike2;
|
|
}
|
|
set
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
_strike2 = OtcFormatHelper.FormatValue(value, 2);
|
|
}
|
|
else
|
|
{
|
|
_strike2 = OtcFormatHelper.FormatValue(value, 4);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行价格2
|
|
/// </summary>
|
|
public string Strike2String
|
|
{
|
|
get
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
return Strike2 == null ? null : Strike2.Value.ToString("0.##");
|
|
}
|
|
else
|
|
{
|
|
return Strike2 == null ? null : Strike2.Value.ToString("0.####");
|
|
}
|
|
}
|
|
}
|
|
|
|
private double? _strike3;
|
|
/// <summary>
|
|
/// 执行价格3
|
|
/// </summary>
|
|
public double? Strike3
|
|
{
|
|
get
|
|
{
|
|
return _strike3;
|
|
}
|
|
set
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
_strike3 = OtcFormatHelper.FormatValue(value, 2);
|
|
}
|
|
else
|
|
{
|
|
_strike3 = OtcFormatHelper.FormatValue(value, 6);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行价格3
|
|
/// </summary>
|
|
public string Strike3String
|
|
{
|
|
get
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
return Strike3 == null ? null : Strike3.Value.ToString("0.##");
|
|
}
|
|
else
|
|
{
|
|
return Strike3 == null ? null : Strike3.Value.ToString("0.######");
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行价格货币
|
|
/// </summary>
|
|
public string StrikeCurrency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 执行价格符号
|
|
/// </summary>
|
|
public string StrikeSymbol { get; set; }
|
|
|
|
/// <summary>
|
|
/// 观察类型
|
|
/// </summary>
|
|
public string ObserveType { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// 观察起始日
|
|
/// </summary>
|
|
public DateTime? ObserveStartDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 观察起始日
|
|
/// </summary>
|
|
public string ObserveStartDateString
|
|
{
|
|
get
|
|
{
|
|
return ObserveStartDate == null ? null : ObserveStartDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 观察结束日
|
|
/// </summary>
|
|
public DateTime? ObserveEndDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 观察结束日
|
|
/// </summary>
|
|
public string ObserveEndDateString
|
|
{
|
|
get
|
|
{
|
|
return ObserveEndDate == null ? null : ObserveEndDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 观察周期 DAIL:日度 WEEK:周度 MNTH:月度 YEAR:年度 Other:其他
|
|
/// </summary>
|
|
public string ObservationPeriod { get; set; }
|
|
|
|
public double? _observePeriodMultiplier { get; set; }
|
|
|
|
/// <summary>
|
|
/// 观察周期乘数
|
|
/// </summary>
|
|
public double? ObservePeriodMultiplier
|
|
{
|
|
get
|
|
{
|
|
return _observePeriodMultiplier > 0 ? _observePeriodMultiplier : null;
|
|
}
|
|
set
|
|
{
|
|
_observePeriodMultiplier = OtcFormatHelper.FormatValue(value, 0);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 观察周期乘数
|
|
/// </summary>
|
|
public decimal? ObservePeriodMultiplierString
|
|
{
|
|
get
|
|
{
|
|
if (ObservePeriodMultiplier != null)
|
|
{
|
|
return decimal.Parse(ObservePeriodMultiplier.Value.ToString());
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 收益计算方式
|
|
/// </summary>
|
|
public string RevenueCalculationMethod { get; set; }
|
|
|
|
/// <summary>
|
|
/// 保底收益
|
|
/// </summary>
|
|
public double? _guaranteedIncome { get; set; }
|
|
|
|
/// <summary>
|
|
/// 保底收益
|
|
/// </summary>
|
|
public double? GuaranteedIncome
|
|
{
|
|
get
|
|
{
|
|
return _guaranteedIncome;
|
|
}
|
|
set
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.东吴)
|
|
{
|
|
_guaranteedIncome = (value != null && value.Value != 0) ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(double?);
|
|
}
|
|
else
|
|
{
|
|
_guaranteedIncome = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(double?);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保底收益
|
|
/// </summary>
|
|
public decimal? GuaranteedIncomeString
|
|
{
|
|
get
|
|
{
|
|
return GuaranteedIncome == null ? default(decimal?) : decimal.Parse(GuaranteedIncome.Value.ToString("0.####"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保底收益货币
|
|
/// </summary>
|
|
public string GuaranteedIncomeCurrency
|
|
{
|
|
get => GuaranteedIncome == null ? string.Empty : _guaranteedIncomeCurrency;
|
|
set => _guaranteedIncomeCurrency = value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保底收益符号
|
|
/// </summary>
|
|
public string GuaranteedIncomeSymbol
|
|
{
|
|
get => GuaranteedIncome == null ? string.Empty : _guaranteedIncomeSymbol;
|
|
set => _guaranteedIncomeSymbol = value;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 行权收益1
|
|
/// </summary>
|
|
public double? _exerciseBenefits;
|
|
|
|
/// <summary>
|
|
/// 行权收益1
|
|
/// </summary>
|
|
public double? ExerciseBenefits
|
|
{
|
|
get
|
|
{
|
|
return _exerciseBenefits;
|
|
}
|
|
set
|
|
{
|
|
_exerciseBenefits = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 行权收益1
|
|
/// </summary>
|
|
public decimal? ExerciseBenefitsString
|
|
{
|
|
get
|
|
{
|
|
return ExerciseBenefits == null ? default(Nullable<decimal>) : decimal.Parse(ExerciseBenefits.Value.ToString("0.######"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 行权收益2
|
|
/// </summary>
|
|
public double? _exerciseBenefits2;
|
|
|
|
/// <summary>
|
|
/// 行权收益2
|
|
/// </summary>
|
|
public double? ExerciseBenefits2
|
|
{
|
|
get
|
|
{
|
|
return _exerciseBenefits2;
|
|
}
|
|
set
|
|
{
|
|
_exerciseBenefits2 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 行权收益2
|
|
/// </summary>
|
|
public decimal? ExerciseBenefits2String
|
|
{
|
|
get
|
|
{
|
|
return ExerciseBenefits2 == null ? default(Nullable<decimal>) : decimal.Parse(ExerciseBenefits2.Value.ToString("0.######"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 行权收益3
|
|
/// </summary>
|
|
public double? _exerciseBenefits3;
|
|
|
|
/// <summary>
|
|
/// 行权收益3
|
|
/// </summary>
|
|
public double? ExerciseBenefits3
|
|
{
|
|
get
|
|
{
|
|
return _exerciseBenefits3;
|
|
}
|
|
set
|
|
{
|
|
_exerciseBenefits3 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 行权收益3
|
|
/// </summary>
|
|
public decimal? ExerciseBenefits3String
|
|
{
|
|
get
|
|
{
|
|
return ExerciseBenefits3 == null ? default(Nullable<decimal>) : decimal.Parse(ExerciseBenefits3.Value.ToString("0.######"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 行权收益货币
|
|
/// </summary>
|
|
public string ExerciseBenefitsCurrency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 行权收益符号
|
|
/// </summary>
|
|
public string ExerciseBenefitsSymbol { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价1
|
|
/// </summary>
|
|
public double? _barriersPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价1
|
|
/// </summary>
|
|
public double? BarriersPrice
|
|
{
|
|
get
|
|
{
|
|
return _barriersPrice;
|
|
}
|
|
set
|
|
{
|
|
_barriersPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 障碍价1
|
|
/// </summary>
|
|
public string BarriersPriceString
|
|
{
|
|
get
|
|
{
|
|
return BarriersPrice == null ? null : BarriersPrice.Value.ToString("0.######");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 障碍价1触碰方向
|
|
/// </summary>
|
|
public string BarriersPriceTouchDirection { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价1类型
|
|
/// </summary>
|
|
public string BarriersPriceType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价2
|
|
/// </summary>
|
|
public double? _barriersPrice2 { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价2
|
|
/// </summary>
|
|
public double? BarriersPrice2
|
|
{
|
|
get
|
|
{
|
|
return _barriersPrice2;
|
|
}
|
|
set
|
|
{
|
|
_barriersPrice2 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 障碍价2
|
|
/// </summary>
|
|
public string BarriersPrice2String
|
|
{
|
|
get
|
|
{
|
|
return BarriersPrice2 == null ? null : BarriersPrice2.Value.ToString("0.######");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 障碍价2触碰方向
|
|
/// </summary>
|
|
public string BarriersPrice2TouchDirection { get; set; }
|
|
|
|
/// <summary>
|
|
/// 障碍价2类型
|
|
/// </summary>
|
|
public string BarriersPrice2Type { get; set; }
|
|
|
|
/// <summary>
|
|
/// 补偿收益1
|
|
/// </summary>
|
|
public double? _compensationIncome;
|
|
|
|
/// <summary>
|
|
/// 补偿收益1
|
|
/// </summary>
|
|
public double? CompensationIncome
|
|
{
|
|
get
|
|
{
|
|
return _compensationIncome;
|
|
}
|
|
set
|
|
{
|
|
_compensationIncome = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 补偿收益1
|
|
/// </summary>
|
|
public decimal? CompensationIncomeString
|
|
{
|
|
get
|
|
{
|
|
return CompensationIncome == null ? default(Nullable<decimal>) : decimal.Parse(CompensationIncome.Value.ToString("0.######"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 补偿收益2
|
|
/// </summary>
|
|
public double? _compensationIncome2;
|
|
|
|
/// <summary>
|
|
/// 补偿收益2
|
|
/// </summary>
|
|
public double? CompensationIncome2
|
|
{
|
|
get
|
|
{
|
|
return _compensationIncome2;
|
|
}
|
|
set
|
|
{
|
|
_compensationIncome2 = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 补偿收益2
|
|
/// </summary>
|
|
public decimal? CompensationIncome2String
|
|
{
|
|
get
|
|
{
|
|
return CompensationIncome2 == null ? default(Nullable<decimal>) : decimal.Parse(CompensationIncome2.Value.ToString("0.######"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 补偿收益货币
|
|
/// </summary>
|
|
public string CompensationIncomeCurrency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 补偿收益符号
|
|
/// </summary>
|
|
public string CompensationIncomeSymbol { get; set; }
|
|
|
|
/// <summary>
|
|
/// SA&PA-敲入障碍价
|
|
/// </summary>
|
|
public double? _knockInBarrierPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// SA&PA-敲入障碍价
|
|
/// </summary>
|
|
public double? KnockInBarrierPrice
|
|
{
|
|
get
|
|
{
|
|
return _knockInBarrierPrice;
|
|
}
|
|
set
|
|
{
|
|
_knockInBarrierPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// SA&PA-敲入障碍价
|
|
/// </summary>
|
|
public string KnockInBarrierPriceString
|
|
{
|
|
get
|
|
{
|
|
return KnockInBarrierPrice == null ? null : KnockInBarrierPrice.Value.ToString("0.######");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// SA&PA-敲入观察期
|
|
/// </summary>
|
|
public string KnockInObservationPeriod { get; set; }
|
|
|
|
/// <summary>
|
|
/// SA&PA-敲出障碍价
|
|
/// </summary>
|
|
public double? _knockOutBarrierPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// SA&PA-敲出障碍价
|
|
/// </summary>
|
|
public double? KnockOutBarrierPrice
|
|
{
|
|
get
|
|
{
|
|
return _knockOutBarrierPrice;
|
|
}
|
|
set
|
|
{
|
|
_knockOutBarrierPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// SA&PA-敲出障碍价
|
|
/// </summary>
|
|
public string KnockOutBarrierPriceString
|
|
{
|
|
get
|
|
{
|
|
return KnockOutBarrierPrice == null ? null : KnockOutBarrierPrice.Value.ToString("0.######");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// SA&PA-Coupon障碍价
|
|
/// </summary>
|
|
public double? _couponBarrierPrice { get; set; }
|
|
|
|
/// <summary>
|
|
///SA&PA-Coupon障碍价
|
|
/// </summary>
|
|
public double? CouponBarrierPrice
|
|
{
|
|
get
|
|
{
|
|
return _couponBarrierPrice;
|
|
}
|
|
set
|
|
{
|
|
_couponBarrierPrice = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// SA&PA-Coupon障碍价
|
|
/// </summary>
|
|
public string CouponBarrierPriceString
|
|
{
|
|
get
|
|
{
|
|
return CouponBarrierPrice == null ? null : CouponBarrierPrice.Value.ToString("0.######");
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// SA&PA-Coupon年化收益率
|
|
/// </summary>
|
|
public double? _couponAnnualRate { get; set; }
|
|
|
|
/// <summary>
|
|
///SA&PA-Coupon年化收益率
|
|
/// </summary>
|
|
public double? CouponAnnualRate
|
|
{
|
|
get
|
|
{
|
|
return _couponAnnualRate;
|
|
}
|
|
set
|
|
{
|
|
_couponAnnualRate = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 6)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
///SA&PA-Coupon年化收益率
|
|
/// </summary>
|
|
public decimal? CouponAnnualRateString
|
|
{
|
|
get
|
|
{
|
|
return CouponAnnualRate == null || double.IsInfinity(CouponAnnualRate ?? 0) ? default(Nullable<decimal>) : decimal.Parse(CouponAnnualRate.Value.ToString("0.######"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 远期价格
|
|
/// </summary>
|
|
public double? _forwardPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// 远期价格
|
|
/// </summary>
|
|
public double? ForwardPrice
|
|
{
|
|
get
|
|
{
|
|
return _forwardPrice;
|
|
}
|
|
set
|
|
{
|
|
_forwardPrice = value != null ? OtcFormatHelper.FormatValue(value.Value, 4) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 远期价格
|
|
/// </summary>
|
|
public string ForwardPriceString
|
|
{
|
|
get
|
|
{
|
|
return ForwardPrice == null ? null : ForwardPrice.Value.ToString("0.####");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 远期价格货币
|
|
/// </summary>
|
|
public string ForwardPriceCurrency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 远期价格符号
|
|
/// </summary>
|
|
public string ForwardPriceSymbol { get; set; }
|
|
|
|
/// <summary>
|
|
/// 固定收益
|
|
/// </summary>
|
|
public double? _fixedIncome { get; set; }
|
|
|
|
/// <summary>
|
|
/// 固定收益
|
|
/// </summary>
|
|
public double? FixedIncome
|
|
{
|
|
get
|
|
{
|
|
return _fixedIncome;
|
|
}
|
|
set
|
|
{
|
|
_fixedIncome = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 4)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 固定收益
|
|
/// </summary>
|
|
public decimal? FixedIncomeString
|
|
{
|
|
get
|
|
{
|
|
return FixedIncome == null ? default(Nullable<decimal>) : decimal.Parse(FixedIncome.Value.ToString("0.####"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 固定收益货币
|
|
/// </summary>
|
|
public string FixedIncomeCurrency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 固定收益符号
|
|
/// </summary>
|
|
public string FixedIncomeSymbol { get; set; }
|
|
|
|
/// <summary>
|
|
/// 浮动方方向
|
|
/// </summary>
|
|
public string FloatingDirection { get; set; }
|
|
|
|
/// <summary>
|
|
/// 支付周期
|
|
/// </summary>
|
|
public string PaymentCycle { get; set; }
|
|
|
|
/// <summary>
|
|
/// 支付周期乘数
|
|
/// </summary>
|
|
public double? _paymentCycleMultiplier { get; set; }
|
|
|
|
/// <summary>
|
|
/// 支付周期乘数
|
|
/// </summary>
|
|
public double? PaymentCycleMultiplier
|
|
{
|
|
get
|
|
{
|
|
return _paymentCycleMultiplier > 0 ? _paymentCycleMultiplier : null;
|
|
}
|
|
set
|
|
{
|
|
_paymentCycleMultiplier = value != null ? Math.Abs(OtcFormatHelper.FormatValue(value.Value, 4)) : default(Nullable<double>);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 支付周期乘数
|
|
/// </summary>
|
|
public string PaymentCycleMultiplierString
|
|
{
|
|
get
|
|
{
|
|
return PaymentCycleMultiplier == null ? null : PaymentCycleMultiplier.Value.ToString();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始名义金额
|
|
/// </summary>
|
|
public string InitialNominalAmount { get; set; }
|
|
|
|
private double? _foreignCurrencyRate;
|
|
/// <summary>
|
|
/// 外汇兑人民币期初汇率
|
|
/// </summary>
|
|
public double? ForeignCurrencyRate
|
|
{
|
|
get { return _foreignCurrencyRate; }
|
|
set { _foreignCurrencyRate = value.HasValue ? (double?)OtcFormatHelper.FormatValue(value ?? 0, 4) : null; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始名义数量
|
|
/// </summary>
|
|
public string InitialNominalNumber { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// 数量单位
|
|
/// </summary>
|
|
public string QuoteUnit { get; set; }
|
|
|
|
/// <summary>
|
|
/// 是否为年化名义金额
|
|
/// </summary>
|
|
public string IsAnnualizedNominalAmount { get; set; }
|
|
|
|
private double? _participateRate;
|
|
/// <summary>
|
|
/// 参与率
|
|
/// </summary>
|
|
public double? ParticipateRate
|
|
{
|
|
get { return _participateRate; }
|
|
set { _participateRate = OtcFormatHelper.FormatValue(value, 4); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 参与率
|
|
/// </summary>
|
|
public decimal? ParticipateRateString
|
|
{
|
|
get
|
|
{
|
|
return ParticipateRate == null ? default(Nullable<decimal>) : decimal.Parse(ParticipateRate.Value.ToString("0.####"));
|
|
}
|
|
}
|
|
|
|
|
|
public string DeltaCash { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
/// 结算方式
|
|
/// </summary>
|
|
public string SettlementMethod { get; set; }
|
|
|
|
/// <summary>
|
|
/// 最后结算日
|
|
/// </summary>
|
|
public DateTime? LastUnWindDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 最后结算日
|
|
/// </summary>
|
|
public string LastUnWindDateString
|
|
{
|
|
get
|
|
{
|
|
return LastUnWindDate == null ? null : LastUnWindDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 交易Id
|
|
/// </summary>
|
|
public int TradeId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易确认书编号
|
|
/// </summary>
|
|
public string ContractCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 行权日
|
|
/// </summary>
|
|
public DateTime? ExerciseDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 行权日
|
|
/// </summary>
|
|
public string ExerciseDateString
|
|
{
|
|
get
|
|
{
|
|
return ExerciseDate == null ? null : ExerciseDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 期权产品结构
|
|
/// </summary>
|
|
public string OptionProductStructure { get; set; }
|
|
|
|
|
|
|
|
#region 辅助属性
|
|
[NotMapped]
|
|
public DateTime? OptDate { get; set; }
|
|
|
|
|
|
[NotMapped]
|
|
public string OriginalTradeNumber { get; set; }
|
|
|
|
public trade _trade;
|
|
private string _guaranteedIncomeCurrency;
|
|
private string _guaranteedIncomeSymbol;
|
|
|
|
public trade originalTrade { get; set; }
|
|
[NotMapped]
|
|
public trade trade
|
|
{
|
|
get
|
|
{
|
|
try
|
|
{
|
|
if (_trade == null)
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(TradeJson))
|
|
{
|
|
_trade = trade.Deserialize(TradeJson);
|
|
}
|
|
else { _trade = originalTrade; }
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogFactory.GetLogger("NewSuperviseReportBaseModel").Error(ex);
|
|
}
|
|
return _trade;
|
|
}
|
|
}
|
|
|
|
[NotMapped]
|
|
public string TradeJson { get; set; }
|
|
|
|
///// <summary>
|
|
///// 报价单位比率
|
|
///// <para>通常情况下只有鸡蛋会是2</para>
|
|
///// </summary>
|
|
//[NotMapped]
|
|
//public int CountRatio { get; set; }
|
|
|
|
[NotMapped]
|
|
public string OriginalVarietyCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 平仓比例
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double? UnwindPercentRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 客户Id
|
|
/// </summary>
|
|
[NotMapped]
|
|
public int ClientId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 父交易Id
|
|
/// </summary>
|
|
[NotMapped]
|
|
public int? ParentTradeId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易状态
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string TradeStatus { get; set; }
|
|
|
|
public int IsGroup { get; set; }
|
|
|
|
public double? _delta { get; set; }
|
|
|
|
public double? _gamma { get; set; }
|
|
|
|
/// <summary>
|
|
/// 期权的资产类型
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string ProductType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 观察日列表,一个或多个日期字符串,日期之间以逗号分隔
|
|
/// 例如:2019-07-16,2019-08-16
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string ObservationDates { get; set; }
|
|
|
|
/// <summary>
|
|
/// 平仓或终止时的标的价格
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double? FinalPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// 自定义字段扩展
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string ExtendInfo { get; set; }
|
|
|
|
[NotMapped]
|
|
public class StructureDetailInfo
|
|
{
|
|
public string name { get; set; }
|
|
|
|
public string value { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 标的物几家货币
|
|
/// </summary>
|
|
public string QuoteCurrency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 报告当天日期
|
|
/// </summary>
|
|
public DateTime ValueDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 黑箱一年有效天数
|
|
/// </summary>
|
|
public string ValidDaysStr { get; set; }
|
|
|
|
[NotMapped]
|
|
public bool IsStock { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// 日终价格
|
|
/// </summary>
|
|
public double? _price { get; set; }
|
|
#endregion
|
|
}
|
|
}
|