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

298 lines
7.5 KiB
C#

using YLErp.Models.Tag;
namespace YLErp.DBModels
{
/// <summary>
///
/// </summary>
public class OtcTradeDetail : OtcTradeDto
{
/// <summary>
/// 期初交易数量
/// </summary>
public double? TradeOriginalAmount { get; set; }
public string SyntheticUnderlyingTipsInfo { get; set; }
//----------------------------------------
public int TcId { get; set; }
public int ParentTcId { get; set; }
/// <summary>
/// 了结日期
/// </summary>
public DateTime? TcValueDate { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public string TcAction { get; set; }
/// <summary>
/// 行权方式
/// </summary>
public string TcExerciseWay { get; set; }
/// <summary>
/// 平仓数量
/// </summary>
public double? TcUnwindTradeAmount { get; set; }
/// <summary>
/// 平仓单价
/// </summary>
public double? TcUnwindPrice { get; set; }
/// <summary>
/// 平仓单价比例
/// </summary>
public double? TcUnwindPricePercent { get; set; }
/// <summary>
/// 平仓份额
/// </summary>
public double? TcUnwindNotional { get; set; }
/// <summary>
/// 平仓行权比例
/// </summary>
public double? TcUnwindPercent { get; set; }
/// <summary>
/// 期末价格(包含亚式的执行均价)
/// </summary>
public double? TcFinalPrice { get; set; }
/// <summary>
/// 交割金额(包含额外金额,不包含权利金)
/// </summary>
public double? TcAmount { get; set; }
/// <summary>
/// 行权份额
/// </summary>
public double? TcNotional { get; set; }
/// <summary>
/// 行权数量(其实可以和TcUnwindTradeAmount合并)
/// </summary>
public double? TcTradeAmount { get; set; }
/// <summary>
/// 实际行权价
/// </summary>
public double? ActualStrike { get; set; }
/// <summary>
/// 了结次数
/// </summary>
public int TcCount { get; set; }
/// <summary>
/// 持仓市值
/// </summary>
public double? PositionPv { get; set; }
/// <summary>
/// 持仓盈亏
/// </summary>
public double? PositionPnl { get; set; }
private double? tcTradePrice;
/// <summary>
/// 了结部分成交金额
/// </summary>
public double? TcTradePrice
{
get
{
if (tcTradePrice != null)
{
return tcTradePrice;
}
else if (TradeType == "远期")
{
return (TradePrice ?? 0) * (TcUnwindPercent ?? 0) * (-1);
}
else
{
return (TradePrice ?? 0) * (TcUnwindPercent ?? 0) * (BuySell == "买入" ? -1 : 1); ;
}
}
set
{
tcTradePrice = value;
}
}
private double? winloss;
/// <summary>
/// 实现盈亏(单条了结)
/// </summary>
public double? WinLoss
{
get
{
if (winloss != null)
{
return winloss.Value;
}
return (TcAmount ?? 0) + (TcTradePrice ?? 0);
}
set => winloss = value;
}
/// <summary>
/// 了结顺序
/// </summary>
public int TcSequence { get; set; } = 1;
/// <summary>
/// 了结溢价总额
/// </summary>
public double? TcTradePremium { get; set; }
public bool IsLastAction { get; set; }
/// <summary>
/// 剩余交易日
/// </summary>
public int RestTradeDays { get; set; }
/// <summary>
/// 交易期限
/// </summary>
public int AllTradeDays { get; set; }
public string GroupTradeType { get; set; }
public string KnockInOutStatusObservation { get; set; }
#region 导出全量字段模板用到,未进行赋值,会在生成文档时进行赋值
/// <summary>
/// 合约名称
/// </summary>
public string UnderlyingName { get; set; }
/// <summary>
/// 销售人员
/// </summary>
public string SalesName { get; set; }
/// <summary>
/// 权利金(存续)
/// </summary>
public double PositionSinglePv { get; set; }
/// <summary>
/// 当前持仓期权费总额
/// </summary>
public double PositionTradePrice { get; set; }
/// <summary>
/// 亚式_均价起算日
/// </summary>
public DateTime Asian_AveragingPeriodStartDate { get; set; }
/// <summary>
/// 亚式_均价计算
/// </summary>
public string Asian_PayoffType { get; set; }
/// <summary>
/// 亚式_行权价类型
/// </summary>
public string Asian_StrikeType { get; set; }
/// <summary>
/// 亚式_杠杆率
/// </summary>
public double Asian_StrikeGearingFactor { get; set; }
/// <summary>
/// 障碍_障碍类型
/// </summary>
public string Barrier_Type { get; set; }
/// <summary>
/// 障碍_障碍价格
/// </summary>
public double Barrier_Price { get; set; }
/// <summary>
/// 障碍_高障碍价格
/// </summary>
public double UpperBarrier_Price { get; set; }
/// <summary>
/// 障碍_补偿支付
/// </summary>
public string Barrier_RebateType { get; set; }
/// <summary>
/// 障碍_补偿金额
/// </summary>
public double Barrier_Rebate { get; set; }
/// <summary>
/// 障碍_高障碍补偿金额
/// </summary>
public double Barrier_RebateHigh { get; set; }
/// <summary>
/// 障碍_障碍偏移
/// </summary>
public string Barrier_Shift { get; set; }
/// <summary>
/// 障碍_观察方式
/// </summary>
public string Barrier_Discrete { get; set; }
/// <summary>
/// 二元_二元类型
/// </summary>
public string Binary_PayoffType { get; set; }
/// <summary>
/// 二元_补偿金额
/// </summary>
public double Binary_CashOrNothingAmount { get; set; }
/// <summary>
/// 二元_高障碍价格
/// </summary>
public double Binary_UpperBarrier { get; set; }
/// <summary>
/// 二元_高障碍补偿金额
/// </summary>
public double Binary_CashOrNothingAmountHigh { get; set; }
/// <summary>
/// 二元_观察方式
/// </summary>
public string Binary_MonitorType { get; set; }
/// <summary>
/// 二元_补偿支付
/// </summary>
public string Binary_RebateType { get; set; }
#endregion
/// <summary>
/// 交易标签
/// </summary>
public List<TagDto> Tags { get; set; }
/// <summary>
/// 标签值导出
/// </summary>
public string OutputTags { get; set; }
}
}