368 lines
11 KiB
C#
368 lines
11 KiB
C#
using System.ComponentModel.DataAnnotations.Schema;
|
|
using YLErp.DBModels.Attributes;
|
|
using YLErp.Helpers;
|
|
|
|
namespace YLErp.DBModels
|
|
{
|
|
[DataChange]
|
|
[Table("trade_swap")]
|
|
public class trade_swap : TradeExtendBase, IClonable<trade_swap>
|
|
{
|
|
public static string LogClass = "收益互换交易";
|
|
|
|
/// <summary>
|
|
/// 年交易天数
|
|
/// </summary>
|
|
[DisplayName("年化天数"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public int? AnnualDays { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]是否浮动收益
|
|
/// </summary>
|
|
[DisplayName("浮动收益"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public bool IsGetFloatingProfit { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]标的品种
|
|
/// </summary>
|
|
[DisplayName("标的品种"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public int? GetVarietyId { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]标的代码
|
|
/// </summary>
|
|
[DisplayName("标的代码"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public int? GetUnderlyingId { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]标的代码
|
|
/// </summary>
|
|
[DisplayName("标的代码"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public string GetUnderlyingCode { get; set; }
|
|
|
|
///// <summary>
|
|
///// [收取]标的名称
|
|
///// </summary>
|
|
//[DisplayName("标的名称"), TradeAuditChangeMsg]
|
|
//public string GetUnderlyingAssetName { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]多头空头
|
|
/// </summary>
|
|
[DisplayName("多头空头"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public string GetLongShort { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]期初标的价格
|
|
/// </summary>
|
|
[DisplayName("期初标的价格"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetSpotPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]开仓价格
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double? GetOpenPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]交易费用
|
|
/// </summary>
|
|
[DisplayName("交易费用"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetTradePrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]互换间隔及互换利率
|
|
/// </summary>
|
|
[DisplayName("互换间隔"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public string GetSwapTimeAndRate { get; set; }
|
|
|
|
[DisplayName("互换利率(年化)")]
|
|
[NotMapped]
|
|
public double GetSwapRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]固定收益
|
|
/// </summary>
|
|
[DisplayName("固定收益"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetFixedProfit { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]按手数收费
|
|
/// </summary>
|
|
[DisplayName("按手数收费"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetSingleFee { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]按名义本金收费
|
|
/// </summary>
|
|
[DisplayName("按名义本金收费"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetUnAnnualRate { get; set; }
|
|
|
|
private double? _getMarginRate;
|
|
/// <summary>
|
|
/// [收取]初始预付金率
|
|
/// </summary>
|
|
[DisplayName("初始预付金率"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetMarginRate
|
|
{
|
|
get { return NumberHelper.Normalize(_getMarginRate); }
|
|
set
|
|
{
|
|
_getMarginRate = NumberHelper.Normalize(value);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// [收取]期末价格
|
|
/// </summary>
|
|
[DisplayName("期末价格"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetFinalPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]份额
|
|
/// </summary>
|
|
[DisplayName("份额"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetNotional { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]数量
|
|
/// </summary>
|
|
[DisplayName("数量"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? GetTradeAmount { get; set; }
|
|
|
|
/// <summary>
|
|
/// [收取]手数
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double? GetLot { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]是否浮动收益
|
|
/// </summary>
|
|
[DisplayName("浮动收益"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public bool IsPayFloatingProfit { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]标的品种
|
|
/// </summary>
|
|
[DisplayName("标的品种"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public int? PayVarietyId { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]标的代码
|
|
/// </summary>
|
|
[DisplayName("标的代码"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public int? PayUnderlyingId { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]标的代码
|
|
/// </summary>
|
|
[DisplayName("标的代码"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public string PayUnderlyingCode { get; set; }
|
|
|
|
///// <summary>
|
|
///// [收取]标的名称
|
|
///// </summary>
|
|
//[DisplayName("标的名称"), TradeAuditChangeMsg]
|
|
//public string PayUnderlyingAssetName { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]多头空头
|
|
/// </summary>
|
|
[DisplayName("多头空头"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public string PayLongShort { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]期初标的价格
|
|
/// </summary>
|
|
[DisplayName("期初标的价格"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PaySpotPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]开仓价格
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double? PayOpenPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]交易费用
|
|
/// </summary>
|
|
[DisplayName("交易费用"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PayTradePrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]互换间隔及互换利率
|
|
/// </summary>
|
|
[DisplayName("互换间隔"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public string PaySwapTimeAndRate { get; set; }
|
|
|
|
[DisplayName("互换利率(年化)")]
|
|
[NotMapped]
|
|
public double PaySwapRate { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]固定收益
|
|
/// </summary>
|
|
[DisplayName("固定收益"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PayFixedProfit { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]按手数收费
|
|
/// </summary>
|
|
[DisplayName("按手数收费"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PaySingleFee { get; set; }
|
|
|
|
/// <summary>
|
|
/// 计息方式 11:算头算尾;10:算头不算尾;01:不算头算尾;00:不算头不算尾,
|
|
/// 默认:算头算尾
|
|
/// </summary>
|
|
[DisplayName("计息方式"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public string RateCalcMode { get => rateCalcMode.TrimToNull() ?? "11"; set => rateCalcMode = value; }
|
|
|
|
/// <summary>
|
|
/// 计息是否包括首日
|
|
/// </summary>
|
|
[NotMapped]
|
|
public bool IncludeFirstDay => string.IsNullOrEmpty(RateCalcMode) || RateCalcMode == "10" || RateCalcMode == "11";
|
|
|
|
/// <summary>
|
|
/// [支付]按名义本金收费
|
|
/// </summary>
|
|
[DisplayName("按名义本金收费"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PayUnAnnualRate { get; set; }
|
|
|
|
private double? _payMarginRate;
|
|
private string rateCalcMode;
|
|
|
|
/// <summary>
|
|
/// [支付]初始预付金率
|
|
/// </summary>
|
|
[DisplayName("初始预付金率"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PayMarginRate
|
|
{
|
|
get { return NumberHelper.Normalize(_payMarginRate); }
|
|
set
|
|
{
|
|
_payMarginRate = NumberHelper.Normalize(value);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// [支付]期末价格
|
|
/// </summary>
|
|
[DisplayName("期末价格"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PayFinalPrice { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]份额
|
|
/// </summary>
|
|
[DisplayName("份额"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PayNotional { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]数量
|
|
/// </summary>
|
|
[DisplayName("数量"), TradeAuditChangeMsg]
|
|
[DataChange]
|
|
public double? PayTradeAmount { get; set; }
|
|
|
|
/// <summary>
|
|
/// [支付]手数
|
|
/// </summary>
|
|
[NotMapped]
|
|
public double? PayLot { get; set; }
|
|
|
|
/// <summary>
|
|
/// 交易流水Id --国君 trade_swap_flow_more
|
|
/// </summary>
|
|
public int? FlowId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 变动收益是否年化
|
|
/// </summary>
|
|
public bool AnnualVarIncome { get; set; }
|
|
|
|
///// <summary>
|
|
///// 计息是否排除首日
|
|
///// </summary>
|
|
//public bool ExcludeFirstDay { get; set; }
|
|
|
|
/// <summary>
|
|
/// 互换类型
|
|
/// </summary>
|
|
[DisplayName("互换类型"), TradeAuditChangeMsg]
|
|
public string SwapType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 了结支付方式
|
|
/// 0代表了结时支付,1代表结算日支付
|
|
/// </summary>
|
|
public int SettlementPayType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 是否开仓时收取开仓费
|
|
/// </summary>
|
|
[DisplayName("是否开仓时收取开仓费")]
|
|
public bool IsTradePriceWhenOpen { get; set; }
|
|
|
|
/// <summary>
|
|
/// 收费基本单位 false 按份额收费 true按手数收费
|
|
/// </summary>
|
|
[DisplayName("收费基本单位")]
|
|
public bool IsShare { get; set; }
|
|
|
|
/// <summary>
|
|
/// 原始交易Id
|
|
/// </summary>
|
|
public int? OriginalTradeId { get; set; }
|
|
|
|
[NotMapped]
|
|
public double GetCountRatio { get; set; }
|
|
|
|
[NotMapped]
|
|
public double PayCountRatio { get; set; }
|
|
|
|
[NotMapped]
|
|
public double GetContractSize { get; set; }
|
|
|
|
[NotMapped]
|
|
public double PayContractSize { get; set; }
|
|
|
|
public trade_swap Clone()
|
|
{
|
|
return (trade_swap)MemberwiseClone();
|
|
}
|
|
}
|
|
}
|