Manual v0.2 實盤前 Preflight

這頁只做讀取與檢查,不送 Binance 訂單,也不修改策略。它用來判斷目前 dev-only execution 功能離「可以接實盤」還缺哪些關卡。

整體狀態
未通過

FAIL=1, WARN=5

策略版本
manual_strategy_v0_2_1_first_breakout_lock

30m->5m / TP 0.035

SQLite 狀態庫
存在

/var/lib/trad-staging/results/manual_v0_2/forward_paper_test/paper_state.sqlite

正式未平倉
1

切 live 前建議為 0

未轉單 fills
0

需先轉 dry-run

被擋 dry-run
0

需人工檢查

作廢稽核
9

保留舊紀錄,不送單

待演練訂單
0

fake/testnet 前需處理

已成交演練
89

fake/testnet lifecycle

testnet 事件
4720

Demo/Testnet 回寫次數

Paper/Testnet 對帳
一致

paper=BTCUSDT / testnet=BTCUSDT

可重試失敗
0

需人工處理或重試

最新 run_once
success

2026-09-21 19:48 +08:00

最近完成 run
success

2026-09-21 19:48 +08:00

資料水位
2026-09-21 19:48 +08:00

data_update/update_end

策略水位
2026-09-21 19:44 +08:00

strategy_update/update_end

單筆名目
4,000

USDT

白話:只要有任何「未通過」,就不應接實盤;「注意」代表可以繼續開發或 paper 觀察,但 live 前要補齊或人工確認。

檢查清單

分類檢查項目狀態白話說明依據
設定檔dry-run execution 設定存在通過缺少 execution 設定時,無法確認風控與 dry-run audit 輸出。/var/lib/trad-staging/tmp/execution_dry_run_runtime.json
設定檔策略 frozen config 存在通過實盤前必須明確知道目前策略版本、TP/SL、部位大小與 forward 起點。/etc/trad-staging/manual_strategy_v0_2_frozen_candidate_linux.json
風控設定執行模式必須停在 dry-run/demo通過目前只允許做下單前演練;正式 live 開關不應在這個階段打開。mode=dry_run, allow_live_trading=False
風控設定允許標的必須剛好等於策略標的通過避免 execution 白名單多出策略外幣種,也避免漏掉策略正在追蹤的幣種。strategy=BTCUSDT, VIRTUALUSDT, NEARUSDT, ONDOUSDT, allowed=BTCUSDT, VIRTUALUSDT, NEARUSDT, ONDOUSDT
風控設定只允許 MARKET 市價單通過目前策略規格是碰價後市價進出,尚未開放其他委託型態。MARKET
風控設定單筆名目上限需覆蓋策略單筆名目通過風控上限不能小於策略每筆預計名目,否則 dry-run 會一直被擋。strategy_notional=4000, max_order=4000
風控設定單標的名目上限需等於一筆策略名目通過目前策略是同標的最多一筆;單標的上限等於一筆名目,才能防止同幣種疊倉。strategy_notional=4000, max_symbol=4000
風控設定總名目上限需至少覆蓋一筆交易通過總持倉上限至少要容納一筆策略交易;更嚴格的同時持倉數由 max_total / strategy_notional 觀察。strategy_notional=4000, max_total=16000
風控設定單日帳戶停手機制注意這不是目前策略規則;目前未啟用單日總虧損上限。若之後要接 live,再由使用者明確決定是否加入帳戶層停手機制。max_daily_loss=未啟用
風控設定同標的只允許一筆持倉通過這要和目前策略的同標的持倉限制一致。one_position_per_symbol=True
風控設定交易所有未完成委託時必須擋單通過避免程式重啟、網路 timeout 或手動掛單時重複送單。block_open_exchange_orders=True
風控設定交易所持倉對帳必須啟用或保持 testnet-only注意live 前要強制比對 SQLite 與交易所持倉;demo 階段可先觀察,但不能直接沿用到 live。mode=dry_run, require_exchange_position_match=False
風控設定緊急停止檔案不存在通過檔案存在時,dry-run 風控會拒絕新單。execution_stop.flag
SQLite 狀態paper_state.sqlite 存在通過可以讀取 paper/runtime 狀態。/var/lib/trad-staging/results/manual_v0_2/forward_paper_test/paper_state.sqlite
SQLite 狀態核心資料表存在通過run_once、WebSocket paper 與 dashboard 需要這些表才能對帳。runs/watermarks/signals/trades/positions/fills
SQLite 狀態execution_orders 表存在通過dry-run pipeline 執行後會寫入這張表;尚未執行 dry-run 時可能還沒有。execution_orders
SQLite 狀態最近 run_once 成功通過最近一輪若剛好仍在 running,以上一輪已完成 success 作為可觀察狀態;若已結束但不是 success,才是阻擋項。latest=success, update_end=2026-09-21 19:48 +08:00
SQLite 狀態策略水位存在通過策略層至少要跑過一次,才能知道目前掃描到哪一根 K。2026-09-21 19:44 +08:00
SQLite 狀態資料水位存在通過資料層至少要跑過一次,才能知道市場資料補到哪一根 1m K。2026-09-21 19:48 +08:00
SQLite 狀態資料/策略水位差距可接受通過split runtime 下資料水位每分鐘前進,策略水位約每 5 分鐘前進;差距太大代表策略掃描可能落後。data=2026-09-21 19:48 +08:00, strategy=2026-09-21 19:44 +08:00, lag_minutes=4.0
SQLite 狀態沒有 ledger / replay conflicts未通過conflict 代表重掃或狀態同步出現不一致,需要先查完。1
SQLite 狀態切換實盤前不應有 paper 未平倉注意若目前已有 observable paper position,建議等它出場或手動決定如何承接。1
Dry-run 對帳沒有尚未轉單的 observable fills通過WebSocket paper 已看到成交但 dry-run 還沒轉成預備訂單,需先跑 dry-run pipeline。0
Dry-run 對帳沒有被風控擋下的 dry-run 訂單通過被擋下代表實盤前安全層仍有問題或需要人工接受。0
Dry-run 對帳待 fake exchange 演練訂單通過RISK_APPROVED / SUBMITTED / PARTIALLY_FILLED 代表這些單仍在開發演練流程中,未來接 testnet 前要能解釋清楚。0
Dry-run 對帳沒有可重試交易所錯誤通過FAILED_RETRYABLE 代表 fake/testnet 送單流程有可重試錯誤,應先處理或人工確認。0
Testnet 演練testnet 回報可寫入 lifecycle通過testnet submit / status 回報必須能追加到 execution_order_events,並更新 execution_orders 的生命週期。testnet_events=4720, touched_orders=97
Testnet 對帳Paper 與 Testnet 持倉一致通過測試盤鏡像若和正式 paper 持倉不同,代表下單演練不能視為乾淨;已知舊差異只保留稽核,不延遲補單。paper=BTCUSDT;testnet=BTCUSDT
API 權限提供 API 權限快照注意目前沒有實際檢查 Binance key 權限。dry-run 可以先跳過;live 前必須確認不能提領、正式環境需 IP 限制。未提供 --permission-snapshot
Windows 排程排程狀態檢查注意本次略過 Windows 排程查詢;若要接實盤前,仍需確認正式排程狀態。skip_scheduler=true

