using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YLErp.Helpers;
namespace YLErp.DBModels
{
///
/// 互换合约日终持仓归档表
///
[Table("eod_swap_position")]
public class eod_swap_position: DBModelBaseV2
{
///
/// 持仓日期
///
[DisplayName("持仓日期")]
[DataChange]
public DateTime ValueDate { get; set; }
///
/// 客户编码
///
[DisplayName("客户编码id")]
[DataChange]
public int ClientId { get; set; }
///
/// 互换交易编码
///
[DisplayName("互换交易编码id")]
[DataChange]
public int SwapTradeId { get; set; }
///
/// 互换交易腿ID
///
[DisplayName("互换交易腿ID")]
[DataChange]
public long PositionId { get; set; }
///
///浮动端 收取方向 1:收取,2:支付
///
[DisplayName("收取方向")]
[DataChange]
public int PosiDirection { get; set; }
[NotMapped]
public string PosiDirectionStr
{
get
{
if (PosiDirection == 1)
{
return "收取";
}
else if (PosiDirection == 2)
{
return "支付";
}
else return "";
}
}
///
/// 多空方向 1:多头,2:空头
///
[DisplayName("多空方向")]
[DataChange]
public int PositionType { get; set; }
[NotMapped]
public string PositionTypeStr
{
get
{
if (PositionType == 1)
{
return "B";
}
else if (PositionType == 2)
{
return "S";
}
else return "";
}
}
///
/// 标的代码
///
[DisplayName("标的代码")]
[DataChange]
public string UnderlyingCode { get; set; }
///
/// 标的名称
///
[NotMapped]
public string UnderlyingName { get; set; }
///
/// 合约乘数
///
[DisplayName("合约乘数")]
[DataChange]
public decimal ContractSize { get; set; }
///
/// 合约乘积因子
///
[DisplayName("合约乘积因子")]
[DataChange]
public decimal CountRatio { get; set; }
///
/// 期初标的价格
///
[DisplayName("期初标的价格")]
[DataChange]
public decimal PosiNetPrice { get; set; }
///
/// 期初标的价格-不含费
///
[DisplayName("期初标的价格-不含费")]
[DataChange]
public decimal PosiGrossPrice { get; set; }
/// 收益率
///
/// 剩余持仓数量
///
[DisplayName("剩余持仓数量")]
[DataChange]
public decimal PosiQuantity { get; set; }
///
/// 当前剩余的名义本金
///
[DisplayName("当前剩余的名义本金")]
[DataChange]
public decimal PosiNotionalValue { get; set; }
///
/// 开仓佣金交易费用
///
[DisplayName("开仓佣金交易费用")]
[DataChange]
public decimal PosiTradingFee { get; set; }
///
/// 开仓起始日-首次开仓日
///
[DisplayName("开仓起始日")]
[DataChange]
public DateTime PosiStartDate { get; set; }
///
/// 开仓到期日
///
[DisplayName("开仓到期日")]
[DataChange]
public DateTime? PosiMatuirityDate { get; set; }
///
/// 标的盯市价格
///
[DisplayName("标的盯市价格")]
[DataChange]
public decimal UnderlyingPrice { get; set; }
///
/// 标的市值,空头持仓为负数,挂钩标的价格*持仓数量*合约乘数*(多空方向)
///
[DisplayName("标的市值")]
[DataChange]
public decimal UnderlyingMarketValue { get; set; }
///
/// 当日浮动端分红,当日事件流水中“分红收益”的加总* 收支方向
///
[DisplayName("当日浮动端分红")]
[DataChange]
public decimal TdPosiDividend { get; set; }
///
/// 浮动端盯市未实现,因标的价格变化导致的收益(盯市、未实现)
///
[DisplayName("浮动端平仓盈亏·盯市未实现")]
[DataChange]
public decimal PosiMtmPnL { get; set; }
///
/// 浮动端盯市未实现,因分红导致的分红收益(未实现),日初的本字段值+当日浮动端分红-浮动端平仓盈亏·分红(当日实现)
///
[DisplayName("浮动端平仓盈亏·分红未实现")]
[DataChange]
public decimal PosiDividendSum { get; set; }
///
/// 后付的费用(未实现)
///
[DisplayName("后付的费用(未实现)")]
[DataChange]
public decimal PosiFeePending { get; set; }
///
/// 浮动端的所有待实现收益(当前浮动腿的价值),浮动端待实现收益盯市+浮动端待实现收益分红
///
[DisplayName("浮动端的所有待实现收益")]
[DataChange]
public decimal PosiProfitSum { get; set; }
///
///利息端 收取方向 1:收取,2:支付
///
[DisplayName("收取方向")]
[DataChange]
public int InterestDirection { get; set; }
///
/// 计息基本类型 1:固定值,2:合约名义本金规模,3:持仓名义本金,4:持仓市值,5:初始预付金,6:追加预付金
///
[DisplayName("计息基本类型")]
[DataChange]
public int InterestMode { get; set; }
///
/// 计息方式 0:单利,1:复利
///
public int InterestType { get; set; }
///
/// 计息基数固定值
///
[DisplayName("计息基数固定值")]
[DataChange]
public decimal InterestPrincipalFix { get; set; }
///
/// 互换利率(年化)
///
[DisplayName("互换利率(年化)")]
[DataChange]
public decimal InterestRateDefault { get; set; }
///
/// 互换间隔
///
[DisplayName("互换间隔")]
[DataChange]
public string InterestSwapInterval { get; set; }
///
/// 待结算其他费用
///
[DisplayName("待结算其他费用")]
[DataChange]
public decimal InterestFeePending { get; set; }
///
/// 当前交易日适用的具体计息基准值
///
[DisplayName("当前交易日适用的具体计息基准值")]
[DataChange]
public decimal TdInterestPrincipal { get; set; }
///
/// 当前交易日适用的具体利率值
///
[DisplayName("当前交易日适用的具体利率值")]
[DataChange]
public decimal TdInterestRate { get; set; }
///
/// 当日利率端新计利息
///
[DisplayName("当日利率端新计利息")]
[DataChange]
public decimal TdInterestIncome { get; set; }
///
/// 当日利率端新增费用
///
[DisplayName("当日利率端新增费用")]
[DataChange]
public decimal TdInterestFee { get; set; }
///
/// 利率端待实现收益-利息
///
[DisplayName("利率端待实现收益-利息")]
[DataChange]
public decimal InterestIncomeSum { get; set; }
///
/// 利率端待实现收益-其他费用
///
[DisplayName("利率端待实现收益-其他费用")]
[DataChange]
public decimal InterestFeeSum { get; set; }
///
/// 利率端待实现收益
///
[DisplayName("利率端待实现收益")]
[DataChange]
public decimal InterestProfitSum { get; set; }
///
/// 浮动腿与利息腿的价值之和
///
[DisplayName("互换持仓价值")]
[DataChange]
public decimal SwapPositionValue { get; set; }
///
/// 当日平仓数量
///
[DisplayName("当日平仓数量")]
[DataChange]
public decimal TdCloseQty { get; set; }
///
/// 当日公司行为数量,因当日公司行为事件导致的数量变化
///
[DisplayName("当日公司行为数量")]
[DataChange]
public decimal TdChangedQty { get; set; }
///
/// 当日浮动端平仓盈亏·盯市
///
[DisplayName("当日浮动端平仓盈亏·盯市")]
[DataChange]
public decimal TdCloseMtmPnl { get; set; }
///
/// 当日浮动端平仓盈亏·分红
///
[DisplayName("当日浮动端平仓盈亏·分红")]
[DataChange]
public decimal TdCloseDividend { get; set; }
///
/// 当日浮动端平仓盈亏·费用
///
[DisplayName("当日浮动端平仓盈亏·费用")]
[DataChange]
public decimal TdCloseFee { get; set; }
///
/// 当日利率端平仓盈亏·利息
///
[DisplayName("当日利率端平仓盈亏·利息")]
[DataChange]
public decimal TdCloseInterest { get; set; }
///
/// 当日利率端平仓盈亏·其他费用
///
[DisplayName("当日利率端平仓盈亏·其他费用")]
[DataChange]
public decimal TdCloseInterestFee { get; set; }
///
/// 浮动端累计已实现盈亏·盯市
///
[DisplayName("浮动端累计已实现盈亏·盯市")]
[DataChange]
public decimal RealizedMtmPnL { get; set; }
///
/// 浮动端累计已实现盈亏·分红
///
[DisplayName("浮动端累计已实现盈亏·分红")]
[DataChange]
public decimal RealizedDividend { get; set; }
///
/// 浮动端累计已实现盈亏·费用
///
[DisplayName("浮动端累计已实现盈亏·费用")]
[DataChange]
public decimal RealizedFee { get; set; }
///
/// 利率端累计已实现盈亏·利息
///
[DisplayName("利率端累计已实现盈亏·利息")]
[DataChange]
public decimal RealizedInterest { get; set; }
///
/// 利率端累计已实现盈亏·其他费用
///
[DisplayName("利率端累计已实现盈亏·其他费用")]
[DataChange]
public decimal RealizedInterestFee { get; set; }
///
/// 持仓累计已实现盈亏
///
[DisplayName("持仓累计已实现盈亏")]
[DataChange]
public decimal RealizedPnl { get; set; }
///
/// 当日适用汇率
///
[DisplayName("当日适用汇率")]
[DataChange]
public decimal TdCurrency { get; set; }
///
/// 持仓状态 正常0/已平1
///
[DisplayName("持仓状态")]
[DataChange]
public int PosiStatus { get; set; }
///
/// 是否无效 有效false/无效true
///
[DisplayName("是否无效")]
[DataChange]
public bool Invalid { get; set; }
///
/// 浮动利率
///
public decimal FloatRate { get; set; }
///
/// 浮动利率标的
///
public string FloatRateUnderlyingCode { get; set; }
///
/// 是否年化
///
public bool IsAnnualized { get; set; }
///
/// 发生日期 预付金腿用
///
public DateTime? HappenDate { get; set; }
///
/// 币种
///
public string Currency { get; set; }
///
/// 标的资产类型
///
public string UnderlyingInstrumentType { get; set; }
///
/// 成交净价含费
///
public decimal? PosiNetFeePrice { get; set; }
///
/// 成交净价不含费
///
public decimal? PosiNetNoFeePrice { get; set; }
///
/// 虚拟交易费用
///
public decimal VTradingFee { get; set; }
///
/// 重置频率(天)
///
public int? interest_rest_days { get; set; }
///
/// 利率准则(-1前一营业日,0当前营业日)
///
public int? interest_rule { get; set; }
///
/// 基点价值DV01
///
[DataChange]
public decimal? dv01 { get; set; }
///
/// 持仓编码
///
[NotMapped]
public string PositionIdPadding
{
get
{
return PositionId.ToString().PadLeft(8, '0');
}
}
public eod_swap_position Clone()
{
return (eod_swap_position)MemberwiseClone();
}
}
///
/// 合成持仓事件返回
///
public class SwapPositionResponse
{
public eod_swap_position eodPosition { get; set; }
public swap_position position { get; set; }
public DateTime TradeDate { get; set; }
public string SwapTradeNo { get; set; }
public int ClientId { get; set; }
public string ClientNumber { get; set; }
public string ClientName { get; set; }
public string SwapTradeTypeStr { get; set; }
///
/// 结构类型
///
public string StructureType { get; set; }
///
/// 权益收支方向
///
public int InitialMarginDirection { get; set; }
}
}