fix(margin): 回退 PreviousBalance 简化, 恢复三级 fallback
尝试去掉第2级(TdInterestPrincipal)导致5个保证金测试失败。 根因: 生产 EOD 归档(eod_swap_position(35774))的 InterestPrincipalFix=0, 只有 TdInterestPrincipal 有值。第2级不是死代码, 不可删。 恢复三级 fallback, 补充注释说明每级命中的真实场景。 教训: 不能只看赋值点判断字段是否有值, 必须看实际数据。 验证: 编译0错误, 全量509测试7失败(基线一致)。
This commit is contained in:
@@ -9,7 +9,12 @@ public static class MarginCalc
|
||||
{
|
||||
/// <summary>
|
||||
/// 取上一日终保证金余额。
|
||||
/// 优先 InterestPrincipalFix,其次 TdInterestPrincipal,都没有用 fallback。
|
||||
///
|
||||
/// 三级优先级(均有测试覆盖,不可简化):
|
||||
/// 1. InterestPrincipalFix——EOD 归档赋值时的首选字段
|
||||
/// 2. TdInterestPrincipal——部分 EOD 归档路径未写 InterestPrincipalFix(值为0),
|
||||
/// 此时 TdInterestPrincipal 含正确的保证金本金(生产 eod_swap_position(35774) 即此场景)
|
||||
/// 3. fallback——首次平仓(preEod.id==0, 无归档)时用当日保证金余额
|
||||
/// </summary>
|
||||
public static decimal PreviousBalance(eod_swap_position preEod, decimal fallback)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user