AWS re:Invent 回顧

AWS 上的 Tick-to-trade 延遲交易平台

回顧系列

場次筆記


他們使用 disruptor、aeron、FPGA、verilog、VHLs、linux kernel preempt-pt patches、yugabytedb、raft consensus protocols、AWS Cluster Placement Groups (CPGs)、FIX protocol、Liquidnet SmartDark 與 Barracuda Algorithm、5/20 EMA Crossover Strategy、Amazon Time Sync Service、Hardware Packet Timestamping、MiFID II、FIX Adapted for STreaming (FAST)、Simple Binary Encoding (SBE)、amazon Cluster Placement Groups (CPGs)。

Coinbase:使用 Aeron Cluster 建構高韌性、雲端原生的交易基礎設施,以低延遲處理大量交易。

EDX Markets (EDXM):在交易平台中運用 Aeron Cluster,實現容錯與超低延遲。

IMMIX:採用 Aeron Cluster 建構高效能數位資產交易系統與定序器。

滙豐銀行:整合 Aeron 以強化電子交易系統。

Man Group:在低延遲外匯交易系統中使用 Aeron,快速處理報價串流。

SIX Interbank Clearing Ltd:其瑞士即時支付平台已部署 Aeron clusters。

BLOX Markets:這家即將推出、聚焦散戶的美國股票交易平台正在整合 Aeron 系統。

Chicago Mercantile Exchange (CME):贊助 Aeron 開放原始碼開發專案,用於內部訊息傳遞。

Kepler Cheverton (Kcx) 與 Adaptive 合作,以 Aeron 建構事件驅動的股票交易平台。

經紀服務領導者 DriveWealth 採用 Aeron 重構交易架構,達成交易所等級效能。

Talos 在數位資產生態平台中運用 Aeron transport protocol,實現高效能交易與訊息序列化處理。


買方與賣方

買方參與者:

  • 機構投資人
  • 數位資產基金
  • 散戶交易者
  • 自營交易公司
  • 為投資組合取得數位資產
  • 專注於策略開發、研究與交易執行,以創造報酬

賣方公司:

  • 造市商與經紀商
  • 促成交易執行與訂單路由

數位資產交易所:

  • 提供資產掛牌與交易的平台
  • 與賣方公司共同構成核心交易基礎設施
  • 確保流動性、撮合訂單,並提供必要金融服務
  • 主要透過手續費與買賣價差創造營收

Tick-to-trade 效能

  • 高頻、低延遲交易 (HFT) 正在中心化數位資產交易中快速興起。
  • 數十年來,HFT 一直是股票、商品、外匯及包含期貨在內之衍生性商品市場的關鍵金融市場基礎設施。
  • 核心功能是為市場參與者提升流動性、降低交易成本,並提高價格效率與價格發現能力。
  • HFT 平台的關鍵技術成功指標:延遲 (Latency)、抖動 (Jitter)
  • 數位資產市場中的 HFT 公司力求達成低兩位數微秒的 tick-to-trade 效能,以維持競爭力。

造市

  • HFT 公司有義務在委託簿兩側向市場報價
  • 買價 Bid(MM 買進,交易對手賣出)
  • 賣價 Ask(MM 賣出,交易對手買進)

MM 策略的核心功能:

  • 賺取價差(買價與賣價之差)
  • 管理風險並提供最佳(最快)執行

提供流動性,但也承擔暫時性庫存風險:

  • MM 必須執行極大量訂單,才能為市場提供流動性並從價差獲利。
  • HFT 公司利用數位資產於多個交易場所間的短暫價差獲利。
  • 成功有賴最佳化執行與微秒級速度,因為延遲可能使套利機會消失。

Jitter 對 HFT 的重要性

可預測的執行:

  • HFT 演算法依賴一致且可預測的效能,在精確時點與價格執行交易。不可預測的延遲(高 jitter)可能使交易晚於預期執行,錯過最佳價位並可能造成損失。

套利機會:

  • Jitter 可能延誤不同交易所間的價格發現,使僅存在數微秒的短暫套利機會消失。

風險管理:

  • 一致的延遲能改善即時風險管理與監控。高 jitter 會引入變異,使壓力下的系統行為更難預測,也更難有效管理風險。

演算法完整性:

  • 設計為在特定時限內反應的演算法可能因非預期延遲而受干擾,進而產生非預期交易結果。

降低 Jitter 的技術

硬體最佳化:

  • 在關鍵處理路徑使用具確定性的硬體,例如現場可程式化閘陣列 (FPGA)。
  • 採用專為低 jitter 效能設計的網路介面卡 (NIC)。

作業系統 (OS) 與核心調校:

  • 使用即時作業系統 (RTOS) 或特別調校的 Linux 核心(例如 PREEMPT-RT patches),優先處理交易程序並減少非確定性中斷。
  • 採用將執行緒固定至專用 CPU 核心等技術,並減少 context switching,以避免 CPU cache miss 與資源競爭。

網路架構:

  • 使用 kernel bypass,將資料直接從網路硬體移至 user-space 應用程式,避開通用且非確定性的 Linux 網路堆疊。
  • 將伺服器放在交易所共置設施,縮短實體距離並減少網路路徑變異。

軟體設計:

  • 使用高效率資料結構與設計模式(如 disruptor pattern),最佳化訊息流並減少不必要的記憶體配置。
  • 最佳化序列化/反序列化程序,以有效處理大量資料。

LMAX Exchange Disruptor Pattern:

  • 高效能、低延遲的執行緒間訊息系統。
  • 使用 Ring Buffer 高效率傳遞事件/工作。
  • 常見於高頻交易 (HFT)。

核心概念與運作方式:

Ring Buffer:

  • 記憶體中的環狀固定大小陣列。
  • 保存事件/訊息。

生產者:

  • 使用序號取得 buffer 中的槽位。
  • 寫入資料並提交。

消費者(批次處理器):

  • 處理 buffer 中的事件。
  • 在相依性圖中運作。
  • 彼此通知新資料。

Mechanical Sympathy:

  • 善用 CPU caches (L1, L2, L3)。
  • 讓資料保持連續且可預測。
  • 減少昂貴的記憶體擷取。

無鎖定/競爭:

  • 使用序號與 barriers,而非 locks。
  • 防止執行緒彼此阻塞。

