Skip to content

feat(engine+skill): 多幣別現金桶 — 台美各帳戶各自錨點,per-currency 各算再 fx 聚合 (refs #171)#178

Merged
atomchung merged 1 commit into
mainfrom
claude/fomokernel-multi-ccy-cash
Jul 12, 2026
Merged

feat(engine+skill): 多幣別現金桶 — 台美各帳戶各自錨點,per-currency 各算再 fx 聚合 (refs #171)#178
atomchung merged 1 commit into
mainfrom
claude/fomokernel-multi-ccy-cash

Conversation

@atomchung

Copy link
Copy Markdown
Owner

⚠️ Stacked on #177(台股)。base = claude/silly-sutherland-974463,diff 只含多幣別改動。#177 先 merge、且 merge 時不要 --delete-branch,我再把本 PR retarget 到 main。

問題(台股 session #173 挖出的遺留)

單一 TR_CASH 只表一種幣 → 台美各帳戶現金無法各自錨定。#177 的混市場帳戶只給 TWD 錨點時,USD 現金靠 csv_sum 盲算 → 現金比重/入金判讀算不準。這是 owner 選定的下一步。

設計

cash_position 重構成 per-currency:每個幣別各自錨點(錨點+其後該幣別現金流)或 csv_sum,用 fx 聚合成 USD total。#177_anchor_to_aggregate(單一 anchor 換算)是此設計的特例,併入退役——單→多的一般化。

  • TR_CASH 支援 list(台美多帳戶各一錨點),向後相容單 dict
  • 輸出保持 {balance,weight,source,reliable,recent_net_deposit} 契約 + by_currency 明細
  • reliable:全幣別有錨點=true / 部分=partial / 全無=csv_sum
  • honesty_ledger.cash_reliability 對 partial 揭露 unanchored_currencies(只講缺錨點的帳戶,別把已可信的那半也講不準)

驗收

  • ✅ tw_mixed 雙錨點聚合:TWD 250k + USD 4k → balance=11788 USDreliable=trueby_currency={TWD,USD}(network smoke 實跑)
  • 部分錨點:只給 TWD → source=partialby_currency.USD.reliable=false、honesty 揭露 USD 缺
  • 向後相容:noisy_broker 單 USD 錨點 balance=22284 anchored,數字不變
  • run_all 十套綠(離線+network);契約測試 by_currency key 同步

檔案

內容
engine/trade_recap.py _cash_balance_one_ccy + cash_position per-currency 重構 + honesty partial
SKILL.md Step 0 TR_CASH list 格式 + card.cash by_currency 欄位
card-spec.md / EVALS.md B17 partial 講法(收窄到缺錨點的帳戶)
tests/ 多幣別純函式(雙錨點/partial/向後相容)+ tw_mixed 雙錨點 smoke + 契約 by_currency

遺留

#171 B 路線剩餘:TWR/Modified Dietz/IRR/cash drag(現金基建這下齊了)。

🤖 Generated with Claude Code

)

問題:單一 TR_CASH 只表一種幣,台美各帳戶現金無法各自錨定 → 混市場帳戶
現金比重/入金判讀算不準(台股 session #173 挖出的遺留)。

cash_position 重構成 per-currency:每個幣別各自錨點(錨點+其後該幣別現金流)
或 csv_sum,用 fx 聚合成 USD total。#177 的 _anchor_to_aggregate(單一 anchor
換算)是此設計的特例,併入退役。

- TR_CASH 支援 list(台美多帳戶各一錨點,向後相容單 dict)
- 輸出保持 {balance,weight,source,reliable,recent_net_deposit} 契約 + by_currency 明細
- reliable:全幣別有錨點=true / 部分=partial / 全無=csv_sum
- honesty_ledger cash_reliability 對 partial 揭露 unanchored_currencies(只講缺的帳戶、別把已可信的那半講不準)
- SKILL Step 0 TR_CASH list 格式 + card-spec partial 講法 + EVALS B17 同步

驗證:run_all 十套綠(離線+network);tw_mixed 雙錨點聚合(TWD 250k + USD 4k
→ 11788 USD reliable + by_currency);單幣 mock 向後相容(noisy_broker 單 USD
錨點 balance=22284 anchored,數字不變)。

stacked on #177(台股,claude/silly-sutherland-974463);#177 merge 後 retarget main。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@atomchung atomchung force-pushed the claude/fomokernel-multi-ccy-cash branch from 705edce to 58a50fa Compare July 12, 2026 11:23
@atomchung atomchung changed the base branch from claude/silly-sutherland-974463 to main July 12, 2026 11:23
@atomchung atomchung merged commit 5804ab6 into main Jul 12, 2026
6 checks passed
@atomchung atomchung deleted the claude/fomokernel-multi-ccy-cash branch July 12, 2026 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant