系統可靠性 · 備援設計

TradingView 或交易所當機時,你的自動化策略會發生什麼事?
備援設計怎麼做

2026-07-22·6 分鐘

「交易所總有斷線保護吧?」有,但不一定輪得到你。Bybit 的斷線自動撤單(官方名稱 Disconnect Cancel All)文件裡寫得很直白:僅限機構客戶,連 VIP 客戶都不能用。 也就是說,如果你是在 Bybit 上跑自動化策略的散戶,這道你以為存在的安全網,根本開不了。

這篇處理的就是這類落差:上游出事的那一刻,哪些保護是真的存在,哪些只存在於你的想像。 先講結論——你開的部位不會因為斷線而消失,但你的停損有可能形同不存在。

重點先講
三件事。一、我們查過的斷線自動撤單文件沒有一份提到「部位」,全部只講「掛單」。 二、那個能替你撤掉掛單的機制不是人人有份,Bybit 官方明文限定機構客戶。 三、Bitget 是我們查的四家裡唯一把精確的每週維護時段寫進官方 API 文件的

你的停損放在哪裡,決定了斷線那一刻會發生什麼事

停損有兩種放法,看起來都叫停損,斷線時的命運卻完全相反。這是全篇最該先搞清楚的一件事。

1
你的停損實際上放在哪裡?
真的掛在交易所上的訂單(stop-limit、stop-market,或 TP/SL 綁定單)它放在交易所自己的撮合引擎裡,不依附你程式的連線。只要引擎本身正常運作,這張單不會因為你斷線而受影響。
策略邏輯裡決定何時送出平倉單的判斷(沒有真的掛在交易所上的單)只有在價格觸及條件的那一刻,TradingView、網路、你的伺服器、交易所 API 全部同時正常,才會真的執行。任何一環斷掉,部位就不會被關掉——交易所那邊根本沒有一張單子在等著。
2
你有設定斷線自動撤單,而且真的有資格用嗎?
有設定,而且有資格心跳逾時,交易所會連你掛著的停損單一併撤銷。要確認回報頻率夠高,不會誤觸發。
沒設定,或這家交易所你沒資格用(例如 Bybit 的散戶/VIP)斷線不會觸發任何自動撤單,你掛著的停損單會繼續等引擎正常觸發它——這也是保護性停損單本來就該有的行為。

這也是為什麼 TVSBot 對期貨部位是把停利/停損直接下成掛在交易所上的綁定單(bracket order),而不是只靠軟體邏輯追蹤一個價位——掛在交易所的單子撐得過你斷線,沒送出去的邏輯不會。

交易所的斷線自動撤單,不是人人有份