避免 False Sharing:

  • 填補資料,確保變數不共用 cache lines。
  • 避免不必要的 cache invalidations。

最佳化:

CPU Cache 使用:

  • 善用 CPU caches (L1, L2, L3)。
  • 讓資料保持連續且可預測。

避免鎖定:

  • 使用序號與 barriers,而非 locks。
  • 防止執行緒彼此阻塞。

避免 False Sharing:

  • 填補資料,確保變數不共用 cache lines。

交易用途:

速度:

  • 對微秒延遲至關重要的 HFT 不可或缺。

吞吐量:

  • 處理龐大的市場資料與訂單流。

可擴充性:

  • 讓複雜處理管線可跨多個 CPU 核心擴充。

工作導向管線:

  • 適合將訂單處理拆成循序且可平行化的工作。

優點:

低延遲:

  • 階段間處理可達奈秒等級。

高吞吐量:

  • 處理的事件遠多於傳統 queue-based 系統。

可預測效能:

  • 避免 locks 與 garbage collection pauses 的不可預測性。

現場可程式化閘陣列 (Field-Programmable Gate Array, FPGA)

  • 是一種彈性的積體電路 (IC)。
  • 製造後仍可程式化。
  • 可建立自訂數位電路。
  • 提供硬體層級客製化。
  • 適用於高效能運算、訊號處理與快速原型開發。
  • 不同於固定功能晶片。
  • 使用可重構邏輯區塊、互連與記憶體。
  • 平行實作各種功能。
  • 實現硬體加速與低延遲效能。
  • 適用於電信、汽車 (ADAS)、航太與資料中心。

硬體描述語言 (HDLs):

  • 工程師使用 Verilog 或 VHDL。
  • 描述所需數位電路。

邏輯合成、佈局與繞線:

  • 軟體轉譯 HDL 程式碼。
  • 建立設定檔 (bitstream)。
  • 將設計映射至 FPGA 內部資源。

可程式化資源:

  • 晶片包含 Lookup Tables (LUTs)、Flip-Flops、Multiplexers。
  • 可程式化互連。
  • 可形成任何數位電路。

平行處理:

  • 各項操作在硬體中同時進行。
  • 提供高吞吐量與低延遲。
  • 適用於複雜工作。

數位資產市場的公平且平等存取:

  • 確保所有參與者擁有相同的交易與資訊存取機會。
  • 在成熟市場(股票與衍生性商品),監管機關以嚴格揭露與平等存取要求加以規範。

技術實作:

  • 藉由縮小延遲差異達成。
  • 確保所有參與者在定義的容許範圍(微秒至毫秒)內,獲得相近回應時間。
  • 使參與者能可靠參與價格發現、流動性提供與交易執行。

AWS 的貢獻:

  • 許多交易場所基於雲端平台建構,以追求可擴充性,而非精密效能調校。
  • 持續改善平台以支援交易所與交易公司。
  • 強化能力,提升公平與平等。

架構:

  • 中心化數位資產交易所在 AWS 上最佳化基礎設施,以達低延遲效能。
  • 讓造市商 (MM) 每秒執行數千筆交易。
  • AWS 提供運算放置與網路拓撲最佳化,以降低延遲與 jitter。
  • 參考架構呈現典型 CEX 交易處理 hot path,供 MM 以延遲最佳化方式存取。

交易接收與處理流程:

提交訂單:

  • 訂單提交至 Exchange Gateway。

轉送訂單:

  • 訂單轉送至 Fair Order Sequencer。

批次處理與時間戳記:

  • Sequencer 執行批次處理,並將帶時間戳記的訂單傳給 matching engine。

執行確認:

  • Matching engine 傳送執行確認。

市場資料更新:

  • 市場資料更新傳送至 distribution server。
  • 更新再傳至 market data gateway。

HFT Feed Handler:

  • 市場資料傳送至 HFT feed handler。
  • Feed handler 將市場資料傳給 trading strategy engine。

交易策略引擎:

  • 產生提供或取得流動性的訊號。
  • 訊號傳送至 order management system (OMS)。

訂單管理系統 (OMS):

  • OMS 傳送訂單並接收執行確認。
  • 執行通知傳送至 OMS。

資料複寫:

  • 資料複寫至次要 Availability Zone 或 AWS Region。
  • 確保主要 Availability Zone 受損時仍持續運作。

高可用性與災難復原:

  • 各交易場所採取的方式不同。
  • 範圍從同步容錯移轉,到僅對訂單層進行部分容錯移轉,以供部位管理與調節。

延遲最佳化方法:

  • 跨這些層級最佳化,確保交易與即時工作負載的端對端延遲盡可能低。

關鍵延遲:

  • Order-to-Ack Latency:代表訂單交易的完整流程。
  • Tick-to-Order Latency:衡量接收價格變化、轉換成交易訊號及調整部位的速度。

成功指標:

  • 價格發現、策略及訂單執行的延遲與 jitter。
  • 目標:低兩位數微秒的 tick-to-trade 效能。

最佳化類別:

網路:

  • 底層網路造成的延遲。
  • 包含 AWS 路由、執行個體放置與連線選擇。

運算:

  • Amazon EC2 執行個體類型造成的延遲。
  • 包含執行個體選擇、核心與 OS 調校,以及 Elastic Network Adapter (ENA) 效能最佳化。

應用程式:

  • 業務邏輯與 user-space 處理造成的延遲。
  • 著重高效率流量處理、CPU/記憶體使用,以及減少資源競爭。

系統:

  • 全系統程序造成的延遲。
  • 包含資料分發、計時服務與整體架構效率。

CEX 與 MM Hot Paths:

CEX Hot Path:

  • 著重訂單輸入、在委託簿上執行及市場資料分發。
  • 包含訂單輸入、餘額檢查、撮合、確認與市場事件發布。
  • 目標:提供最佳執行與定價體驗以吸引流動性。

MM Hot Path:

  • 著重 tick-to-trade 延遲。
  • 涉及接收市場資料、評估交易機會及下單。
  • 目標:維持最新市場觀點,並避免風險與機會成本。

造市商的「Hot Paths」:

  • 技術系統中對延遲敏感的資料與執行路徑。
  • 針對速度與效率最佳化,以維持競爭優勢並管理風險。

