Atlas 技術版 > shioaji-holdings-sync
shioaji-holdings-sync:從 Shioaji 拉即時庫存寫入 portfolio_snapshots 表,供持股健檢與系統健康檢查讀取。
mode=NO_AGENT state=scheduled enabled=1
schedule=25 15 * * *
next_run=2026-10-21T15:25:00 last_run=2026-10-20T15:25:16
deliver=telegram model=— provider=—
script=/Users/exion/.hermes/scripts/sync_holdings_from_shioaji.py
monitor_script=— monitor_url=—
skills=[]
workdir=—
prompt_sha256=1097523941b9434b… chars=51
skill_files={}
執行 Shioaji 庫存同步腳本,更新 stock_list.json 的 holdings 陣列。…
| rule | value | source |
|---|---|---|
| none extracted | ||
| kind | path | name | access |
|---|---|---|---|
| SQLITE_DB | /Users/exion/.hermes/data/investment.db | unknown | |
| SQLITE_TABLE | self | sqlite_master | read |
| SQLITE_TABLE | self | holdings_sync_runs | read |
| SQLITE_TABLE | self | fs_entries | read |
| SQLITE_TABLE | self | fs_strategy_trades | read |
| SQLITE_TABLE | self | holdings_current | read |
| SQLITE_TABLE | self | watchlist_memberships | read |
| SQLITE_TABLE | self | anchor_tracking_state | read |
| SQLITE_TABLE | self | anchor_tracking_state | read |
| SQLITE_TABLE | self | watchlist_memberships | read |
| SQLITE_TABLE | self | anchor_tracking_state | read |
| SQLITE_TABLE | self | holdings_current | read |
| SQLITE_TABLE | self | portfolio_snapshots | write |
| SQLITE_TABLE | self | holdings_lifecycle_schema | write |
| SQLITE_TABLE | self | holdings_position_detail_evidence | write |
| SQLITE_TABLE | self | holdings_lifecycle_events | write |
| SQLITE_TABLE | self | holdings_current | write |
| SQLITE_TABLE | self | holdings_snapshot_history | write |
| SQLITE_TABLE | self | holdings_snapshot_history | write |
| SQLITE_TABLE | self | holdings_sync_runs | write |
| SQLITE_TABLE | self | holdings_snapshot_history | write |
| SQLITE_TABLE | self | holdings_sync_runs | write |
| FILE_READ | /Users/exion/.hermes/.env | read | |
| FILE_READ | /Users/exion/.hermes/.env | read | |
| FILE_READ | /Users/exion/.hermes/.env | read | |
| FILE_WRITE | +00:00 | write | |
| MODULE | /Users/exion/.hermes/scripts/shioaji_holdings_lifecycle.py | shioaji_holdings_lifecycle | import |
| MODULE | /Users/exion/.hermes/scripts/sync_holdings_to_observation.py | sync_holdings_to_observation | import |
| MODULE | /Users/exion/.hermes/lib/trading_calendar.py | trading_calendar | import |
| MODULE | /Users/exion/.hermes/lib/daily_k_provider.py | daily_k_provider | import |
| MODULE | /Users/exion/.hermes/scripts/sync_holdings_to_observation.py | sync_holdings_to_observation | import |
| MODULE | /Users/exion/.hermes/scripts/sync_holdings_to_observation.py | sync_holdings_to_observation | import |
| MODULE | /Users/exion/.hermes/scripts/holdings_symbol_feed/publisher.py | holdings_symbol_feed.publisher | import |
| CONFIG | UNKNOWN | unknown | |
| CONFIG | UNKNOWN | unknown | |
| CONFIG | UNKNOWN | unknown |
Upstream: —
Downstream: TH-0150 持股 Feed 自然刷新驗收(一次)、系統健康檢查、三大法人買賣超每日更新
Transitive downstream (22): 定錨追蹤變動通知 (85610579e9e1)、層零市場風險過濾器 (11c1041f48b4)、Intraday Holdings Risk Owner (ac6b78141cb5)、13:07 盤中狀態通知 (5410c0495072)、早盤風向-0945 (b02745c072bb)、持股同步觀察清單 (cc1a17e96632)、E7×C20 影子策略每日 EOD(ingest→雙帳→月報→通知) (1dba3cb93ead)、DAILY_E7_FORMAL 每日正式訊號 (5b90a48ae44c)、盤中13:00帶量長紅K掃描 (ce780536ef1c)、E7 Control vs C20 Prospective Lifetime Shadow (45037d292145)、TH-0154 Runner參考線自然驗收讀回(一次) (67746172fb4e)、處置股票狀態查詢 (61f12b08c955) …+10
| type | hard? | from | to | resource | origin | conf | evidence |
|---|---|---|---|---|---|---|---|
| DATA | soft | shioaji-holdings-sync | 系統健康檢查 | sqlite:portfolio_snapshots | STATIC | 0.75 | table 'portfolio_snapshots' write@70a918c3f294(line 159) -> read@565ad371fad2(line 129) |
| DATA | soft | shioaji-holdings-sync | TH-0150 持股 Feed 自然刷新驗收(一次) | sqlite:holdings_current | STATIC | 0.75 | table 'holdings_current' write@70a918c3f294(line 530) -> read@4ead92294154(line 57) |
| DATA | hard | shioaji-holdings-sync | 三大法人買賣超每日更新 | ~/.hermes/data/stock_list.json | MANIFEST | 1.0 | manifest data contract '~/.hermes/data/stock_list.json' output(70a918c3f294.json) -> input(d768546515da.json) |
failure_streak=0
last_error=—
delivery_error=—
change_risk=CRITICAL