211 lines
4.6 KiB
C#
211 lines
4.6 KiB
C#
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace YLErp.DBModels
|
|
{
|
|
[Table("trade_action")]
|
|
public class TradeAction : DBModelBase
|
|
{
|
|
public int TradeId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 执行日期
|
|
/// </summary>
|
|
public DateTime ValueDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 操作类型
|
|
/// </summary>
|
|
public TradeActionType ActionType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 操作标识(增加扩展性)
|
|
/// </summary>
|
|
public int ActionFlag { get; set; }
|
|
|
|
/// <summary>
|
|
/// 操作备注
|
|
/// </summary>
|
|
public string ActionRemark { get; set; }
|
|
|
|
/// <summary>
|
|
/// 审核标识(0:无需审核,1:等待第一步审核,2...,100:审核通过)
|
|
/// </summary>
|
|
public byte CheckFlag { get; set; }
|
|
|
|
/// <summary>
|
|
/// 是否有效数据
|
|
/// </summary>
|
|
public bool IsValid { get; set; }
|
|
|
|
/// <summary>
|
|
/// 资金ID
|
|
/// </summary>
|
|
public int? CashId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 回退ID
|
|
/// </summary>
|
|
public long? BackId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 创建时间
|
|
/// </summary>
|
|
public DateTime CreateTime { get; set; }
|
|
|
|
public string ActionData { get; set; }
|
|
|
|
/// <summary>
|
|
/// 操作人ID
|
|
/// </summary>
|
|
public int? OptId { get; set; }
|
|
|
|
/// <summary>
|
|
/// 操作人名称
|
|
/// </summary>
|
|
[NotMapped]
|
|
public string OptName { get; set; }
|
|
|
|
public TradeAction Clone()
|
|
{
|
|
return (TradeAction)MemberwiseClone();
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{id}-{TradeId}--{ValueDate}--{ActionType}";
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 交易操作类型
|
|
/// </summary>
|
|
public enum TradeActionType
|
|
{
|
|
//---------开仓操作--------------
|
|
|
|
/// <summary>
|
|
/// 新增交易
|
|
/// </summary>
|
|
NewTrade = 1,
|
|
|
|
/// <summary>
|
|
/// 修改交易
|
|
/// </summary>
|
|
ModifyTrade = 2,
|
|
|
|
/// <summary>
|
|
/// 确认交易
|
|
/// </summary>
|
|
ConfirmTrade = 3,
|
|
|
|
/// <summary>
|
|
/// 删除交易
|
|
/// </summary>
|
|
DeleteTrade = 10,
|
|
|
|
//---------交易回退--------------
|
|
|
|
/// <summary>
|
|
/// 回退交易
|
|
/// </summary>
|
|
BackTrade = 11,
|
|
|
|
//---------要素变更--------------
|
|
|
|
/// <summary>
|
|
/// 除权除息
|
|
/// </summary>
|
|
ExDividend = 40,
|
|
|
|
/// <summary>
|
|
/// 累计期权换月
|
|
/// </summary>
|
|
AccumulatorChange = 50,
|
|
|
|
//---------观察日结算--------------
|
|
|
|
/// <summary>
|
|
/// 期权敲入
|
|
/// </summary>
|
|
KnockIn = 101,
|
|
|
|
/// <summary>
|
|
/// 支付票息
|
|
/// </summary>
|
|
ObCoupon = 102,
|
|
|
|
/// <summary>
|
|
/// 现金支付
|
|
/// </summary>
|
|
ObCash = 103,
|
|
|
|
/// <summary>
|
|
/// 转远期
|
|
/// </summary>
|
|
ToForward = 110,
|
|
|
|
//---------了结操作--------------
|
|
|
|
/// <summary>
|
|
/// 平仓
|
|
/// </summary>
|
|
Close = 201,
|
|
|
|
/// <summary>
|
|
/// 执行
|
|
/// </summary>
|
|
Exercise = 202,
|
|
|
|
/// <summary>
|
|
/// 敲出
|
|
/// </summary>
|
|
KnockOut = 210,
|
|
|
|
/// <summary>
|
|
/// 到期
|
|
/// </summary>
|
|
Expire = 220
|
|
}
|
|
|
|
public static class TradeActionHelper
|
|
{
|
|
/// <summary>
|
|
/// 资金当期结算
|
|
/// </summary>
|
|
public const int Flag_CashAtHit = 0;
|
|
|
|
/// <summary>
|
|
/// 资金期末结算
|
|
/// </summary>
|
|
public const int Flag_CashAtEnd = 1;
|
|
|
|
/// <summary>
|
|
/// 全部了结
|
|
/// </summary>
|
|
public const int Flag_FullClosed = byte.MaxValue;
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const TradeActionType Close_Begin = TradeActionType.Close;
|
|
|
|
/// <summary>
|
|
/// 获取观察日结算产生的行为种类
|
|
/// </summary>
|
|
public static readonly IEnumerable<TradeActionType> ObActionTypes;
|
|
|
|
static TradeActionHelper()
|
|
{
|
|
ObActionTypes = new List<TradeActionType> {
|
|
TradeActionType.KnockIn, TradeActionType.KnockOut, TradeActionType.ObCash, TradeActionType.ObCoupon, TradeActionType.ToForward
|
|
}.AsReadOnly();
|
|
}
|
|
}
|
|
|
|
[NotMapped]
|
|
public class TradeActionDto : TradeAction
|
|
{
|
|
|
|
}
|
|
}
|