457 lines
17 KiB
C#
457 lines
17 KiB
C#
namespace YLErp.Modules.SuperviseReportModule.CFMMC.Model
|
|
{
|
|
public class SuperviseReportMonthlyTradeModel
|
|
{
|
|
/// <summary>
|
|
/// 风险管理公司名称
|
|
/// </summary>
|
|
public string CompanyName { get; set; }
|
|
/// <summary>
|
|
/// 统一社会信用代码
|
|
/// </summary>
|
|
public string SuperviseMainCode { get; set; }
|
|
/// <summary>
|
|
/// 报告期
|
|
/// </summary>
|
|
public string DataDate { get; set; }
|
|
/// <summary>
|
|
/// 填报日期
|
|
/// </summary>
|
|
public string ReportDate { get; set; }
|
|
/// <summary>
|
|
/// 填表人
|
|
/// </summary>
|
|
public string ReportUser { get; set; }
|
|
/// <summary>
|
|
/// 联系电话
|
|
/// </summary>
|
|
public string Tel { get; set; }
|
|
/// <summary>
|
|
/// 场外商品衍生品月度交易规模统计表
|
|
/// </summary>
|
|
public MonthlyTransactionSizeInfoGroup MonthlyTransactionSizeInfo { get; set; }
|
|
///// <summary>
|
|
///// 场外衍生品客户情况统计表
|
|
///// </summary>
|
|
//public TransactionScaleClientInfoType TransactionScaleClientInfo { get; set; }
|
|
///// <summary>
|
|
///// 场外商品衍生品客户交易情况统计表
|
|
///// </summary>
|
|
//public TransactionScaleClientTradeInfoGroup TransactionScaleClientTradeInfo { get; set; }
|
|
///// <summary>
|
|
///// 场外商品衍生品存量交易客户情况统计表
|
|
///// </summary>
|
|
//public TransactionScaleStockClientInfoGroup TransactionScaleStockClientInfo { get; set; }
|
|
///// <summary>
|
|
///// 场外商品衍生品履约担保情况统计表
|
|
///// </summary>
|
|
//public TransactionScaleMarginInfoModel TransactionScaleMarginInfo { get; set; }
|
|
/// <summary>
|
|
/// 场外商品衍生品交易月度盈亏情况统计表
|
|
/// </summary>
|
|
public TransactionScalePnlInfoGroup TransactionScalePnlInfo { get; set; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 场外商品衍生品月度交易规模统计表
|
|
/// </summary>
|
|
public class MonthlyTransactionSizeInfoGroup
|
|
{
|
|
/// <summary>
|
|
/// 名义本金
|
|
/// (单位:元)
|
|
/// </summary>
|
|
public TransactionScaleSizeType Notional { get; set; } = new TransactionScaleSizeType();
|
|
/// <summary>
|
|
/// 交易确认书
|
|
/// (单位:笔)
|
|
/// </summary>
|
|
public TransactionScaleSizeType ConfirmBook { get; set; } = new TransactionScaleSizeType();
|
|
/// <summary>
|
|
/// 权利金收取
|
|
/// (单位:元)
|
|
/// </summary>
|
|
public TransactionScaleSizeInfo2 TradePriceEarning { get; set; } = new TransactionScaleSizeInfo2();
|
|
/// <summary>
|
|
/// 权利金支付
|
|
/// (单位:元)
|
|
/// </summary>
|
|
public TransactionScaleSizeInfo2 TradePricePay { get; set; } = new TransactionScaleSizeInfo2();
|
|
}
|
|
|
|
public class TransactionScaleClientTradeInfoGroup
|
|
{
|
|
/// <summary>
|
|
/// 是否计算合计,设置为true会计算合计,完成后该字段会变为false;
|
|
/// </summary>
|
|
public bool sum;
|
|
/// <summary>
|
|
/// 互换
|
|
/// </summary>
|
|
public TransactionScaleInfoModel Swap { get; set; } = new TransactionScaleInfoModel();
|
|
/// <summary>
|
|
/// 期权
|
|
/// </summary>
|
|
public TransactionScaleInfoModel Option { get; set; } = new TransactionScaleInfoModel();
|
|
/// <summary>
|
|
/// 远期
|
|
/// </summary>
|
|
public TransactionScaleInfoModel Forward { get; set; } = new TransactionScaleInfoModel();
|
|
|
|
private TransactionScaleInfoModel _total;
|
|
/// <summary>
|
|
/// 合计
|
|
/// </summary>
|
|
public TransactionScaleInfoModel Total
|
|
{
|
|
get
|
|
{
|
|
if (sum)
|
|
{
|
|
_total = new TransactionScaleInfoModel();
|
|
var stockMonthly = (Swap?.MonthlyTotal?.Stock + Option?.MonthlyTotal?.Stock + Forward?.MonthlyTotal?.Stock) ?? 0;
|
|
var indexMonthly = (Swap?.MonthlyTotal?.Index + Option?.MonthlyTotal?.Index + Forward?.MonthlyTotal?.Index) ?? 0;
|
|
var fundMonthly = (Swap?.MonthlyTotal?.Fund + Option?.MonthlyTotal?.Fund + Forward?.MonthlyTotal?.Fund) ?? 0;
|
|
var otherMonthly = (Swap?.MonthlyTotal?.Other + Option?.MonthlyTotal?.Other + Forward?.MonthlyTotal?.Other) ?? 0;
|
|
var commodityMonthly = (Swap?.MonthlyTotal?.Commodity + Option?.MonthlyTotal?.Commodity + Forward?.MonthlyTotal?.Commodity) ?? 0;
|
|
_total.MonthlyTotal = new TransactionScaleItem(stockMonthly, indexMonthly, fundMonthly, otherMonthly, commodityMonthly);
|
|
|
|
var stockYear = (Swap?.YearTotal?.Stock + Option?.YearTotal?.Stock + Forward?.YearTotal?.Stock) ?? 0;
|
|
var indexYear = (Swap?.YearTotal?.Index + Option?.YearTotal?.Index + Forward?.YearTotal?.Index) ?? 0;
|
|
var fundYear = (Swap?.YearTotal?.Fund + Option?.YearTotal?.Fund + Forward?.YearTotal?.Fund) ?? 0;
|
|
var otherYear = (Swap?.YearTotal?.Other + Option?.YearTotal?.Other + Forward?.YearTotal?.Other) ?? 0;
|
|
var commodityYear = (Swap?.YearTotal?.Commodity + Option?.YearTotal?.Commodity + Forward?.YearTotal?.Commodity) ?? 0;
|
|
_total.YearTotal = new TransactionScaleItem(stockYear, indexYear, fundYear, otherYear, commodityYear);
|
|
sum = false;
|
|
}
|
|
return _total;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class TransactionScaleStockClientInfoGroup
|
|
{
|
|
/// <summary>
|
|
/// 是否计算合计,设置为true会计算合计,完成后该字段会变为false;
|
|
/// </summary>
|
|
public bool sum;
|
|
/// <summary>
|
|
/// 互换
|
|
/// </summary>
|
|
public TransactionScaleClientInfoType Swap { get; set; } = new TransactionScaleClientInfoType();
|
|
/// <summary>
|
|
/// 期权
|
|
/// </summary>
|
|
public TransactionScaleClientInfoType Option { get; set; } = new TransactionScaleClientInfoType();
|
|
/// <summary>
|
|
/// 远期
|
|
/// </summary>
|
|
public TransactionScaleClientInfoType Forward { get; set; } = new TransactionScaleClientInfoType();
|
|
|
|
private TransactionScaleItem _total;
|
|
/// <summary>
|
|
/// 合计
|
|
/// </summary>
|
|
public TransactionScaleItem Total
|
|
{
|
|
get
|
|
{
|
|
if (sum)
|
|
{
|
|
var stockMonthly = (Swap?.Monthly?.Stock + Option?.Monthly?.Stock + Forward?.Monthly?.Stock) ?? 0;
|
|
var indexMonthly = (Swap?.Monthly?.Index + Option?.Monthly?.Index + Forward?.Monthly?.Index) ?? 0;
|
|
var fundMonthly = (Swap?.Monthly?.Fund + Option?.Monthly?.Fund + Forward?.Monthly?.Fund) ?? 0;
|
|
var otherMonthly = (Swap?.Monthly?.Other + Option?.Monthly?.Other + Forward?.Monthly?.Other) ?? 0;
|
|
var commodityMonthly = (Swap?.Monthly?.Commodity + Option?.Monthly?.Commodity + Forward?.Monthly?.Commodity) ?? 0;
|
|
_total = new TransactionScaleItem(stockMonthly, indexMonthly, fundMonthly, otherMonthly, commodityMonthly);
|
|
sum = false;
|
|
}
|
|
return _total;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class TransactionScalePnlInfoGroup
|
|
{
|
|
/// <summary>
|
|
/// 本月发生额(元)
|
|
/// </summary>
|
|
public TransactionScalePnlType Monthly { get; set; } = new TransactionScalePnlType();
|
|
/// <summary>
|
|
/// 本年累计额(元)
|
|
/// </summary>
|
|
public TransactionScalePnlType Year { get; set; } = new TransactionScalePnlType();
|
|
}
|
|
|
|
public class TransactionScalePnlType
|
|
{
|
|
|
|
/// <summary>
|
|
/// 场内
|
|
/// </summary>
|
|
public TransactionScalePnlItem Hedge { get; set; } = new TransactionScalePnlItem();
|
|
|
|
/// <summary>
|
|
/// 期权
|
|
/// </summary>
|
|
public TransactionScalePnlItem Option { get; set; } = new TransactionScalePnlItem();
|
|
|
|
/// <summary>
|
|
/// 所有的
|
|
/// </summary>
|
|
public TransactionScalePnlItem All { get; set; } = new TransactionScalePnlItem();
|
|
}
|
|
|
|
public class TransactionScalePnlItem
|
|
{
|
|
private double _realizedPnl;
|
|
/// <summary>
|
|
/// 已实现损益
|
|
/// </summary>
|
|
public double RealizedPnl { get { return _realizedPnl; } set { _realizedPnl = value.Normalize(); } }
|
|
private double _pnl;
|
|
/// <summary>
|
|
/// 公允价值变动损益
|
|
/// </summary>
|
|
public double Pnl { get { return _pnl; } set { _pnl = value.Normalize(); } }
|
|
/// <summary>
|
|
/// 损益合计
|
|
/// </summary>
|
|
public double Sum
|
|
{
|
|
get
|
|
{
|
|
return RealizedPnl + Pnl;
|
|
}
|
|
}
|
|
}
|
|
|
|
public class TransactionScaleMarginInfoModel
|
|
{
|
|
/// <summary>
|
|
/// 存量名义本金总额
|
|
/// (单位:元)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockNotionalTotal { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 存量交易对应履约保障品价值
|
|
/// (单位:元)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockClientCashTotle { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 存量交易对应履约保障品价值-现金
|
|
/// (单位:元)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockClientCash { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 存量交易对应履约保障品价值-抵押品
|
|
/// (单位:元)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockClientProduct { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 业务整体履约保障比例(全额)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockMarginPercentFull { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 业务整体履约保障比例(净额)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockMarginPercentNet { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 本月违约客户数(单位:户)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockBadClientMonthly { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 本月违约交易数(单位:笔)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockBadTradeMonthly { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 本年累计为约客户数(单位:户)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockBadClientYear { get; set; } = new TransactionScaleMarginItem();
|
|
/// <summary>
|
|
/// 本年累计违约交易数(单位:笔)
|
|
/// </summary>
|
|
public TransactionScaleMarginItem StockBadTradeYear { get; set; } = new TransactionScaleMarginItem();
|
|
}
|
|
|
|
public class TransactionScaleMarginItem
|
|
{
|
|
private double _monthly;
|
|
/// <summary>
|
|
/// 本月末
|
|
/// </summary>
|
|
public double Monthly { get { return _monthly; } set { _monthly = value.Normalize(); } }
|
|
private double _preMonthly;
|
|
/// <summary>
|
|
/// 上月末
|
|
/// </summary>
|
|
public double PreMonthly { get { return _preMonthly; } set { _preMonthly = value.Normalize(); } }
|
|
}
|
|
|
|
/// <summary>
|
|
/// 场外衍生品客户情况统计表
|
|
/// </summary>
|
|
public class TransactionScaleClientInfoType
|
|
{
|
|
/// <summary>
|
|
/// 本月末
|
|
/// </summary>
|
|
public TransactionScaleItem Monthly { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 上月末
|
|
/// </summary>
|
|
public TransactionScaleItem PreMonthly { get; set; } = new TransactionScaleItem();
|
|
}
|
|
|
|
public class TransactionScaleInfoModel
|
|
{
|
|
/// <summary>
|
|
/// 本月累计
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyTotal { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本年累计
|
|
/// </summary>
|
|
public TransactionScaleItem YearTotal { get; set; } = new TransactionScaleItem();
|
|
}
|
|
|
|
public class TransactionScaleSizeType
|
|
{
|
|
/// <summary>
|
|
/// 互换类
|
|
/// </summary>
|
|
public TransactionScaleSizeInfo1 Swap { get; set; } = new TransactionScaleSizeInfo1();
|
|
/// <summary>
|
|
/// 期权类
|
|
/// </summary>
|
|
public TransactionScaleSizeInfo1 Option { get; set; } = new TransactionScaleSizeInfo1();
|
|
/// <summary>
|
|
/// 远期类
|
|
/// </summary>
|
|
public TransactionScaleSizeInfo1 Forward { get; set; } = new TransactionScaleSizeInfo1();
|
|
}
|
|
|
|
public class TransactionScaleSizeInfo1
|
|
{
|
|
/// <summary>
|
|
/// 上月末存量
|
|
/// </summary>
|
|
public TransactionScaleItem PreMonthlyCount { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本月新增开仓
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyOpen { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 中小微企业本月新增开仓
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyOpenSmallAndMicro { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 上市公司本月新增开仓
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyOpenListed { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本月平仓
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyUnwind { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本月执行/终止交易
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyExecute { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本月末存量
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyCount { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本月末存量
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyCountSmallAndMicro { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本月末存量
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyCountListed { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本年累计新增(请公司注意填写)
|
|
/// <para>本年累计:"各交易类型年度累计新增成交量,成交名义本金及权利金收取和支付"</para>
|
|
/// </summary>
|
|
public TransactionScaleItem YearCount { get; set; } = new TransactionScaleItem();
|
|
}
|
|
|
|
public class TransactionScaleSizeInfo2
|
|
{
|
|
/// <summary>
|
|
/// 本月新增开仓
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyOpen { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本月平仓
|
|
/// </summary>
|
|
public TransactionScaleItem MonthlyUnwind { get; set; } = new TransactionScaleItem();
|
|
/// <summary>
|
|
/// 本年累计新增(请公司注意填写)
|
|
/// <para>本年累计:"各交易类型年度累计新增成交量,成交名义本金及权利金收取和支付"</para>
|
|
/// </summary>
|
|
public TransactionScaleItem YearCount { get; set; } = new TransactionScaleItem();
|
|
}
|
|
|
|
public class TransactionScaleItem
|
|
{
|
|
private double _stock;
|
|
/// <summary>
|
|
/// 个股
|
|
/// </summary>
|
|
public double Stock { get { return _stock; } set { _stock = value.Normalize(); } }
|
|
|
|
private double _index;
|
|
/// <summary>
|
|
/// 指数
|
|
/// </summary>
|
|
public double Index { get { return _index; } set { _index = value.Normalize(); } }
|
|
|
|
private double _fund;
|
|
/// <summary>
|
|
/// 基金
|
|
/// </summary>
|
|
public double Fund { get { return _fund; } set { _fund = value.Normalize(); } }
|
|
|
|
private double _other;
|
|
/// <summary>
|
|
/// 其他
|
|
/// </summary>
|
|
public double Other { get { return _other; } set { _other = value.Normalize(); } }
|
|
|
|
//private double _industrialClient;
|
|
///// <summary>
|
|
///// 产业客户
|
|
///// </summary>
|
|
//public double IndustrialClient { get { return _industrialClient; } set { _industrialClient = value.Normalize(); } }
|
|
|
|
//private double _otherClient;
|
|
///// <summary>
|
|
///// 其他机构
|
|
///// </summary>
|
|
//public double OtherClient { get { return _otherClient; } set { _otherClient = value.Normalize(); } }
|
|
|
|
/// <summary>
|
|
/// 合计
|
|
/// </summary>
|
|
public double Sum { get { return Stock + Index + Fund + Other; } }
|
|
|
|
private double _commodity;
|
|
/// <summary>
|
|
/// 商品
|
|
/// </summary>
|
|
public double Commodity { get { return _commodity; } set { _commodity = value.Normalize(); } }
|
|
|
|
public TransactionScaleItem() { }
|
|
|
|
public TransactionScaleItem(double stock, double index, double fund, double other, double commodity)
|
|
{
|
|
this.Stock = stock;
|
|
this.Index = index;
|
|
this.Fund = fund;
|
|
this.Other = other;
|
|
this.Commodity = commodity;
|
|
}
|
|
}
|
|
}
|