用途:把 SnapTrade 的持仓与余额同步进本地 family_office.db,并在任何人基于该快照推理前做安全校验。family_office.db 是系统记录源;Google Sheets DataHub 已于 2026-07-31 退役,无表格可推送,也未配置 gdrive MCP。
主要能力与用法:采用“先同步、再读库”模式。刷新持仓与余额:uv run python -m src.integrations.snaptrade.sync_db;回读快照加 --show。同时刷新持仓、交易与银行支出:uv run python -m src.integrations.refresh_all。账户路由由 config/snaptrade-accounts.yaml 声明角色与启用标志,未声明角色的账户拒绝同步;现金管理账户归 SimpleFIN(TransactionSyncing),不在此处理。
安全门:sync_db 是当前状态存储,会删除各账户旧持仓行并覆盖单条余额行,无历史表。运行前须先捕获“之前”状态(查询 positions 与 balances)并在会话中保留以做差异。STOP 条件(需用户确认):标的数少于上次、任一数量变动超 10%、成本基础变动超 20%、保证金余额跳增超 $5,000、SPAXX 与余额行差异超 $100。FLAG 条件:SPAXX 差 $1–$100、待处理活动差超 $100。
现金逻辑:不要用 SPAXX 持仓值,应使用余额行的“Settled cash”;若为 0 则 SPAXX 为 $0。“Cash market value”不是现金。
价格新鲜度:SnapTrade 价格滞后一个交易日,即使 synced_at 为当前时间,account_equity 与 gross_market_value 仍滞后;持仓、数量、成本基础、结算现金、保证金债务结构上可靠。有重大波动日应先按市价调整再推理。可用 yfinance 对比 DB 价格与实时收盘价检查新鲜度。
新标的分类:分红基金→Layer 2,成长→Layer 1,对冲→Layer 3;不明确则标 UNKNOWN - Manual Review Required 并询问用户。CSV 导入仅为回退与复核路径,非主流程。
限制:无持仓历史表;价格与派生比率滞后;未提供收费、平台支持范围等信息。