自動化策略的風險控管
一個沒有硬性、預先設定上限的機器人,是一項沒有邊界的負債,所以在它接觸真錢之前,先設好緊急停止開關、倉位規模上限、API 金鑰規則以及監控。
- 熔斷開關:若帳戶單日下跌 3%,即停止所有交易。
- 單筆上限:任何單一倉位的風險不超過配置資金的 1%。
- 配置上限:投入此機器人的資金,最多不超過我資本的 20%。
- 回撤暫停:當峰谷跌幅達 10% 時,停止並要求人工覆核。
- API 金鑰權限:可交易。
可交易權限能下單,但不能將資金轉出交易所。對於必須交易的機器人,這是正確的層級。
部署前先截圖保存。唯讀、可交易,還是交易 + 提款,決定了你面對的是難受的一個下午,還是血本無歸。
在繼續閱讀之前,先在上方建立你的卡片:設好四個硬性上限,然後選擇 API 金鑰權限,看看當你伸手去拿提款權限時會發生什麼事。一個交易機器人快速、不知疲倦,而且完全沒有判斷力。當市場乖乖聽話時這沒問題,一旦市場失控就是災難,因為機器人會全速執行它最糟糕的行為,永遠不會停下來懷疑是不是哪裡出了錯。你在先前各單元學到的一切,重點全都落在這裡:在硬性、預先設定的上限橫亙於機器與你的錢之間之前,任何自動化策略都不該碰真正的資金。這些控管不是你事後才加上的修飾。它們是入場的代價,事先就以冷冰冰的數字決定好,而不是在帳戶淌血的當下憑感覺去拿捏。
四道上限,全都在你上線之前設好
把這四道當成安全帶,在第一筆真實交易之前把它們全部繫好。每一道都是你事先決定、由系統自動強制執行的硬性數字。
- 單日最大虧損(緊急停止開關)。 一旦帳戶在一天內下跌到某個設定額度,比如 3%,就停止所有交易。這樣一來,一次糟糕的交易時段就不會失控演變成一場災難。
- 單筆交易最大規模。 限制任何一個倉位能承擔多少風險、或能開到多大,這樣單獨一張訂單永遠無法炸掉整個帳戶。
- 總配置上限。 限制你的資金在任何時候最多有多少暴露在該策略之下,把其餘部分圈護起來,不受出錯機器人的波及。
- 回撤暫停門檻。 在出現某個設定幅度的峰值到谷底跌幅後,自動停下策略並要求人工檢視,這樣緩慢的失血就不會在無人看管的情況下持續下去。
共通的主線是:每一道都是事先選定的硬性數字,而不是你眼看著紅色數字滾過去時臨場即興的決定。恐慌是個糟糕的風險管理者。預先設定的上限則是個冷靜的風險管理者。
鎖緊 API 金鑰
當你把機器人連接到交易所時,你是透過一把 API 金鑰來連接的,而那把金鑰的權限決定了一次外洩、或一個失控機器人能造成多大的傷害。這是你手上槓桿效益最高的控管,因為即使其他所有防護全部失效,它仍能框住你的最壞情況。
金鑰通常帶有三種各自獨立的權限等級,而它們之間的落差,就是「不便」與「災難」之間的落差:
- 唯讀。 工具可以查看但不能交易。只要機器人僅需觀察,就用這一種。
- 可交易。 機器人可以下單。只有在某個工具真正需要時才授予這項權限。
- 可提款。 金鑰可以把錢移出交易所。一個交易機器人永遠沒有理由這麼做。
最重要的一條規則:永遠不要在交易金鑰上啟用提款權限。 只要關閉提款,即使金鑰完全外洩,也無法把你的資金抽乾,它頂多只能拿去交易。還有兩個習慣能讓金鑰更安全:加上 IP 白名單,讓金鑰只在你已知的位址才能運作;以及為每個工具各建一把獨立的金鑰,這樣你可以撤銷其中一把而不驚動其餘。
在機器人運行時盯著它
「設定後就忘掉」會悄悄變成「設定後就後悔」。自動化拿掉的是手動點擊,不是責任,所以一個正在運行的策略仍然需要盯著。
留意少數幾件事:它的權益與回撤,對照你的回測與前向測試讓你所期待的水準;它的交易頻率;它的平均獲利與平均虧損;以及它未平倉倉位之間的相關性有多高。把機器人採取的每一個動作都記錄下來,這樣你事後才能重建到底發生了什麼。並設定警報,在任何上限被突破的當下就通知你,而不是靠你自己記得去查看。
那些叫你「立刻停手」的警訊
機器人行為上的某些變化,不是可以硬撐過去的雜訊,而是叫你暫停並檢查的訊號。學會辨認這些,你就能及早抓到麻煩,而不是事後才來解釋它。
- 回撤超出你的測試所預測的範圍。 市場可能已經改變,或者優勢可能已經衰退。
- 突然爆量的訂單。 異常的交易頻率往往意味著某個程式錯誤在打轉,而那應該立刻讓機器人停下來。
- 相關性瓦解。 你原以為彼此獨立的倉位開始一起連動,這代表你真正的風險,遠高於你的倉位數量所暗示的水準。
- 滑價或成本高於你的假設。 這些會一筆交易接一筆交易地,悄悄侵蝕你的優勢。
- 策略交易進了它從未被設計來應對的環境。 那就是上一個單元提到的黑天鵝警訊。
當這些之中任何一個出現時,正確的做法是暫停並查看,絕不是放著讓它跑、指望它自己修正。
緊急停止開關證明自己值回票價
你用 $10,000 的配置運行一個策略,帶有三道預先設定的控管:總配置上限 $10,000、單筆交易最大風險 1%($100),以及設在 3%($300)的單日最大虧損緊急停止開關。
某天下午,一次數據源故障讓機器人誤讀價格,開始循環地連發訂單。虧損迅速累積,但就在累計虧損觸及 $300 的那一刻,緊急停止開關自動停止了所有交易。你當天的損害被限制在 $300,另外的 $9,700 毫髮無傷。你收到一則警報,你去調查,你修好數據源。
現在想像同樣的故障發生在一個一模一樣、卻沒有任何上限的機器人身上。那個迴圈持續朝一個流動性稀薄的市場連發訂單,滑價擴大,等到你察覺時,帳戶已經虧了 $6,000,跌了 60%。同樣的錯誤、同樣的市場、同樣的邏輯。唯一的差別,在於是否有一道硬性、自動的上限橫亙在故障與你的資金之間。
為什麼提款權限才是那條關鍵的界線
設想最壞情況會有幫助。假設一名攻擊者直接盜走了你的 API 金鑰,或者你信任的那個機器人其實心懷惡意。
如果金鑰是唯讀的,他們頂多得知你持有什麼,僅此而已。如果金鑰可交易但提款已關閉,他們可以在你的帳戶裡進行交易(惱人,也可能造成損失),但他們無法把一枚幣移出交易所。你的資金原封不動。如果金鑰帶有提款權限,他們可以直接把你的錢轉走,然後它就沒了。
這就是為什麼「唯讀 vs 可交易 vs 可提款」的抉擇不是枝微末節。它決定了一把外洩的金鑰只是一個糟糕的下午,還是一場全盤皆輸。交易機器人永遠不需要提款,所以啟用它沒有任何好處,卻可能失去一切。
良好的監控實際上是什麼樣子
監控不是整天盯著一張圖表看。它是建立幾個習慣,讓機器人無法在無人察覺之下漂移。
追蹤那些能揭示策略健康狀況的數字,而不只是它的餘額:回撤對照預期,能抓到衰退中的優勢;交易頻率能抓到失控的迴圈;倉位之間的相關性能抓到隱藏的集中度(好幾筆「獨立」的交易,其實是同一個大賭注)。保留一份完整的動作記錄,這樣當某件怪事發生時,你可以把它重播出來,而不是用猜的。然後把警報接到你的各道上限上,讓任何突破都能立刻傳到你這裡,因為如果你晚一天才發現,一道門檻的全部價值就都白費了。
心態很簡單:機器人負責點擊,你負責監督。
快速知識檢核
在一個自動化策略上線之前,你要設定的四道不可妥協的上限是什麼? 單日最大虧損(緊急停止開關)、單筆交易最大規模、總配置上限,以及回撤暫停門檻,每一道都是事先決定、並自動強制執行的硬性數字。
為什麼交易用的 API 金鑰永遠不該啟用提款權限? 交易機器人沒有理由移動資金,所以關閉提款代表:即使金鑰完全外洩,也只能拿你的資金去交易,而無法把它們從交易所偷走。它框住了你的最壞情況。
一個正在運行的機器人突然開始下遠比平常多的訂單。你會怎麼做,為什麼? 立刻暫停它並調查。突然爆量的訂單往往意味著某個程式錯誤在打轉,若放著讓它繼續運行,可能以機器的速度造成巨大的虧損。
資料來源
- SEC (investor.gov) & FINRA, "Investor Alert: Automated Investment Tools",探討為什麼一個自動化系統仍然需要預先設定的規則與積極的人工監督。
- SEC, "SEC Charges Knight Capital With Violations of Market Access Rule" (Press Release 2013-222),這個案例中,一次有缺陷的自動化部署發出了大量非預期的訂單,在約 45 分鐘內造成約 $440 million 的虧損。
- OWASP, "Authorization Cheat Sheet",最小權限的 API 存取原則:把讀取、交易、提款權限分開,讓提款保持停用,並以 IP 允許清單限制金鑰。