最近 dry-run 預備訂單

這裡只列 SQLite 裡已經產生的預備訂單。若沒有資料,不代表策略沒有訊號,而是目前沒有 observable fill 被轉成 dry-run order。

建立時間動作狀態生命週期幣種訂單方向數量名目 USDT預期成交價只減倉交易所 order id交易所狀態已成交數量平均成交價最近錯誤風控原因對帳原因client order id
2026-09-21T09:02:46.625537+00:00entryACCEPTED_DRY_RUNFILLEDBTCUSDTSELL0.04764,00083,927.3064否28594681683FILLED0.047683789.700000[][]TRADDRY645d0c8a3f92941849e37c63
2026-09-21T08:49:28.371740+00:00exitACCEPTED_DRY_RUNFILLEDONDOUSDTSELL9,3934,0000.4408是365049942FILLED9393.00.44100000[][]TRADDRY660f292086e7f9775faba07c
2026-09-21T08:12:20.134634+00:00exitACCEPTED_DRY_RUNFILLEDBTCUSDTBUY0.04924,00081,944.1936是28594138646FILLED0.049281893.000000[][]TRADDRY665737a4fc6ed723ba0d693e
2026-09-21T05:02:17.961663+00:00entryACCEPTED_DRY_RUNFILLEDONDOUSDTBUY9,3934,0000.4258否364986133FILLED9393.00.42590000[][]TRADDRY2c8283d080d8cc36704e8b2b
2026-09-20T18:20:40.024403+00:00exitACCEPTED_DRY_RUNFILLEDVIRTUALUSDTBUY6,187.74,0000.6789是240582923FILLED6187.70.67880000[][]TRADDRY1099c82bfbf86827e1296523
2026-09-20T16:52:06.292854+00:00exitACCEPTED_DRY_RUNFILLEDONDOUSDTBUY9,7574,0000.4305是364768190FILLED9757.00.43180000[][]TRADDRYb579df28af40edfdca264a4d
2026-09-20T16:00:52.796759+00:00exitACCEPTED_DRY_RUNFILLEDNEARUSDTBUY1,0774,0003.8994是632649758FILLED10773.9080[][]TRADDRY16cd67843fc6024704e365a9
2026-09-20T14:08:18.374327+00:00entryACCEPTED_DRY_RUNFILLEDVIRTUALUSDTSELL6,187.74,0000.6464否240514483FILLED6187.70.64550000[][]TRADDRY469e878f319c8a075eec1f0e
2026-09-20T13:01:07.515226+00:00entryACCEPTED_DRY_RUNFILLEDNEARUSDTSELL1,0774,0003.7126否632589740FILLED10773.7120[][]TRADDRY01b9edbc13fee102253e6098
2026-09-20T12:51:19.669252+00:00exitACCEPTED_DRY_RUNFILLEDNEARUSDTBUY1,1324,0003.7084是632586089FILLED11323.6890[][]TRADDRYb772f38d99e47b8437763151
2026-09-20T09:16:11.126837+00:00entryACCEPTED_DRY_RUNFILLEDNEARUSDTSELL1,1324,0003.5306否632515777FILLED11323.5270[][]TRADDRYd28fff5958daa16b2bd37389
2026-09-20T06:26:08.493079+00:00entryACCEPTED_DRY_RUNFILLEDONDOUSDTSELL9,7574,0000.41否364582355FILLED9757.00.40810173[][]TRADDRY82bb94de2d86986feb7850f7
2026-09-19T08:13:31.486679+00:00entryACCEPTED_DRY_RUNFILLEDBTCUSDTSELL0.04924,00081,197.6794否28591358708FILLED0.049281060.575203[][]TRADDRY344043502d5604873fa77e4a
2026-09-18T08:09:12.527820+00:00exitVOID_AUDITRISK_APPROVEDBTCUSDTSELL0.0534,00077,675.8316是paper_trade_closed_before_testnet_entry_was_confirmed[][]TRADDRY360fc4d53303fc38f874bb8f
2026-09-17T01:33:23.499223+00:00exitVOID_AUDITRISK_APPROVEDVIRTUALUSDTSELL6,7874,0000.6099是paper_trade_closed_before_testnet_entry_was_confirmed[][]TRADDRYd13808e9bbca8f8fdf2e3f8c
2026-09-16T09:19:21.334839+00:00exitVOID_AUDITRISK_APPROVEDNEARUSDTSELL1,7174,0002.4108是paper_trade_closed_before_testnet_entry_was_confirmed[][]TRADDRY0bf6ed40f01c5debba7489b6
2026-09-16T08:09:33.396626+00:00entryVOID_AUDITRISK_APPROVEDBTCUSDTBUY0.0534,00075,437.243否paper_trade_closed_before_testnet_entry_was_confirmed[][]TRADDRYd3f0e8199155b4e3d2396c26
2026-09-16T08:02:05.555459+00:00entryVOID_AUDITRISK_APPROVEDNEARUSDTBUY1,7174,0002.3292否paper_trade_closed_before_testnet_entry_was_confirmed[][]TRADDRY35b8423bf6fb127d823f4302
2026-09-16T06:43:19.276390+00:00exitACCEPTED_DRY_RUNFILLEDBTCUSDTSELL0.05144,00075,842.815是28590437530FILLED0.051480888.000000[][]TRADDRY67aa7ddf5a22695c8649354e
2026-09-15T18:48:52.228875+00:00exitACCEPTED_DRY_RUNFILLEDVIRTUALUSDTSELL6,486.54,0000.5857是239753975FILLED6486.50.65882742[][]TRADDRYeb4530a65b8923067ba0277a
2026-09-15T18:48:52.085771+00:00entryVOID_AUDITRISK_APPROVEDVIRTUALUSDTBUY6,7874,0000.5894否paper_trade_closed_before_testnet_entry_was_confirmed[][]TRADDRYfcbf644f526252025e39ce9c
2026-09-15T14:52:36.960449+00:00exitACCEPTED_DRY_RUNFILLEDONDOUSDTSELL11,2504,0000.3377是362656622FILLED11250.00.33720000[][]TRADDRYc423dbcc9f5177df515acc54
2026-09-15T07:42:35.698795+00:00exitACCEPTED_DRY_RUNFILLEDNEARUSDTSELL1,6194,0002.3458是629878125FILLED16192.3460[][]TRADDRYf4cfd68b42d15c2419da9679
2026-09-14T23:40:25.686867+00:00entryACCEPTED_DRY_RUNFILLEDNEARUSDTBUY1,6194,0002.4702否629706056FILLED16192.4755[][]TRADDRYac2884af65c50e66f2b46185
2026-09-14T23:05:46.433007+00:00entryACCEPTED_DRY_RUNFILLEDONDOUSDTBUY11,2504,0000.3555否362377660FILLED11250.00.35550000[][]TRADDRY44a4d48c21919d96327bdb34
2026-09-14T06:45:44.473483+00:00entryACCEPTED_DRY_RUNFILLEDBTCUSDTBUY0.05144,00077,694.3687否28584470371FILLED0.051477634.000000[][]TRADDRY3e3c03e05d606146ad552a2d
2026-09-14T05:08:35.099677+00:00exitACCEPTED_DRY_RUNFILLEDBTCUSDTSELL0.05184,00077,568.2424是28584382010FILLED0.051877576.000000[][]TRADDRY2fbdebdbe560183e48df7287
2026-09-14T04:07:36.129528+00:00exitACCEPTED_DRY_RUNFILLEDNEARUSDTSELL1,7304,0002.3928是629313458FILLED17302.3870[][]TRADDRY34663ec94fc38fc79e1a199b
2026-09-13T22:11:02.350659+00:00entryACCEPTED_DRY_RUNFILLEDNEARUSDTBUY1,7304,0002.3112否629195974FILLED17302.3180[][]TRADDRYf9ffbfd0441a0df646b2fd0f
2026-09-13T22:00:57.593695+00:00entryACCEPTED_DRY_RUNFILLEDVIRTUALUSDTBUY6,486.54,0000.6167否237871841FILLED6486.50.61710000[][]TRADDRY7b512e87998ba55de5feb600

