采纳命名审查建议(优先级最高的2项): 1. UnderlyingFullPriceLeg → UnderlyingEntryFullPriceLeg 补齐'期初(Entry)'——建仓时点全价, 非当前全价, 金融上是不同计息口径 2. FixedNotionalLeg → FixedAmountLeg 去掉误导性的Notional——'固定值'是合同写死的数额, 不一定是名义本金, 避免与ContractNotionalLeg的Notional概念撞车 3. DividendCalc 补充注释: 业务含义(债券票息+股票分红统一用Dividend)、 税务口径(还原不含税再扣税)、命名保持理由 验证: 编译0错误, 全量507测试7失败(基线一致)。
20 lines
992 B
C#
20 lines
992 B
C#
using YLErp.DBModels;
|
||
|
||
namespace YLErp.Modules.SwapModule.FundingLegs;
|
||
|
||
/// <summary>
|
||
/// 标的期初全价融资腿(InterestMode=标的期初全价)。
|
||
/// 计息基数 = 标的期初含费全价(PosiGrossPrice/EntryDirtyPrice) × 数量。
|
||
/// "期初(Entry)"是关键——建仓时点的全价,非当前估值全价。
|
||
/// 主路径 CalcNotionalByMode 公式与合约名义本金规模(2)相同;
|
||
/// 差异在衡泰路径会乘 grossPrice 折算(SwapDealService.GetUnwindInterestsByHT),
|
||
/// 以及 EOD 复利部分平仓后直接返回剩余本金(禁止反推,SwapEodPositionService:1458-1465)。
|
||
/// </summary>
|
||
public sealed class UnderlyingEntryFullPriceLeg : IFundingLegStrategy
|
||
{
|
||
public InterestModeEnum Mode => InterestModeEnum.标的期初全价;
|
||
|
||
public NotionalResult CalcNotional(decimal fix, decimal posiNotional, decimal posiLong, decimal posiShort, decimal closePercent)
|
||
=> new(posiNotional * closePercent, posiNotional, closePercent);
|
||
}
|