387 lines
10 KiB
C#
387 lines
10 KiB
C#
using System.ComponentModel.DataAnnotations.Schema;
|
|
using YLErp.Commons;
|
|
|
|
namespace YLErp.Modules.SuperviseReportModule.CFMMC.Model
|
|
{
|
|
public abstract class SuperviseReportBaseModel
|
|
{
|
|
/// <summary>
|
|
/// 报告主体名称
|
|
/// </summary>
|
|
public string MainName { get; set; }
|
|
|
|
/// <summary>
|
|
/// 报告主体的统一社会信用代码
|
|
/// </summary>
|
|
public string MainCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易对手方名称
|
|
/// </summary>
|
|
public string ClientName { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易对手方的统一社会信用代码
|
|
/// </summary>
|
|
public string ClientLicenseCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易编号
|
|
/// </summary>
|
|
public string TradeNumber { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易确认时间
|
|
/// </summary>
|
|
public DateTime? TradeDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易确认时间
|
|
/// </summary>
|
|
public string TradeDateString
|
|
{
|
|
get
|
|
{
|
|
return TradeDate == null ? "" : TradeDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 标的资产类型
|
|
/// </summary>
|
|
public string VarietyType { 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>
|
|
/// 产品结构En
|
|
/// </summary>
|
|
public string TradeTypeEn { get; set; }
|
|
|
|
/// <summary>
|
|
/// 结构化交易中的组合类型
|
|
/// <para>确定产品结构时使用</para>
|
|
/// </summary>
|
|
public string StructureType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 二元期权PayoffType
|
|
/// <para>确定产品结构时使用</para>
|
|
/// </summary>
|
|
public string PayoffType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 资产类型En
|
|
/// </summary>
|
|
public string AssetTypeEn { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标的资产品种
|
|
/// </summary>
|
|
public string VarietyCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 标的资产对应合约
|
|
/// </summary>
|
|
public string UnderlyingCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 数量单位
|
|
/// </summary>
|
|
public string QuoteUnit { get; set; }
|
|
|
|
/// <summary>
|
|
/// 数量单位En
|
|
/// </summary>
|
|
public string QuoteUnitEn { get; set; }
|
|
|
|
/// <summary>
|
|
/// 总名义数量
|
|
/// </summary>
|
|
public string TradeAmount { get; set; }
|
|
|
|
/// <summary>
|
|
/// 已平仓总名义数量/交易名义数量
|
|
/// <para>该笔成交为部分解约或者解约,终止合约,所涉及的名义数量;成交对应合约手数*标的合约的合约乘数。</para>
|
|
/// </summary>
|
|
public string EndTradeAmount { get; set; }
|
|
|
|
/// <summary>
|
|
/// 价格符号
|
|
/// </summary>
|
|
public int PriceSymbol { get; set; }
|
|
|
|
private double _strike;
|
|
/// <summary>
|
|
/// 执行价格
|
|
/// </summary>
|
|
public double Strike
|
|
{
|
|
get
|
|
{
|
|
return _strike;
|
|
}
|
|
set
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
_strike = OtcFormatHelper.FormatValue(value, 2);
|
|
}
|
|
else
|
|
{
|
|
_strike = OtcFormatHelper.FormatValue(value, 6);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 互换成交报送可能有两个Strike
|
|
/// </summary>
|
|
public List<double> Strike2 { get; set; }
|
|
|
|
public string StrikeString
|
|
{
|
|
get
|
|
{
|
|
var strikeString = "";
|
|
if (Strike2 != null && Strike2.Count > 0)
|
|
{
|
|
foreach (var x in Strike2)
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
strikeString += x.ToString("0.##") + ",";
|
|
}
|
|
else
|
|
{
|
|
strikeString += x.ToString("0.######") + ",";
|
|
}
|
|
}
|
|
strikeString = strikeString.Substring(0, strikeString.Length - 1);
|
|
}
|
|
else
|
|
{
|
|
if (PS.Config.Company == Configuration.CompanyEnum.国投)
|
|
{
|
|
strikeString += Strike.ToString("0.##");
|
|
}
|
|
else
|
|
{
|
|
strikeString += Strike.ToString("0.######");
|
|
}
|
|
}
|
|
return strikeString;
|
|
}
|
|
}
|
|
|
|
private double? _foreignCurrencyRate;
|
|
/// <summary>
|
|
/// 外汇对人民币汇率
|
|
/// </summary>
|
|
public double? ForeignCurrencyRate
|
|
{
|
|
get { return _foreignCurrencyRate; }
|
|
set { _foreignCurrencyRate = value.HasValue ? (double?)OtcFormatHelper.FormatValue(value ?? 0, 4) : null; }
|
|
}
|
|
|
|
private double _participateRate;
|
|
/// <summary>
|
|
/// 参与率
|
|
/// </summary>
|
|
public double ParticipateRate
|
|
{
|
|
get { return _participateRate; }
|
|
set { _participateRate = OtcFormatHelper.FormatValue(value, 6); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 参与率
|
|
/// </summary>
|
|
public string ParticipateRateString
|
|
{
|
|
get
|
|
{
|
|
return ParticipateRate.ToString("0.######");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 计价货币
|
|
/// </summary>
|
|
public string QuoteCurrency { get; set; }
|
|
|
|
/// <summary>
|
|
/// 总名义金额
|
|
/// </summary>
|
|
public string StockEqvNotional { get; set; }
|
|
|
|
/// <summary>
|
|
/// 已平仓总名义金额/交易名义金额
|
|
/// <para>该笔成交为部分解约或者解约,终止合约,所涉及的名义金额;交易名义数量*成交时标的期初价格。</para>
|
|
/// </summary>
|
|
public string EndStockEqvNotional { get; set; }
|
|
|
|
private double _pv;
|
|
/// <summary>
|
|
/// 合约价值
|
|
/// </summary>
|
|
public double Pv
|
|
{
|
|
get { return _pv; }
|
|
set { _pv = Math.Abs(OtcFormatHelper.FormatValue(value, 4)); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 合约价值
|
|
/// </summary>
|
|
public string PvString
|
|
{
|
|
get
|
|
{
|
|
return Pv.ToString("0.####");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 交易Id
|
|
/// </summary>
|
|
public int TradeId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易确认书编号
|
|
/// </summary>
|
|
public string ContractCode { get; set; }
|
|
|
|
/// <summary>
|
|
/// 是否为年化期权
|
|
/// </summary>
|
|
public string IsAnnualTrade { get; set; }
|
|
|
|
/// <summary>
|
|
/// 估值方法
|
|
/// </summary>
|
|
public string ValuationMethod { get; set; }
|
|
|
|
/// <summary>
|
|
/// 浮动盈亏
|
|
/// </summary>
|
|
public decimal? UnRealizedPnL { get; set; }
|
|
|
|
/// <summary>
|
|
/// 到期日
|
|
/// </summary>
|
|
public DateTime? ExerciseDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 到期日
|
|
/// </summary>
|
|
public string ExerciseDateString
|
|
{
|
|
get
|
|
{
|
|
return ExerciseDate == null ? "" : ExerciseDate.Value.ToString("yyyy-MM-dd");
|
|
}
|
|
}
|
|
|
|
public string DeltaCash { get; set; }
|
|
|
|
#region 辅助属性
|
|
|
|
[NotMapped]
|
|
public string OriginalTradeNumber { get; set; }
|
|
|
|
public trade _trade;
|
|
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("SuperviseReportBaseModel").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? _deltaCash { get; set; }
|
|
|
|
#endregion
|
|
}
|
|
}
|