docs(margin): 修正 CalcMarginInterest remarks——SwapIntervalList 单段是保证金本性而非限制
第2点措辞修正:原写"SwapIntervalList 必须单段(多段会漏分段)"误导,把业务本性误述成代码限制。 实际:保证金=固定利率(业务定义),SwapIntervalList 多段是融资腿 FR007 概念与保证金无关; CalcMarginInterest 只消费 rate(GetFixedRate 已处理分段),不直接读 SwapIntervalList, 单段 segmentRates 是对固定利率的正确建模。纯注释,零行为变化。
This commit is contained in:
@@ -954,11 +954,13 @@ namespace YLErp.Modules.SwapModule
|
||||
/// (融资腿 orginPv=浮动端名义本金)。保留累计语义(priorAccrued + 增量),满足下游字段契约。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 隐式假设(违反会静默算错、无 assert 防护——由前端保证金表单保证;诊断时先核对这两条):
|
||||
/// 1. <b>InterestType 必须为单利</b>。本方法恒走 SimpleInterestAccrual 单利,不查 InterestType;
|
||||
/// 若库内 InterestMode=5/6 且 InterestType=复利(脏数据),会与旧 CalcEodInterest 的复利分支不一致。
|
||||
/// 2. <b>SwapIntervalList 必须单段</b>。盘中用 [(PosiStartDate, rate)] 单段,不做 BuildSegmentRates 多段;
|
||||
/// rate 入参须已是生效固定利率(GetInterests:746 GetFixedRate)。若保证金利率表被改成多段会漏分段。
|
||||
/// 前提(由前端保证金表单 + SwapTradeService 构造保证):
|
||||
/// 1. <b>InterestType=单利</b>。本方法恒走 SimpleInterestAccrual 单利,不查 InterestType;
|
||||
/// 若库内 InterestMode=5/6 且 InterestType=复利(脏数据),会与旧 CalcEodInterest 复利分支不一致。
|
||||
/// 2. <b>保证金=固定利率</b>——这是业务定义,不是本方法的限制。前端无分段利率入口、SwapTradeService
|
||||
/// 构造单段 SwapIntervalList,故 rate 入参即全程固定利率(GetFixedRate 对单段表返回 InterestRateDefault)。
|
||||
/// 盘中 segmentRates=[(PosiStartDate, rate)] 单段是对固定利率的正确建模。SwapIntervalList 多段是融资腿
|
||||
/// FR007 的概念,与保证金无关;本方法只消费 rate(GetFixedRate 已处理分段取值),不直接读 SwapIntervalList。
|
||||
/// 契约与副作用:
|
||||
/// 3. <b>position.InterestDirection 须已由调用方翻转</b>(GetInterests:742 FlipDirection);本方法不翻转。
|
||||
/// 4. <b>preEod 在 id==0 时被就地修改</b>(设 TdInterestPrincipal/PosiNotionalValue/FloatRate),与旧 CalcEodInterest 一致。
|
||||
|
||||
Reference in New Issue
Block a user