所謂斷線自動撤單(dead man's switch),是你持續呼叫一個端點當心跳, 心跳停止超過設定的倒數秒數,交易所就自動撤銷你掛著的訂單。四家的資格條件差很多。

BinanceOKXBybitBitget
官方名稱Auto-Cancel All Open Orders(USDⓈ-M 合約)Cancel All AfterDisconnect Cancel All (DCP)CountDown Cancel All
一般 API 使用者可用可以——但僅限 USDⓈ-M 合約僅限 UTA 帳戶
官方註記官方文件是 USDⓈ-M 合約端點——只做現貨的人沒有這個機制官方明講不應把這個機制當成交易策略的一部分官方文件限定僅限機構("Ins")客戶——VIP 客戶都不能用傳統(非統一交易)帳戶不支援
最容易被忽略的落差
坊間文章常把這四家並列介紹,好像等級一致。其實不是——Bybit 那一格是連 VIP 等級的 帳戶都不行。這類功能的資格,常常跟我們整理的 API key 權限清單裡講的帳戶等級落差是同一類問題:設計備援之前,先確認自己是不是真的用得到。

Bitget 把維護時段寫進 API 文件了,其他家沒有

每家交易所都會排計畫性維護,差別在於官方願意把「什麼時候」講到多清楚。以下三家有明確說法:

交易所官方文件怎麼寫
Bitget官方 API 文件寫明固定的例行發版時段——每週二/三/四 14:00–17:00(UTC+8)。這段期間 REST API 可能回傳特定錯誤碼、WebSocket 可能斷線,官方建議做好重試與重連機制。
OKX有公開 status page 列出具體維護紀錄。官方 FAQ 另提到 50004 錯誤常出現在每天 8/16/24 點(UTC+8)資金費結算時段,伺服器壓力較大,建議自動化交易避開。
Bybit沒有公開網頁版 dashboard,改以 GET /v5/system/status 端點回傳結構化維護資料。官方明講:10 秒以內的短暫中斷或 WebSocket 斷線屬正常範圍,不會特地公告。

Binance 這邊我們查不到 binance.com(全球站)獨立的公開事故/狀態頁,只找到一個回傳 normal 或 maintenance 的 GET /sapi/v1/system/status 端點。對照之下,Bitget 是唯一讓你 在寫程式當下就知道「每週二、三、四下午別排重要動作」的,而不是上線後撞到錯誤碼才發現。

TradingView 那邊,官方只承認到哪裡

TradingView 有官方 status page:status.tradingview.com,其中有獨立的 「Alerts」項目。查證當下顯示 Operational,近期與 alert 相關的事件只有一筆:「Technical alerts partly unavailable」(Jul 1, 10:14 至 Jul 3, 18:23 GMT,已標記解決)。故障會發生,官方也有公開記錄——但從未說明,故障期間該觸發卻沒觸發的 alert,服務恢復後會不會補送。

這裡要講精確一點,因為有一套廣為人知的 webhook 重送機制常被誤以為涵蓋這種情境。它只適用於你自己的接收端伺服器出錯:回 5xx(官方原文把 504 排除在外) 會在 5 秒後重送、最多 3 次;回 504、回 4xx 或 3 秒內沒回應,一律不重試,直接視為已送達 並丟棄。TradingView 自己服務降級是另一回事。接收端的完整拆解看webhook 延遲那篇;alert 完全沒觸發的話,這份除錯清單先排查更常見的原因。

我們沒辦法逐字引用的那句話

沒有任何一家交易所白紙黑字寫過「你斷線時部位不會被關掉」。這個結論是我們自己綜合出來的: 每一份斷線自動撤單文件都把範圍限定在掛單,從來沒提過部位;而強平風險由 完全獨立的保證金引擎管理,跟連線狀態無關。這是由好幾份獨立官方文件、用字高度一致所支持的 合理推論——但它終究是推論,不是逐字引用,這個區別我們想講清楚。

上線前先問自己這幾題

答不出來的那幾題,就是你的缺口:

  • 我的停損是真的掛在交易所上的一張單,還是只存在策略邏輯裡?
  • 我這個帳戶等級,真的用得到這家交易所的斷線自動撤單嗎?——不確定就當作沒有
  • 交易所明講「不會公告」的短暫斷線(例如 Bybit 的 10 秒以內),我的程式會自己重連重試嗎?
  • 出事之後,我分得出來是「alert 根本沒送到」還是「送到了但後面處理失敗」嗎? ——只有事前留下訊號紀錄才做得到
  • 如果掛掉的剛好是我的 dashboard,我還有第二條管道知道出事、還有辦法手動全平嗎?

誠實的一段:沒有任何設計能保證 100% 不漏單

任何自動化交易架構都保證不了 100% 送達——包括我們自己。TradingView 從未針對自己故障期間 漏掉的 alert 公布任何 SLA;我們也沒有替 TVSBot 公布正常運行時間保證,因為我們自己也沒有 可以拿出來的公開 SLA。設計能降低漏單的機率、縮小影響範圍,但沒辦法把可能性歸零。任何人 如果拿自己的平台講出相反的話,那句話背後大概是沒有東西可以佐證的。

常見問題

交易所掛了,我的部位會自動被關掉嗎?
沒有任何一份官方文件直接寫明會或不會。但我們查過 Binance、OKX、Bybit、Bitget 的 斷線自動撤單機制,範圍都嚴格限定在撤銷掛單——沒有一份提到部位。 強平與保證金追繳由完全獨立的引擎運作,不會參考你的連線狀態。
斷線時能不能靠交易所自動撤單保護自己?
很看交易所和你的帳戶等級。Binance 和 OKX 對一般 API 使用者開放;Bybit 官方限定僅 機構客戶可用,連 VIP 帳戶都不行;Bitget 的版本只支援統一交易帳戶(UTA)。
TradingView 故障期間該觸發卻沒觸發的 alert,之後會補送嗎?
官方沒有說明。TradingView 公開的重送機制——回 504 以外的 5xx 時 5 秒後重送、 最多 3 次——只適用於你自己的接收端伺服器出錯,跟 TradingView 自己服務降級是兩回事。

Get started

想把今天學到的東西自動化跑起來?

TVSBot 對期貨部位會把停利/停損直接下成真的掛在交易所上的綁定單,每筆訊號都留紀錄可回放,並提供 Kill Switch 與有 rate limit 保護的全平倉。

免費開始