最近 run_once

用來確認本機 paper runtime 最近是否有正常跑。dev-only 功能不會自動接進這個排程。

開始結束profilephase處理到狀態錯誤
2026-09-21 19:49 +08:002026-09-21 19:49 +08:00splitdata2026-09-21 19:48 +08:00success
2026-09-21 19:48 +08:002026-09-21 19:48 +08:00splitdata2026-09-21 19:47 +08:00success
2026-09-21 19:47 +08:002026-09-21 19:47 +08:00splitdata2026-09-21 19:46 +08:00success
2026-09-21 19:45 +08:002026-09-21 19:47 +08:00splitstrategy2026-09-21 19:44 +08:00success
2026-09-21 19:44 +08:002026-09-21 19:44 +08:00splitdata2026-09-21 19:43 +08:00success
2026-09-21 19:43 +08:002026-09-21 19:43 +08:00splitdata2026-09-21 19:42 +08:00success
2026-09-21 19:42 +08:002026-09-21 19:42 +08:00splitdata2026-09-21 19:41 +08:00success
2026-09-21 19:40 +08:002026-09-21 19:42 +08:00splitstrategy2026-09-21 19:39 +08:00success
2026-09-21 19:39 +08:002026-09-21 19:39 +08:00splitdata2026-09-21 19:38 +08:00success
2026-09-21 19:38 +08:002026-09-21 19:38 +08:00splitdata2026-09-21 19:37 +08:00success
2026-09-21 19:37 +08:002026-09-21 19:37 +08:00splitdata2026-09-21 19:36 +08:00success
2026-09-21 19:36 +08:002026-09-21 19:37 +08:00splitdata2026-09-21 19:35 +08:00success
2026-09-21 19:35 +08:002026-09-21 19:36 +08:00splitstrategy2026-09-21 19:34 +08:00success
2026-09-21 19:34 +08:002026-09-21 19:34 +08:00splitdata2026-09-21 19:33 +08:00success
2026-09-21 19:33 +08:002026-09-21 19:33 +08:00splitdata2026-09-21 19:32 +08:00success
2026-09-21 19:32 +08:002026-09-21 19:32 +08:00splitdata2026-09-21 19:31 +08:00success
2026-09-21 19:30 +08:002026-09-21 19:31 +08:00splitstrategy2026-09-21 19:29 +08:00success
2026-09-21 19:29 +08:002026-09-21 19:29 +08:00splitdata2026-09-21 19:28 +08:00success
2026-09-21 19:28 +08:002026-09-21 19:28 +08:00splitdata2026-09-21 19:27 +08:00success
2026-09-21 19:27 +08:002026-09-21 19:27 +08:00splitdata2026-09-21 19:26 +08:00success

本次輸入

config=/var/lib/trad-staging/tmp/execution_dry_run_runtime.json

strategy_config=/etc/trad-staging/manual_strategy_v0_2_frozen_candidate_linux.json

state_db=/var/lib/trad-staging/results/manual_v0_2/forward_paper_test/paper_state.sqlite

exchange_snapshot=/var/lib/trad-staging/results/manual_v0_2/execution_dry_run/exchange_snapshot_latest.json

output=/var/lib/trad-staging/reports/manual_strategy_v0_2_execution_preflight_dashboard.html