#EQD-6947 国联民生-保证金计算整体改造-实现第一版盯市规则(不支持同一客户多部门)(1)保证金规则的设置 阶段1,开放v2

This commit is contained in:
锦麟 王
2026-08-12 15:38:55 +08:00
parent c86633479d
commit ab90712255
21 changed files with 486 additions and 48 deletions
@@ -164,6 +164,10 @@ namespace YLErp.DBModels
{
return MarginRuleTypeEnum.1.ToString();
}
else if (RuleType == (int)MarginRuleTypeEnum.)
{
return MarginRuleTypeEnum..ToString();
}
return "";
}
@@ -16,6 +16,8 @@
SPAN = 11,
1 = 12,
1 = 13,
//otcdms 的 14 为 Delta计算规则,本系统不使用,区间追保结构从 15 开始避免与 otcdms 编号冲突
= 15,
= 98,
= 99
}
@@ -15,6 +15,10 @@ namespace YLErp.Enums
/// <summary>
/// 按自定义权益分类
/// </summary>
CustomStock = 1
CustomStock = 1,
/// <summary>
/// 按资产类型分类(区间追保结构使用,分类取值见 UnderlyingTypeEnum 中 ConsGlobal.InstrumentType 对应的标志位)
/// </summary>
CustomInstrumentType = 2
}
}
@@ -31,6 +31,137 @@ namespace YLErp.Enums
/// </summary>
Other = 1 << 3,
/// <summary>
/// 利率债(按标的资产类型分类,对应 ConsGlobal.InstrumentType.TBonds
/// </summary>
TBonds = 1 << 4,
/// <summary>
/// 信用债(对应 ConsGlobal.InstrumentType.CreditBonds
/// </summary>
CreditBonds = 1 << 5,
/// <summary>
/// 其它债券(对应 ConsGlobal.InstrumentType.OtherBonds
/// </summary>
OtherBonds = 1 << 6,
//以下为"按资产类型分类"的其余资产类型,取值与 ConsGlobal.InstrumentType 一一对应
/// <summary>
/// 股票
/// </summary>
Stock = 1 << 7,
/// <summary>
/// 股指
/// </summary>
StockIndex = 1 << 8,
/// <summary>
/// 股指期货
/// </summary>
StockIF = 1 << 9,
/// <summary>
/// 商品期货
/// </summary>
CommodityFutures = 1 << 10,
/// <summary>
/// 商品现货
/// </summary>
CommoditySpot = 1 << 11,
/// <summary>
/// 新三板挂牌股票
/// </summary>
NewOtcStock = 1 << 12,
/// <summary>
/// 香港股票
/// </summary>
HKStock = 1 << 13,
/// <summary>
/// 香港股指
/// </summary>
HKStockIndex = 1 << 14,
/// <summary>
/// 基金及基金专户
/// </summary>
Fund = 1 << 15,
/// <summary>
/// 黄金期货
/// </summary>
GoldFutures = 1 << 16,
/// <summary>
/// 国债期货
/// </summary>
TBFutures = 1 << 17,
/// <summary>
/// 其他期货
/// </summary>
OtherFutures = 1 << 18,
/// <summary>
/// 黄金现货
/// </summary>
GoldSpot = 1 << 19,
/// <summary>
/// 其他现货
/// </summary>
OtherSpot = 1 << 20,
/// <summary>
/// 境外期货
/// </summary>
AbroadFutures = 1 << 21,
/// <summary>
/// 境外现货
/// </summary>
AbroadSpot = 1 << 22,
/// <summary>
/// 境外股票
/// </summary>
AbroadStock = 1 << 23,
/// <summary>
/// 境外股指
/// </summary>
AbroadStockIndex = 1 << 24,
/// <summary>
/// 汇率
/// </summary>
ExRate = 1 << 25,
/// <summary>
/// Shibor
/// </summary>
Shibor = 1 << 26,
/// <summary>
/// 银行间回购定盘
/// </summary>
FixingRepoRate = 1 << 27,
/// <summary>
/// 利率收益率
/// </summary>
RateYield = 1 << 28,
/// <summary>
/// 债券指数
/// </summary>
BondIndex = 1 << 29,
/// <summary>
/// 全部
/// </summary>
@@ -59,14 +190,66 @@ namespace YLErp.Enums
return "个股/ETF-非核准制发行";
case UnderlyingTypeEnum.Other:
return "其他";
case UnderlyingTypeEnum.TBonds:
return "利率债";
case UnderlyingTypeEnum.CreditBonds:
return "信用债";
case UnderlyingTypeEnum.OtherBonds:
return "其它债券";
case UnderlyingTypeEnum.Stock:
return "股票";
case UnderlyingTypeEnum.StockIndex:
return "股指";
case UnderlyingTypeEnum.StockIF:
return "股指期货";
case UnderlyingTypeEnum.CommodityFutures:
return "商品期货";
case UnderlyingTypeEnum.CommoditySpot:
return "商品现货";
case UnderlyingTypeEnum.NewOtcStock:
return "新三板挂牌股票";
case UnderlyingTypeEnum.HKStock:
return "香港股票";
case UnderlyingTypeEnum.HKStockIndex:
return "香港股指";
case UnderlyingTypeEnum.Fund:
return "基金及基金专户";
case UnderlyingTypeEnum.GoldFutures:
return "黄金期货";
case UnderlyingTypeEnum.TBFutures:
return "国债期货";
case UnderlyingTypeEnum.OtherFutures:
return "其他期货";
case UnderlyingTypeEnum.GoldSpot:
return "黄金现货";
case UnderlyingTypeEnum.OtherSpot:
return "其他现货";
case UnderlyingTypeEnum.AbroadFutures:
return "境外期货";
case UnderlyingTypeEnum.AbroadSpot:
return "境外现货";
case UnderlyingTypeEnum.AbroadStock:
return "境外股票";
case UnderlyingTypeEnum.AbroadStockIndex:
return "境外股指";
case UnderlyingTypeEnum.ExRate:
return "汇率";
case UnderlyingTypeEnum.Shibor:
return "Shibor";
case UnderlyingTypeEnum.FixingRepoRate:
return "银行间回购定盘";
case UnderlyingTypeEnum.RateYield:
return "利率收益率";
case UnderlyingTypeEnum.BondIndex:
return "债券指数";
default:
break;
}
var nt = (int)type;
var list = new List<string>(4);
var list = new List<string>(8);
for (var i = 0; i <= 3; i++)
for (var i = 0; i <= 29; i++)
{
if ((nt & (1 << i)) > 0)
{