基金转换 T+1 模型:T-14 D27 产品舍入真正接入 + 联网核实纠偏(837 绿 / 真库 9/9 / 种子 v1.1 全 2 位)
- 接入面 4 处单点收敛:core_ro.get_share_digits(唯一回退链:规则行→core_product.share_digits→PLACES=2)· calc.in_qty 加 digits=PLACES 可选参数 · 确认段(business_type=convert)· 网关申购折算(subscribe);redeem 份额申报无折算无消费方 - 边界裁定:只接落库侧(开发计划 DoD 即边界),响应展示维持 q(D2) 收敛(2 位产品逐字节零漂移);PRD §2.5.2 展示按产品覆盖为登记开口 - 联网核实(用户铁律):主流 2 位 ✅ · 位数按各基金合同配置 ✅(南方 2012 调整公告)· 舍去 TRUNCATE 型真实存在 ✅ · 货基 2 位 ✅ · 「指数基金份额 4 位」证伪 ❌(ETF 联接/指数合同全 2 位)→ 11-seed-share-rule.sql v1.1:3 产品 9 行 4→2 + 头注重写为核实出处;「易方达 ETF 场外整数位」无证据有反证(登记开口待拍板) - 测试 +7(830→837 零回归):calc 层 2 + confirm 段 3(回退链三层各 1 + business_type 干扰行)+ 申购段 2;4 位种子行 = D27 机制验证载体(docstring 钉明) - 突变验证 2 组(confirm/gateway digits 改固定 2 → 各 2 红,还原零残留);真库 9/9 退出码 0(seed 重灌 42 行全 2 位生效) - 开口 2 项待用户拍板:① PRD §2.5.3 易方达句修订 ② rounding_mode=truncate 消费接入(真实存在、T-14 范围外)
This commit is contained in:
@@ -2,20 +2,44 @@ USE jinrong_core;
|
||||
|
||||
-- ============================================================================
|
||||
-- 11-seed-share-rule.sql · 产品份额舍入规则种子(D27 / R-13)
|
||||
-- 版本:v1.0(2026-09-11 · T-1 新增)
|
||||
-- 依据:开发计划 v2.0 T-14(D27 产品舍入真正接入)
|
||||
-- 说明 1:core_share_rule(product_id, business_type) 给 share_digits(默认 2);
|
||||
-- 与 core_product.share_digits 二选一优先 —— 规则行优先(T-14 DoD)。
|
||||
-- 说明 2:本文件给主要产品按 business_type 落 share_digits = 2(默认口径);
|
||||
-- 个别指数/货基给 4 位(真实业务中指数基金份额可计到 0.0001 份,
|
||||
-- 货币基金份额保持 0.01 元面值 2 位 —— 按 22 号文口径,指数基金申购/转
|
||||
-- 入确认份额允许保留 4 位小数,见 PRD 已知差异)。
|
||||
-- 说明 3:未被本文件覆盖的产品(business_type 无行)由 product_round 回退
|
||||
-- core_product.share_digits(默认 2),降级路径有显式用例(T-14 DoD 2)。
|
||||
-- 版本:v1.1(2026-09-12 · T-14 联网核实纠偏;v1.0 曾给指数/存单产品配 4 位,
|
||||
-- 注释依据「指数基金申购/转入确认份额允许保留 4 位小数」经联网核实
|
||||
-- 查无实据且反证充分,见下——全部产品改回主流 2 位)
|
||||
-- 依据:开发计划 v2.0 T-14(D27 产品舍入真正接入)+ 2026-09-12 联网核实
|
||||
--
|
||||
-- 【联网核实的真实业务口径(2026-09-12,逐条附出处)】
|
||||
-- 1. 位数按产品(基金合同)配置 —— 行业真实做法:
|
||||
-- 南方基金《关于调整旗下基金转换业务规则的公告》(2012) 明确把统一的
|
||||
-- 「转入份额四舍五入保留两位」改为「根据各基金基金合同和招募说明书的
|
||||
-- 相关规定保留小数点后 2 位」(pdf.dfcfw.com/pdf/H22_AN201202280004321524_1.pdf)
|
||||
-- —— 这正是 D27「按产品配置」的最直接行业依据。
|
||||
-- 2. 份额位数主流 2 位(申购/转换一致):
|
||||
-- - 民生加银《基金转换规则》第八条:申请转换份额按四舍五入保留到小数点后 2 位
|
||||
-- (msjyfund.com.cn/osoa/views/serviceCenter/conversionRule.html)
|
||||
-- - 富时基金《开放式基金业务管理规则》:申购份额保留 2 位、第 3 位四舍五入
|
||||
-- - 汇添富深证300 ETF 联接 / 华夏恒生 ETF 联接 / 易方达沪深300非银 ETF 基金合同:
|
||||
-- 指数(联接)基金申购份额同样保留 2 位 —— **「指数基金 4 位」查无实据**
|
||||
-- - 货币基金:1.00 元面值、份额 = 金额 ÷ 1.00 保留 2 位四舍五入
|
||||
-- (中银货币 / 融通易支付 / 鑫元货币基金合同)
|
||||
-- 3. 舍入方式真实存在「舍去(TRUNCATE)」型 —— rounding_mode 字段的现实载体:
|
||||
-- - 南方利众混合 C 转换公告:份额保留 2 位、两位以后的部分**舍去**归基金资产
|
||||
-- - 邮储银行《基金转换常见问题》:转换份额 2 位后舍去
|
||||
-- - 华宝未来主导混合 / 申万菱信业务规则 / 东方基金登记业务规则:同类「舍去」条款
|
||||
-- ⚠️ 本项目 T-14 只接入 share_digits;rounding_mode='truncate' 的消费接入为
|
||||
-- 登记开口(真实差异载体,待用户裁定后排期),故本种子暂不配置 truncate 行,
|
||||
-- 避免出现「种子有值、实现不消费」的半成品。
|
||||
-- 4. 整数位的真实载体是**场内渠道**(LOF/ETF 场内申购先 2 位再截位到整数份,
|
||||
-- 如招商瑞智优选 LOF 基金合同),不是产品固有属性;本项目无场内/场外渠道
|
||||
-- 维度,不做该建模。
|
||||
--
|
||||
-- 说明(回退链,11-seed 头注 v1.0 原文沿用):未被本文件覆盖的产品
|
||||
-- (business_type 无行)由 core_ro.get_share_digits 回退 core_product.share_digits
|
||||
-- (DEFAULT 2)→ 再缺省回退 calc.PLACES(2)。降级路径有显式用例(T-14 DoD 2)。
|
||||
-- ============================================================================
|
||||
|
||||
INSERT INTO core_share_rule (product_id, business_type, share_digits, rounding_mode) VALUES
|
||||
-- 主演示产品:统一 2 位(大众口径)
|
||||
-- 全部产品:主流 2 位 HALF_UP(核实结论:公募场外申购/转换份额位数主流即 2 位,
|
||||
-- 产品间真实差异在舍入方式而非位数 —— 见头注 1/2/3)
|
||||
('PROD-110022', 'subscribe', 2, 'half_up'),
|
||||
('PROD-110022', 'redeem', 2, 'half_up'),
|
||||
('PROD-110022', 'convert', 2, 'half_up'),
|
||||
@@ -34,16 +58,16 @@ INSERT INTO core_share_rule (product_id, business_type, share_digits, rounding_m
|
||||
('PROD-000001', 'subscribe', 2, 'half_up'),
|
||||
('PROD-000001', 'redeem', 2, 'half_up'),
|
||||
('PROD-000001', 'convert', 2, 'half_up'),
|
||||
-- 指数/货基:份额 4 位(R13 依据:指数基金份额确认允许 4 位小数)
|
||||
('PROD-510300', 'subscribe', 4, 'half_up'),
|
||||
('PROD-510300', 'redeem', 4, 'half_up'),
|
||||
('PROD-510300', 'convert', 4, 'half_up'),
|
||||
('PROD-510500', 'subscribe', 4, 'half_up'),
|
||||
('PROD-510500', 'redeem', 4, 'half_up'),
|
||||
('PROD-510500', 'convert', 4, 'half_up'),
|
||||
('PROD-000002', 'subscribe', 4, 'half_up'),
|
||||
('PROD-000002', 'redeem', 4, 'half_up'),
|
||||
('PROD-000002', 'convert', 4, 'half_up'),
|
||||
-- 指数/存单产品:同为 2 位(v1.0 曾配 4 位,注释依据经联网核实不成立,2026-09-12 纠偏)
|
||||
('PROD-510300', 'subscribe', 2, 'half_up'),
|
||||
('PROD-510300', 'redeem', 2, 'half_up'),
|
||||
('PROD-510300', 'convert', 2, 'half_up'),
|
||||
('PROD-510500', 'subscribe', 2, 'half_up'),
|
||||
('PROD-510500', 'redeem', 2, 'half_up'),
|
||||
('PROD-510500', 'convert', 2, 'half_up'),
|
||||
('PROD-000002', 'subscribe', 2, 'half_up'),
|
||||
('PROD-000002', 'redeem', 2, 'half_up'),
|
||||
('PROD-000002', 'convert', 2, 'half_up'),
|
||||
('PROD-161725', 'subscribe', 2, 'half_up'),
|
||||
('PROD-161725', 'redeem', 2, 'half_up'),
|
||||
('PROD-161725', 'convert', 2, 'half_up'),
|
||||
@@ -58,4 +82,4 @@ INSERT INTO core_share_rule (product_id, business_type, share_digits, rounding_m
|
||||
('PROD-WMG001', 'convert', 2, 'half_up'),
|
||||
('PROD-PRIV01', 'subscribe', 2, 'half_up'),
|
||||
('PROD-PRIV01', 'redeem', 2, 'half_up'),
|
||||
('PROD-PRIV01', 'convert', 2, 'half_up');
|
||||
('PROD-PRIV01', 'convert', 2, 'half_up');
|
||||
|
||||
Reference in New Issue
Block a user