關鍵元件:

市場資料擷取:

  • 快速接收並處理外部市場資料。
  • 判定資產目前的公允價格。

定價與機會評估:

  • 計算最佳買價與賣價並決定數量。
  • 管理庫存風險並降低方向性曝險。

訂單輸入與執行:

  • 用於快速送出限價單的低延遲系統。

內部通訊與餘額檢查:

  • 內部系統間快速通訊。
  • 確保訂單有效,且公司曝險在可接受範圍內。

避險:

  • 快速執行抵銷交易以對沖部位。
  • 管理從客戶交易取得的庫存。

市場事件分發:

  • 迅速發布內部市場事件與確認。
  • 分發給相關內部系統與外部客戶。

最佳化技術:

Cluster Placement Groups (CPGs):

  • 用於縮短元件間的實體網路距離。
  • 將 CEX 與 MM 工作負載放入 CPG,使執行個體集中放置於一個 Availability Zone 的同一個 network spine。

優點:

  • 與 CPG 外的執行個體相比,UDP 往返延遲的 P50 平均降低 37%,P90 平均降低 39%。

延遲來源:

  • 從網路延伸進執行個體,經過網路卡、核心、作業系統及應用程式層。

延遲最佳化的取捨:

  • 使用 Cluster Placement Groups (CPGs):
  • 將網路延遲降至最低。
  • 與完整韌性的 Multi-AZ 架構不相容。

將 Matching Engines 視為狀態機:

  • 通常建模為確定性狀態機。
  • 相同的輸入事件序列會產生相同且可預測的狀態。
  • 對維持 CEX 委託簿與金融系統一致性至關重要。
  • 核心執行採單執行緒,以避免非確定性並確保線性處理。

用於高可用性與可擴充性的分散式狀態機:

  • 跨數個執行個體實作,以提供高可用性與可擴充性。
  • 跨多個節點複寫邏輯,即使部分節點失效仍能維持運作。
  • 將工作負載分散至多個 replicas 以水平擴充。
  • 透過健全的 consensus protocols(例如 Raft)維持一致性。

