Files
zszq-trs/Framework/YLErp.Core/DBModels/IntradayTradePosition.cs
T
2024-05-09 14:06:26 +08:00

219 lines
5.5 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace YLErp.DBModels
{
[Table("intraday_trade_position")]
public class intraday_trade_position : DBModelWithOperator
{
public static string LogClass = "交易持仓表";
/// <summary>
/// 簿记账户信息
/// </summary>
[DisplayName("簿记账户信息")]
[Required]
public int BookId { get; set; }
/// <summary>
/// UnRealizedPnL
/// </summary>
[DisplayName("客户ID")]
public int ClientId { get; set; }
/// <summary>
/// 交易方向
/// </summary>
[DisplayName("交易方向")]
[Required]
public string BuySell { get; set; }
/// <summary>
/// 估值日
/// </summary>
[DisplayName("估值日")]
[Required]
public DateTime ValueDate { get; set; }
/// <summary>
/// 交易信息
/// </summary>
[DisplayName("交易信息")]
[Required]
public int TradeId { get; set; }
/// <summary>
/// 结构类型
/// </summary>
[DisplayName("结构类型")]
public string TradeType { get; set; }
/// <summary>
/// 持仓份额
/// </summary>
[DisplayName("持仓份额")]
public double Amount { get; set; }
/// <summary>
/// 昨日价值
/// </summary>
[DisplayName("昨日价值")]
public decimal LastPv { get; set; }
/// <summary>
///
/// </summary>
[DisplayName("Pv")]
public decimal Pv { get; set; }
/// <summary>
/// 四舍五入处理后的持仓市值
/// </summary>
public decimal RoundedPv { get; set; }
/// <summary>
/// 当日价值
/// </summary>
[DisplayName("当日价值")]
public decimal DailyPnL { get; set; }
/// <summary>
/// 总盈亏
/// </summary>
[DisplayName("总盈亏")]
public double TotalPnL { get; set; }
/// <summary>
/// 持仓盈亏
/// </summary>
[DisplayName("持仓盈亏")]
public double PositionPnL { get; set; }
/// <summary>
/// 四舍五入处理后的持仓盈亏
/// </summary>
public double RoundedPositionPnl { get; set; }
/// <summary>
/// 交易编号
/// </summary>
[DisplayName("交易编号")]
public string TradeNumber { get; set; }
/// <summary>
/// 交易编号
/// </summary>
[DisplayName("持仓类型")]
public string PositionType { get; set; }
/// <summary>
/// 标的代码
/// </summary>
[DisplayName("标的代码")]
public string UnderlyingCode { get; set; }
[DisplayName("成本")]
public double Cost { get; set; }
//为了解决mysql insert时使用NAN代替null
double _Notional;
[DisplayName("名义本金")]
public double Notional
{
get { return _Notional; }
set
{
if (double.IsNaN(value))
{
_Notional = 0;
}
else
{
_Notional = value;
}
}
}
[DisplayName("预付金")]
public double Margin { get; set; }
/// <summary>
/// 持仓实现金额(目前指持仓时的票息和互换金额)
/// </summary>
[DisplayName("持仓实现盈亏")]
public double PositionRelizedAmount { get; set; }
/// <summary>
/// 交易状态
/// </summary>
[DisplayName("交易状态")]
public string TradeStatus { get; set; }
/// <summary>
/// 昨日实际价值
/// </summary>
[DisplayName("昨日实际价值")]
public double ActualLastPv { get; set; }
/// <summary>
/// 当日实际价值
/// </summary>
[DisplayName("当日实际价值")]
public double ActualPv { get; set; }
/// <summary>
/// 当日实际浮动盈亏
/// </summary>
[DisplayName("当日实际浮动盈亏")]
public double ActualDailyPnL { get; set; }
/// <summary>
/// 实际总盈亏
/// </summary>
[DisplayName("实际总盈亏")]
public double ActualTotalPnL { get; set; }
[NotMapped]
public double RealizedPnL { get; set; }
/// <summary>
/// 对冲交易唯一编码
/// </summary>
[DisplayName("对冲交易唯一编码")]
public string HedgeUniqueCode { get; set; }
/// <summary>
/// 交易所代码
/// </summary>
public string ExchangeOptionCode { get; set; }
/// <summary>
/// 主交易ID
/// </summary>
[DisplayName("主交易ID")]
public int ParentTradeId { get; set; }
[DisplayName("收益互换初始预付金")]
public double SwapInitMargin { get; set; }
[DisplayName("收益互换交易盈亏")]
public double SwapWinLoss { get; set; }
[DisplayName("互换容忍金额")]
public double SwapUnMargin { get; set; }
public intraday_trade_position Clone()
{
return (intraday_trade_position)MemberwiseClone();
}
}
}