FIX於市場資料傳輸的應用

作者/黃建勳

前言 在金融證券相關行業越來越發達的今天,資訊交換技術與金融證券業的關係已經越來越密不可分,隨著全球化趨勢的不可逆,與國際接軌也成為一個重大的議題,因此屬於國際資訊交換技術標準的FIX協定(FINANCIAL INFORMATION EXCHANGE PROTOCOL)被廣泛的運用在金融證券業中。 FIX是一個將金融證券交易細節正規化為結構化語言的協定,是專門為了即時進行股票電子化交易設計的工業標準。FIX 同時定義了訊息的格式與遞送機制,最早於1992年被提出,後來經由金融證券以及相關資訊技術產業的提倡下,於1993年重新翻修成為較嚴謹的標準協定,目前已成為國際通用的標準協定。 使用效益 FIX的特性以及效益有以下幾點:
  • 格式開放:FIX的格式屬於國際標準,明確、開放且具有擴充性,任何機構只要依據FIX的格式開發應用程式即可與國際接軌;且FIX保留了使用者自行定義格式的空間,通訊雙方可利用FIX保留的自行定義格式進行必要的通訊,保留了商業邏輯設計上的彈性。
  • 安全性:FIX並不使用特定的加密機制,只是純粹的資訊交換平台,因此可以配合各家業者的需要採取最適合的安全加密措施。
  • 標準化:標準化的錯誤處理機制,保證資料不遺失。
  • 快速的斷線回復,使損失降至最低。
  • 明確的協定標準:降低雙方溝通的成本,減少測試時所需的設定與執行時間。相同的傳輸技術可應用在不同的交易系統,大幅降低開發成本。
技術介紹 FIX的訊息可大致上分為兩種,一種是管理訊息(administrative message),另一種則是應用訊息(application message)。 一、管理訊息:管理訊息在FIX中是為了通訊的功能性而存在的,管理訊息包括了心跳訊息(HeartBeat)、登入(logon)、登出(logout)、測試(test request)、重設訊息序號(Sequence Reset)。
  • 登入與登出訊息,當client端與server端建立連線時,client將送出的第一個訊息必定是登入訊息,若驗證無誤 server端會送出一個logon訊息給client端,反之則送出logout訊息並切斷連線。
  • 測試訊息,測試訊息會強迫連線的另一端回覆一個心跳訊息,藉著驗證心跳訊息的序號等狀態來達到測試連線是否正確的效果。
  • 重設訊息序號,FIX的每個訊息都帶有序號以防有漏失訊息時可以要求重傳,client端與server端各自維護自己的訊息序號,若是對方傳來的訊息序號與上一次接收的訊息序號相差不是1的話,即認為中間有訊息遺失,情節輕微的話可以用重設訊息來同步雙方的序號,若是情節嚴重的話只能以人工介入處理來排解問題。
  • 心跳訊息,當FIX的client與server端連線登入成功以後,若是過久沒有交換資訊,超過一定的時間會互送心跳訊息,以確認連線依然維持。
二、應用訊息:應用訊息是跟證券交易商業邏輯上相關的訊息,由於FIX的應用訊息種類繁多,以下只針對市場資料(market data)訊息做介紹。 市場資料的傳輸在FIX上大致分為三種,分別是市場資料要求(market data request)、市場資料快照(market data snapshot)以及市場資料更新(market data incremental refresh),其中市場資料快照以及市場資料更新是用來回應市場資料要求的。有些系統需要傳送即時的市場訊息,包括了買賣最佳檔位資訊、以及成交資訊價格等等,市場資料要求是一種通用的對於某檔證券的資訊請求,一個市場資料請求會得到的回應是對方將回傳市場訊息(即市場快照或是市場資料更新),其中每個資料入口(data entry)可能包含了買方資訊、賣方資訊或者成交資訊等等。 市場資料快照是為了回應市場資料請求的一個方式,他的運作原理由下表一至表三說明,表一為原本的市場交易資料,假設總共有十檔股票訊息,經過若干時間的交易之後市場交易資料變成了表二,從其中我們可以發現股票C從最佳五檔中消失了,股票H的數量被更新成z了,以市場資料快照的處理模式來看的話,我們就必須直接將表三整個市場的資料傳送給券商以回覆市場資料要求。 雖然市場資料快照能夠有效反映市場資訊的變化,但是由於每次他都要傳送全部的資料給券商,造成傳輸的成本過大,因此若是券商那邊已經存有了先前的市場資料,那我們就可以改用市場資料更新來回應市場資料請求,情境如同先前的市場資料快照,十檔股票經過交易後,股票C不在最佳五檔當中,股票H的數量被更新,若是我們使用市場資料更新的處理原則,我們將與券商定義三種動作,INSERT新資料,用於完全沒有在上一筆市場資料中插入全新的資料,DELETE舊資料,用於刪除已經從上一筆市場資料消失的舊資料,UPDATE資料,用於還存在於市場資料但是依這些資料的屬性可能有變動的處理。依照上述原則我們就產生了表四,直接UPDATE股票H的數量z,以及產生一筆DELETE股票C的指定傳送給券商以協助他們更新市場資料,以上述例子來看,我們將原本需要傳輸的9筆資料量降成了2筆,減低了傳輸的資料量達到77%,如此一來可大幅降低傳輸成本。

表一

表二

表三

表四
展望與結論 金融證券業交易面的電子化已是不可逆的趨勢,應用也越來越廣泛,隨著全球化的趨勢台灣金融證券業與國際接軌也勢在必行,FIX是一個國際化的標準,交易所可以使用FIX讓券商更容易、簡單、快速且低成本的下委託,使用 FIX 來接觸流動性高的市場,取得更好的價位,交換訊息,以更有效的交易。對於各大證交所以及券商系統之間錯綜複雜的通訊關係是一個很好的解決方案,只要遵循這個標準建置的系統可以使得通訊以及交易的標準化,避免人為介入所產生的錯誤,大幅提高整個產業的管理水準以及降低不必要的成本。 參考資料 1. Wikipedia - Financial Information eXchange 2. The FIX Protocol Organization 3. http://fixglobal.com 4. 金融資訊交換的利器-FIX謝昌霖