訊息傳遞、一致性與低延遲:

  • 結合 consensus protocols 與 messaging protocols,達成最低延遲與一致性。
  • 客戶可設計自訂 messaging layers,或使用 Aeron、Chronicle 等成熟方案。
  • [https://github.com/aeron-io/aeron](https://github.com/aeron-io/aeron)
  • Messaging layers 已針對低延遲、高吞吐量通訊最佳化。
  • 能以最小延遲負擔,確定性地複寫狀態機輸入。

Aeron:超低延遲訊息中介軟體

超低延遲

  • 微秒範圍延遲:設計用於提供微秒範圍的延遲,對高頻交易至關重要。
  • 可預測效能:確保在不同負載下仍具一致效能。

高吞吐量

  • 每秒數百萬則訊息:能可靠處理大量訊息。
  • 可擴充架構:支援擴充以滿足大型交易系統需求。

可靠性與韌性

  • 24/7 可用性:專為持續運作而建,具備確保高可用性的功能。
  • 容錯:包含自動容錯移轉與復原機制。

成本效益

  • 開放原始碼:可免費使用,降低授權成本。
  • 高效率資源運用:降低硬體與營運成本。

主要功能與元件

Aeron Transport:

  • 核心功能:高效能、低延遲訊息傳輸。
  • 通訊協定:使用 UDP(單播與多播)及 Inter-Process Communication (IPC)。
  • 支援的 API:Java、C/C++ 與 .NET。

Aeron Archive:

  • 用途:訊息錄製與重播擴充功能。
  • 能力:以完整訊息速率將串流持久化至磁碟,確保資料復原及服務無縫重新連線且不遺失訊息。

Aeron Cluster:

  • 框架:用於建構容錯分散式服務。
  • Consensus Algorithm:使用 Raft algorithm。
  • 功能:自動容錯移轉與強資料一致性,適合交易所及交易工作流程。

Agrona 與 Simple Binary Encoding (SBE):

  • Agrona:提供高效能資料結構。
  • SBE:提供精簡、低負擔的二進位訊息格式,縮小訊息並減少 CPU cycles。

對交易公司的優點

超低延遲:

  • 效能:在雲端環境提供低於 100 微秒的延遲,在實體硬體上則低於 20 微秒。
  • 對高頻交易至關重要。

高吞吐量:

  • 容量:能可靠處理每秒數百萬則訊息。

可靠性與韌性:

  • 可用性:確保 24/7 可用。
  • 功能:自動容錯移轉、即時復原及健全的資料遺失處理機制。

成本效益:

  • 降低成本:降低硬體與營運成本,避免 vendor lock-in。

經實證的採用:

  • 使用者:全球主要金融機構與平台,包括 Coinbase、Man Group 及 SIX Interbank Clearing。
  • 應用:支援即時交易與支付系統。

Aeron 系統的主要元件:

Media Driver:

  • 功能:管理 buffer 處理、network I/O 與資料傳輸的核心引擎。
  • 部署:可作為應用程式內的 embedded thread 執行,或作為獨立程序執行。
  • 優點:將 garbage collection pauses 等事件對延遲的影響降至最低。

Aeron Client:

  • 介面:供開發人員使用、面向應用程式的 API。
  • 操作:Client 建立 Publications(傳送訊息)及 Subscriptions(接收訊息)。

Channels 與 Streams:

  • Channel:定義通訊路徑。
  • Stream ID:整數識別碼,用於在同一 channel 上多工處理不同邏輯訊息流。

Log Buffers:

  • 儲存:訊息寫入一系列稱為 log buffers 的 memory-mapped files。
  • 設計:允許直接記憶體存取 (off-heap),避開 JVM garbage collection,以提供可預測的低延遲存取。

實際使用案例

  • Coinbase:使用 Aeron Cluster 建構高韌性、雲端原生的交易基礎設施,以低延遲處理大量交易。
  • EDX Markets (EDXM):在交易平台中運用 Aeron Cluster,提供容錯與超低延遲。
  • IMMIX:採用 Aeron Cluster 建構高效能數位資產交易系統與定序器。
  • HSBC:整合 Aeron 以強化電子交易系統。
  • Man Group:在低延遲外匯交易系統中使用 Aeron,快速處理報價串流。
  • SIX Interbank Clearing Ltd:在瑞士即時支付平台部署 Aeron clusters。
  • BLOX Markets:這家即將推出、聚焦散戶的美國股票交易平台正在整合 Aeron 系統。
  • Chicago Mercantile Exchange (CME):贊助 Aeron 開放原始碼開發專案,用於內部訊息傳遞。
  • Kepler Cheverton (Kcx) 與 Adaptive 合作,以 Aeron 建構事件驅動的股票交易平台。
  • 經紀服務領導者 DriveWealth 採用 Aeron 重構交易基礎設施,達成交易所等級效能。
  • Talos 在數位資產生態平台中運用 Aeron transport protocol,進行高效能交易與訊息序列化處理。

訊息流與機制

Publication:

  • 方法:Publisher client 使用 offer() method,將訊息寫入 shared memory 的 log buffer。
  • 操作:非阻塞;傳回狀態碼,指出成功或已施加 backpressure。

Media Driver 動作:

  • 功能:持續讀取 publisher 的 log buffer,並透過設定的 channel(UDP 或 IPC)將資料傳送至適當目的地。

Subscription 與 Polling:

  • 方法:Subscriber client 呼叫 poll() method,從其關聯的 log buffer 讀取訊息。
  • 模型:Polling model 讓應用程式控制處理資料的時機,避免 interrupt-driven callbacks,以維持可預測延遲。

可靠性:

  • 層級:Aeron 在 UDP 上實作自己的 reliability layer。
  • 機制:偵測訊息遺失,並使用 Negative Acknowledgements (NAKs) 要求重傳遺失片段,以最低負擔確保可靠且依序傳送。

Lock-Free Design:

  • 技術:所有內部操作皆為 lock-free,使用 log buffers 中的 atomic tail updates 等技術。
  • 優點:避免執行緒競爭並將吞吐量最大化。

Atomic tail updates

網路通訊協定:

  • Atomic tail updates 對高效能網路與資料庫系統至關重要。
  • 它們能有效管理 ring buffers 或 logs 等資料結構。
  • 以原子方式更新 tail pointer,可確保並行互動不造成資料毀損。

系統升級:

  • 在某些 Linux distributions(atomic distros)中,atomic updates 涉及以單一交易升級整個 OS image。
  • 只有更新成功時,系統才會開機進入新 image,以確保完整性。
  • 這是運用 atomicity 原則的全系統更新。

Raft Consensus Algorithm:

  • 一種分散式系統演算法,確保伺服器對資料狀態達成共識;透過 leader election、log replication 與節點角色(Follower、Candidate、Leader)強調易理解性。
  • Leader Election:若未偵測到 Leader,節點會從 Follower 轉為 Candidate,啟動選舉以選出新 Leader。
  • Log Replication:Leader 記錄 client requests 並傳給 Followers。多數節點確認後,該項目即提交,確保所有節點對操作順序達成共識。

節點狀態:

  • Follower:接受 Leader 的命令與 heartbeats。
  • Candidate:在選舉期間爭取領導權。
  • Leader:協調 replication 與 client requests。

簡化工作流程:

  • 開始:所有節點均以 Followers 身分啟動,並設定隨機 election timeout。
  • 選舉:Follower 逾時後成為 Candidate、增加 term,並請求投票。
  • 投票:若 Followers 在目前 term 尚未投票,且 Candidate 的 log 為最新,便投票給該 Candidate。
  • Leader:取得多數票的 Candidate 成為 Leader 並傳送 heartbeats。
  • Replication:Clients 將 requests 傳給 Leader,由 Leader 記錄並複寫至 Followers。
  • Commit:多數 Followers 記錄該項目後,Leader 提交並套用至其 state machine,同時指示 Followers 執行相同操作。

主要優點:

  • 易理解性:比 Paxos 等較舊協定更容易實作與理解。
  • 強一致性:確保所有節點以相同順序看到操作 (linearizability)。
  • 容錯:選出新 leaders 以處理伺服器故障。

應用:

  • 資料庫:CockroachDB、YugabyteDB。
  • 叢集管理器:HashiCorp Consul。
  • 訊息佇列:採用 KRaft 的 Apache Kafka。

用於高可用性與災難復原的 Multi-AZ 部署:

  • Consensus 與 messaging solutions 在單一 Availability Zone 內提供高可用性,並跨多個 Availability Zones 或 Regions 提供災難復原。
  • 透過將 log replication 至次要目標或持久化儲存層達成。
  • 使用 Amazon S3、Amazon FSx 等儲存服務,以及 Amazon Aurora、Amazon Aurora DSQL 等分散式資料庫。
  • Raft log replication modes 各異:完全同步、近同步或非同步。
  • 複寫資料包含完整系統互動歷史,因此適用於稽核與合規。

CPGs 與 Amazon EC2 容量履行考量:

  • 使用 CPGs 最佳化放置並共置 EC2 執行個體。
  • 管理其與容量履行之間的取捨。
  • CPGs 在單一 Availability Zone network spine 下形成實際部署邊界,縮小可用的 Amazon EC2 容量集區。
  • 影響隨 Availability Zone 大小而異:大型 Regions 與 Availability Zones 中較輕微,小型者則更顯著。
  • 使用 On-Demand Capacity Reservations 保留 Amazon EC2 容量,以管理風險。
  • 優點包括降低延遲,以及透過 shared CPGs 提高容量保障。

CEX 與 MM 網路邊界延遲:

  • 對尋求與數位資產交易所進行低延遲共置的 HFT 至關重要。
  • 客戶無法控制這些邊界;延遲與 jitter 取決於放置和網路設計。

使用 CPGs 最佳化延遲:

  • Cluster Placement Groups (CPGs) 是延遲最佳化放置的基礎。
  • Shared CPGs 將共置延伸至不同 AWS accounts。
  • 符合 Region 內的雲端共置原則。

連線模式:

  • 數位資產交易所提供各種連線模式,其延遲特性從 50–200 微秒到超過一毫秒不等。

最佳連線:

  • HFT 客戶以連至交易所的最低延遲路徑為目標,避開 CDNs 與 load balancers。
  • 理想情況是透過 VPC peering connection,使用公有或私有 IP 直接連至 EC2 order gateways 上的交易所 endpoints。
  • 最佳化通訊協定選擇,優先選用 FIX 而非 REST 或 WebSockets,以降低通訊協定造成的延遲。

延遲監控:

  • HFT 使用分層測試監控 CEX endpoints 的延遲:
  • 基本 HTTP/TCP pings。
  • 端對端延遲。
  • 市場事件與訂單執行的應用程式層級監控。
  • 由於 CEX endpoints 與 HFT instances 可能在 Availability Zone 內移動,需持續最佳化放置,在延遲、可用性及執行個體選擇間取得平衡。

金融資訊交換 (Financial Information eXchange, FIX) Protocol

核心概念與機制

  • 結構化訊息:FIX protocol 使用 tag-value pair 格式的結構化訊息。
  • Tag-Value Pairs:每個資料欄位由唯一整數 tag 及其配對 value 識別。

主要運作層:

  • Session Layer:管理雙方連線,使用 heartbeats、gap fills 等機制,確保可靠訊息傳送、排序及中斷復原。
  • Application Layer:定義新訂單、執行報告、取消訂單及交易分配等業務訊息內容。

廣泛採用與使用案例

  • 起源:最初於 1992 年開發,用於 Salomon Brothers 與 Fidelity Investments 間的美國股票交易。
  • 支援的資產類別:已擴展至支援幾乎所有資產類別,包括固定收益、外匯 (FX)、衍生性商品、商品及數位資產/加密貨幣。

主要使用案例:

  • 訂單路由與執行:在市場參與者間無縫傳送訂單與執行報告。
  • 市場資料傳播:分發即時報價、交易量與市場深度資訊。
  • 交易後處理:處理交易分配、確認與交割明細,簡化後台作業與監管申報。
  • 演算法與高頻交易 (HFT):其結構化、低延遲特性適合自動交易策略;Simple Binary Encoding (SBE) 與 FIX Adapted for STreaming (FAST) 等最佳化二進位編碼可滿足極致效能需求。

FIX Protocol 的運作方式

  • 訊息式標準:以一系列 tag-value pairs 建構,兼顧互通性與效率。

訊息結構:Tag-Value Pairs:

  • 整數 Tag:FIX 訊息中的每一筆資料均以整數 tag 表示。
  • 等號:後接等號。
  • 資料值:接著是資料值(例如 35=D 表示 New Order Single)。

FIX 訊息的元件:

  • Header:包含 BeginString、MsgType、SenderCompID、TargetCompID 等 session-level fields。
  • Body:包含 Symbol、OrderQty、Price、Side 等核心 application-level business data。
  • Trailer:包含用於驗證訊息完整性的 CheckSum。

運作層

Session Layer:

  • 管理兩個交易對手間可靠且持續的連線。

主要機制:

  • Heartbeats:定期傳送訊息以確認連線仍有效。
  • Sequence Numbers:每則訊息使用唯一且遞增的數字,以偵測遺漏訊息。
  • Resend Request:若偵測到 sequence gap,接收方可要求以「gap fill」補上遺漏訊息。

Application Layer:

  • 定義訊息的實際業務內容。
  • 規定有效的訂單類型、執行報告、交易確認與市場資料請求。

範例:New Order - Single (35=D)

  • 以 $150.00 買進 100 股 Apple (AAPL)。
  • 8=FIX.4.2|9=100|35=D|34=10|49=BUYER|56=SELLER|52=20251211-10:00:00.000|11=ORD1001|21=1|38=100|40=2|54=1|55=AAPL|44=150.00|10=000|
  • 8=FIX.4.2:FIX 版本(例如 4.2)。
  • 9=100:Body Length(訊息 body 的字元數)。
  • 35=D:Message Type(D = New Order - Single)。
  • 34=10:Sequence Number(session 中的第 10 則訊息)。
  • 49=BUYER:Sender ID(您的公司)。
  • 56=SELLER:Target ID(Broker/Exchange)。
  • 52=20251211-10:00:00.000:Timestamp。
  • 11=ORD1001:ClOrdID (Client Order ID)。
  • 21=1:HandlInst(1 = 自動執行、私有、無 broker 介入)。
  • 38=100:OrderQty(數量:100 股)。
  • 40=2:OrdType(2 = Limit Order)。
  • 54=1:Side(1 = Buy)。
  • 55=AAPL:Symbol (Apple Inc.)。
  • 44=150.00:Price(限價:$150.00)。
  • 10=000:Checksum(用於訊息完整性)。

Simple Binary Encoding (SBE)

  • 一種專門的開放標準二進位通訊協定,廣泛用於電子交易與高頻交易 (HFT) 環境。
  • 為關鍵任務交易訊息達成極高處理速度及可預測(確定性)延遲。

交易為何使用 SBE

  • 在交易中,每一微秒都至關重要。
  • XML 或 JSON 等傳統資料格式太慢且太龐大。
  • FIX Trading Community 開發 SBE,以滿足在編碼與解碼過程中將 CPU 效率最大化並將延遲最小化的通訊協定需求。
  • SBE 最佳化從訂單建立到送達交易所的交易訊息路徑。

主要原則

固定偏移二進位配置

  • SBE 的核心概念。
  • 為交易訊息中的每個欄位指定精確的記憶體位置 (offset)。
  • 對交易的影響:直接記憶體存取可避免複雜 parsing logic,縮短處理時間並使延遲高度可預測。

CPU 最佳化(Cache Friendly)

  • 設計為對現代電腦處理器「cache-friendly」。
  • 對交易的影響:固定 offset 設計將 conditional branching 降至最低,使 CPU 內部預測機制有效運作。

簡潔性與程式碼產生

  • 使用結構化、機器可讀的 XML schema 定義訊息配置。
  • 工具會自動產生必要程式碼(Java、C++、C# 等),以讀寫這些特定交易訊息。
  • 對交易的影響:程式碼產生可排除人為錯誤,確保傳送方與接收方以完全相同且高效率的方式解讀二進位資料。

交易中的 SBE 與 FAST 比較

SBE(訂單輸入)

  • 傳送實際訂單至交易所時通常優先採用。
  • 無狀態特性與確定性延遲,使其適合關鍵、點對點的訂單提交通訊。

FAST(市場資料)

  • 主要用於接收市場資料(價格、報價)。
  • 優勢是大量壓縮重複資料串流 (delta encoding),非常適合有效率地廣播數百萬筆價格更新。

FIX Adapted for STreaming (FAST)

  • 在交易環境中主要用於市場資料分發,通常不用於傳送交易訂單(訂單輸入)。

目的與使用案例

  • FAST 由 FIX Trading Community 設計,專門最佳化交易所傳至交易公司的大量即時市場資料 feeds。
  • 大量資料:交易所每秒產生數百萬筆價格更新、報價及市場深度訊息。使用傳統文字式 FIX 格式傳送會消耗過多頻寬並造成延遲。
  • 壓縮效率:FAST 是強大的壓縮演算法,透過移除重複資料及使用 template-based system,大幅縮小訊息。
  • 分發 (Fan-out):針對一對多通訊(一個交易所將資料傳給許多訂閱者)高度最佳化,因此非常適合交易作業的「市場資料」端。

FAST 如何處理交易資料

  • FAST 使用「stateful」方法,接收方會記住同一 session 中先前訊息的值。
  • 類比:若委託簿更新時,僅特定股票價格改變,而幣別、交易所及時間不變,FAST 只傳送新的價格值。
  • 優點:大幅降低頻寬使用與整體網路延遲,確保交易者盡快收到價格更新,以做出明智決策。

FAST 與訂單輸入(SBE 為何不同)

  • FAST 最佳化資料接收,但通常不是傳送交易訂單(訂單輸入)的主要通訊協定。
  • 訂單輸入需要可預測性:傳送交易訂單是點對點且極關鍵的互動,確定性延遲至關重要。接收交易所需要每筆訂單完整且可立即解析,不能依賴前一則訊息的狀態。
  • 訂單偏好 SBE:Simple Binary Encoding (SBE) 常用於訂單輸入,因為固定偏移二進位配置允許立即、無條件解析,較 FAST 的 stateful compression 提供更可預測的超低延遲。

市場資料與多播:

CEX Matching Engine:

  • 持續更新委託簿,產生動態市場活動檢視。

市場資料轉換:

  • 原始委託簿狀態透過彙總與標準化轉換為市場資料。
  • 交易所擷取各層級(Level 1、Level 2、Level 3)的最佳買價、賣價等關鍵指標。
  • Level 1 Data:提供最佳買價(買方願付的最高價格)與最佳賣價/要價(賣方願接受的最低價格)的即時資訊,通常也包括最近成交價與成交量。
  • Level 2 Data:顯示不同價格層級的多個買價與賣價(委託簿),提供更深入的市場檢視。此市場深度 (DOM) 資訊有助交易者衡量整體供需。
  • Level 3 Data:通常僅供造市商與交易所會員使用。包含 Level 1 與 Level 2 的所有資訊,以及直接與委託簿互動及執行交易的能力。

市價單:

  • 市場資料會針對市價單產生;市價單會立即與最佳可用買價或賣價撮合。

AWS Transit Gateway 上的 Multicast:

  • 需要在 VPC 內或 VPC 之間複寫並模擬 multicast 傳送。
  • 較小型 CEX 可使用 shared transit gateways,向 MM 分發市場資料。
  • Transit Gateway 雖方便,但並非為高頻、低延遲交易設計,且對大型 CEX 有擴充限制。

市場資料分發:

傳統市場:

  • 透過最佳化、實體範圍受限的共置網路,使用 UDP multicast 向 HFT MM 分發市場資料。

雲端託管的 CEX:

  • 主要使用 TCP unicast WebSocket APIs 分發即時市場資料。

REST APIs:

  • 用於隨選或定期擷取資料(例如歷史交易、K 線資料)。
  • 適合投資組合追蹤器等非即時應用。
  • Polling REST endpoints 會產生較高延遲與更嚴格的速率限制。

FIX Gateways:

  • 部分 CEX 透過 FIX gateways,為機構 MM 提供即時市場資料。
  • 提供訊息標準化與較低延遲存取。
  • FIX endpoints 通常託管於專供特定機構 MM、避險基金及自營交易公司的雲端基礎設施。

精準時間與公平、平等的訂單處理:

公平且平等存取的重要性:

  • 對數位資產交易所至關重要,且範圍超越網路基礎設施,延伸至應用程式元件。
  • MiFID II 等監管架構在傳統市場中強制公平,數位資產交易所也遵循類似原則。

公平訂單與市場事件定序:

  • 在交易撮合前後皆至關重要。
  • 精準計時是公平訂單定序的核心,讓 CEX 能對分散式元件間的訊息加上時間戳記。

HFT MM 的精準時間:

  • 能更準確地處理事件與產生訊號。
  • 為策略執行與風險控制提供資訊。

過去的雲端計時服務:

  • 精準度僅達數百微秒或毫秒,不足以支援要求低個位數微秒精準度的 HFT 策略。

MiFID II (Markets in Financial Instruments Directive II)

  • 是 2018 年生效的歐盟法規。
  • 旨在建立更公平、透明且有效率的金融市場。
  • 提升歐洲各地的投資人保障與競爭。
  • 涵蓋更多金融工具,並收緊行為、透明度及申報規定。

主要面向:

  • 向客戶詳細揭露成本/費用
  • 更嚴格的適合度評估,包括永續性偏好
  • 客戶交易的最佳執行義務
  • 加強向監管機關申報交易,以進行市場監視
  • OTFs (Organised Trading Facilities) 等新交易場所的規則,以及既有場所的更嚴格規定

主要目標

  • 投資人保護:確保客戶獲得最佳結果(最佳執行)與適合其需求的產品,並取得清楚的成本/風險資訊。
  • 透明度:要求向監管機關 (ESMA) 與客戶詳細申報交易活動(價格、交易量)。
  • 市場效率:促進競爭、減少不透明交易(例如 dark pools),並建立全歐盟一致規則。

核心要求與變更

  • 成本與費用:公司必須預先向客戶揭露所有成本(費用、佣金)。
  • 最佳執行:公司必須採取所有措施,為客戶交易取得最佳可能結果(價格、速度、成本)。
  • 產品治理:要求製造商與經銷商辨識每項產品的「目標市場」。
  • 交易場所:建立新場所 (OTFs),並對既有場所施加更嚴格規定。
  • 資料申報:增加向監管機關 (ESMA) 申報交易,以監視市場濫用。

適用對象

  • 投資公司
  • 銀行
  • 資產管理公司
  • 交易場所(包括新的 OTFs)
  • 金融產品製造商與經銷商

Organised Trading Facility (OTF)

  • 是用於債券、結構型產品、排放配額與衍生性商品的歐洲金融交易場所。
  • 作為多邊系統,讓買賣意向相遇並形成契約。
  • OTF 營運者對執行具有裁量權,可進行 matched principal trading。
  • 依 MiFID II 規則,為非流動性金融工具建立透明度。

主要特性:

  • 產品重點:主要是債券、結構型金融產品、排放配額與衍生性商品(MiFID II instruments)等非股票工具。
  • 多邊系統:匯集多個第三方買賣意向,類似其他交易場所。
  • 裁量執行:OTF 營運者可自行決定交易執行方式,不同於 Multilateral Trading Facilities (MTFs) 的非裁量規則。
  • Matched Principal Trading:營運者可作為主體撮合買賣訂單,但須符合嚴格條件,尤其是流動性較低的主權債務。
  • 監管架構:依 MiFID II/MiFIR 建立,須經授權,並受嚴格市場濫用規則與透明度要求約束。

與 MTFs (Multilateral Trading Facilities) 的差異:

  • 裁量權:OTFs 允許營運者裁量;MTFs 為非裁量。
  • 產品:OTFs 著重固定收益與衍生性商品;MTFs 可交易股票及其他工具。
  • Principal Trading:OTFs 允許有限的 matched principal trading,而 MTFs 通常禁止。

Multilateral Trading Facilities (MTFs)

  • 是受監管的電子平台,提供傳統證券交易所以外的選擇。
  • 依歐洲 MiFID II 等規則連結買賣雙方。
  • 促成各種資產(股票、債券、衍生性商品)交易,通常用於流動性較低或店頭市場 (OTC) 產品。
  • 為市場營運者與銀行提供有效率、非裁量的交易。
  • 與傳統交易所相比,對金融工具的審查較不嚴格。

MTFs 的主要特性:

  • 電子化與多邊:匯集多個第三方對金融工具的買賣意向。
  • 替代場所:作為非交易所場所,常用於特殊或 OTC 產品,提高市場流動性。
  • 營運者經營:由市場營運者或投資公司營運,不一定由證券交易所本身營運。
  • MiFID 架構:受 MiFID II 等歐洲指令監管,確保透明與公平。
  • 資產類別:可交易股票、債券與衍生性商品,但有特定規則(例如不可自營交易)。

與受監管市場的差異:

  • 掛牌程序:MTF 上的金融工具不一定須接受傳統交易所(受監管市場)要求的廣泛審查與持續義務。
  • 裁量權:MTFs 依非裁量規則撮合交易;Organised Trading Facilities (OTFs) 則允許對非股票工具行使裁量。

範例:

  • Liquidnet Europe
  • Currenex MTF
  • UBS MTF

Currenex MTF

  • Currenex MTF (Multilateral Trading Facility) 是 State Street 的機構外匯交易電子平台。
  • 提供窄幅價差與來自 60 多家銀行的深度流動性。
  • 提供匿名的 all-to-all ECN 存取。
  • 讓專業人士使用多種訂單類型、演算法與低延遲 API 連線執行交易。
  • 以純 ECN (No Dealing Desk) 系統運作。
  • 著重為大型參與者提供高效率且具成本效益的外匯與金屬交易。

Liquidnet

  • 是技術驅動的代理執行專業機構,也是 TP ICAP Group 的子公司。
  • 將機構投資人連接至大型全球流動性池,主要用於股票、固定收益與衍生性商品的大宗交易。

核心服務與功能:

  • 大宗交易:促成機構投資人間的大型匿名交易,降低市場衝擊成本並保護交易資訊。
  • 全球網路:連結六大洲 57 個市場、超過 1,000 家資產管理公司,合計管理數兆規模資產。

技術與平台:

  • Dark Pools:以 Alternative Trading System (ATS) 或 Multilateral Trading Facility (MTF) 運作,使用私人交易場域。
  • 演算法交易:提供「Barracuda」與「SmartDark」等進階演算法,在內外部場所尋找流動性,同時盡量減少市場足跡。
  • OMS/EMS 整合:設計為與會員既有 Order Management Systems (OMS) 及 Execution Management Systems (EMS) 無縫整合。

資產類別:

  • 固定收益:提供次級市場交易方案,以及初級債券市場的創新電子工作流程,包括與承銷銀行的連線。
  • 上市衍生性商品:擴展至 US Equity Options,以強化多資產能力。

非裁量規則

  • 是不容個人判斷或選擇,並要求特定行動或結果的準則或要求。
  • 常見於金融(交易須經客戶核准)、法律(強制支出/行動)及交易系統(如 5/20 crossover 的固定買賣觸發條件)。
  • 在投資中,意指經紀商每筆交易都必須取得客戶同意;相對地,裁量帳戶由顧問決定。
  • 非裁量意指遵循嚴格通訊協定,而非行使個人裁量。

主要面向:

  • 強制遵循:規則必須精確遵守,例如食品或住房等必需品的非裁量支出。
  • 明確觸發條件:通常包含客觀標準,例如交易系統演算法(如 5 日均線向上穿越 20 日均線)。
  • 客戶控制(投資):在金融領域,客戶保有「最終決定權」並核准每筆交易,經紀商則負責接單。

與裁量規則的對比:

  • 非裁量:嚴格遵守預定規則或客戶指示(例如「XYZ 達到 $50 時買進 100 股」)。
  • 裁量:允許顧問運用判斷做決策(例如「管理我的投資組合以追求成長」)。

外匯交易中的 No Dealing Desk (NDD) 系統

  • 客戶訂單直接傳給外部流動性提供者,不經內部介入,也沒有「dealing desk」擔任交易對手。
  • 確保透明度,並消除經紀商與交易者之間潛在的利益衝突。

NDD 系統的運作方式:

  • NDD 經紀商扮演橋梁,使用自動化系統從流動性提供者網路找出最佳可用價格。

主要透過兩種機制運作:

  • Straight-Through Processing (STP):客戶訂單直接路由至流動性提供者,經紀商在價差上增加小額固定加價作為佣金。
  • Electronic Communication Network (ECN):交易者訂單直接與分散式市場中的其他參與者(包括銀行、其他經紀商及個別交易者)撮合。ECN 經紀商通常每筆交易收取固定佣金,同時提供市場的原始浮動價差。

優點與缺點:

  • 基礎:No Dealing Desk (NDD)
  • 經紀商角色:促成交易,不採取相反部位。
  • 利益衝突:經紀商從交易量/佣金而非客戶損失獲利,因此無潛在利益衝突。
  • 訂單執行:依真實市場價格自動即時執行,不重新報價。
  • 定價:依實際市場狀況而定的浮動價差。
  • 透明度:因直接市場存取與即時定價而具有高透明度。
  • 潛在缺點:高波動期間價差可能擴大;可能涉及佣金或整體成本略高;也可能發生滑價。

產品與經紀商:

  • 交易者通常使用特定平台進行 NDD 交易,數家信譽良好的經紀商提供此系統。

NDD 經紀商:

  • FP Markets:以持續偏低的 RAW spreads(通常為零 pips)及快速執行速度廣受好評。
  • Pepperstone:以優異的 MT4 交易工具及 Razor account 的競爭性價差聞名。
  • IC Markets:因提供市場上極低的平均 RAW spreads 而突出(EUR/USD 最低可達 0.02 pips)。
  • FxPro:提供具有 RAW spreads 的 cTrader 平台,以簡潔介面與進階圖表工具聞名。

Liquidnet Barracuda Algorithm

  • 尋找流動性的交易演算法
  • 結合 dark aggregation 與 lit trading
  • 以高參與率及最低市場衝擊為目標

Barracuda Algorithm 的運作方式

  • 使用 opportunistic logic 取得流動性

Dark Aggregation

  • 核心元件:dark aggregator
  • 在 dark pools 尋找大型匿名流動性區塊
  • 執行交易但不揭露訂單大小或意圖
  • 降低價格衝擊

Lit Trading

  • 補足 dark aggregation
  • 有利時在公開證券交易所交易
  • 運用 opportunistic logic 尋找最佳執行機會

結果與優點

高參與率

  • 在市場交易量中達成顯著參與率(例如 lit market volumes 的 65.5%)

市場衝擊成本節省

  • 節省市場衝擊成本
  • 據報大宗執行節省 10.0 bps

效能指標

  • 比 10% POV (Percentage of Volume trading) 交易成本模型優異 17.4 bps
  • 比 Interval VWAP (Volume Weighted Average Price) VWAP 優異 4.8 bps

結論

  • 有效率地執行大額訂單
  • 將對市場價格的干擾降至最低

Liquidnet SmartDark Algorithm

  • 專為機構交易者設計
  • 在 dark pools 有效率地執行大型股票訂單
  • 將市場衝擊降至最低並提升價格穩定性

SmartDark Algorithm 的運作方式

  • 在 Liquidnet Dark 交易環境中運作
  • 尋找大型、不顯示的流動性區塊

優先路由

  • 使用優先路由系統
  • 評估「yield and quality metrics」
  • 智慧決定將訂單的各部分送至何處
  • 優先選擇執行量較佳且價格穩定的場所

尋找流動性策略

  • 主動尋找並存取廣泛的 dark venues
  • 運用內部 block crossing 機會
  • 避免被動等待撮合

最大化曝險

  • 結合目標策略與最大流動性曝險
  • 讓交易者存取高品質場所

降低市場衝擊

  • 在 dark pools 匿名執行大額交易
  • 防止更廣泛的公開市場看見大額訂單規模
  • 避免在 lit exchanges 發生的顯著價格波動

5/20 EMA Crossover Strategy

  • 使用 5 期 EMA 穿越 20 期 EMA,找出短期趨勢變化
  • 5 EMA 向上穿越 20 EMA 時為多頭訊號(買進)
  • 5 EMA 向下穿越 20 EMA 時為空頭訊號(賣出)
  • 適合有趨勢且快速波動的市場
  • 需要確認(例如 RSI、成交量)以避免假訊號

運作方式

  • 5 EMA(快線):對近期價格變化快速反應
  • 20 EMA(慢線):提供更廣泛、平滑的短期趨勢檢視

進場訊號

  • 多頭(買進):5 EMA 向上穿越 20 EMA
  • 空頭(賣出):5 EMA 向下穿越 20 EMA

實作步驟

  • 辨識趨勢:使用較高時間週期(日線/週線)查看整體市場方向
  • 繪製 EMA:在圖表加入 5 期及 20 期 EMA
  • 等待交叉:在所選時間週期尋找 5 EMA 穿越 20 EMA
  • 確認:使用 RSI、成交量或 K 線型態等其他工具驗證訊號
  • 設定停損與目標:多單將停損設於波段低點下方,空單則設於波段高點上方;使用風險/報酬比(例如 1:2、1:3)獲利了結

最適合

  • 動能交易:掌握快速、劇烈的走勢
  • 趨勢市場:在方向明確的市場中效果最佳
  • 活躍交易者:適合較短時間週期(15min、1hr、5min)的當沖或波段交易

主要考量

  • 假訊號:5 EMA 反應快速,會產生許多訊號,其中很多是假的 (whipsaws)
  • 確認是關鍵:絕不可只依賴交叉;務必尋求其他指標確認

Amazon Time Sync Service:

  • 於 2023 年底改善,使用 PTP 與 PTP hardware clock 達成低於 100 微秒(通常低於 50 微秒)的時間精準度。
  • 由每個 Availability Zone 中的專用計時網路與 GPS-disciplined clocks 支援。

Hardware Packet Timestamping:

  • 於 2025 年 6 月推出,在硬體層級為每個輸入網路封包附加 64-bit、奈秒精準度的時間戳記。
  • 運用 AWS Nitro System 的 reference clock,避開軟體造成的延遲。
  • 提供封包抵達 Nitro NIC 時的奈秒級可視性

強化執行與監控能力:

  • 改善 AWS 上數位資產交易所與 HFT MM 的執行及監控能力。

提升公平性與精確量測:

  • 讓 CEX 能實作更高的公平性。
  • 讓 HFT 能精確量測往返與單向延遲。