摘 要: 論述了上海外資銀行外匯買賣系統的設計與實現,該系統汲取了國際銀行的管理經驗,解決了外匯買賣外匯頭寸管理中的諸多課題。
關鍵詞: 城市商業銀行 資產負債管理 外匯買賣 外匯管理 VB與EXCEL編程
城市商業銀行與工行、農行、中行、建行、交行等大型銀行不同之處在于它是以一個中心城市為經營范圍的地方性銀行。由于銀行業務管理上的區別,它比同城的其他大型銀行分行面臨更多的挑戰。
銀行的外匯買賣管理是一個比較艱深的課題。如何評估外匯交易員所用損益計算方法正確性、如何知道任一時間銀行外匯買賣總的敞口是多少、如何評估這一時間外匯買賣總敞口的損益是否達到止損點,以及在迅速變化的外匯市場上借助何種工具即時得到上述判斷以便果斷采取止損操作,這些都是銀行外匯管理的重大課題。
在本系統中融入了在美國紐約花旗銀行及JP摩根工作二十幾年、尤其在投資銀行業務系統方面有資深經驗的Evan先生給上海幾家外資銀行確定的外匯買賣敞口管理方案及Spread Sheet編程建議。Spread Sheet編程是通過對Excel進行VB編程,實時抓取外匯買賣系統中的交易信息,根據設定的算法,讓外匯交易員即時輸入市場匯率,達成對外匯買賣損益的即時評估。同時,也相應提出并解決了外匯風險管理的難題。
1 調研與分析
外匯買賣根據交易對象可分為自營交易和對客交易,對客交易是為滿足客戶的需要而進行的外匯買賣;自營交易是銀行對沖客戶交易產生的敞口或為資產的保值增值而進入外匯市場進行的外匯買賣。根據外匯買賣的交割時間,可分為即期交易、遠期交易和掉期交易。即期交易是成交后二個營業日內交割的外匯買賣,遠期交易是成交后二個營業日后交割的外匯買賣,掉期交易則由一個即期和對應的一個遠期交易組成。根據外匯的業務類型,可分為結售匯和套匯。結售匯是根據外匯管理的要求,與企業進行人民幣和某一外國貨幣的買賣,套匯的交易貨幣則是二種外國貨幣。
二個外資銀行總行在日常業務中都涉及上述各種外匯買賣。在引入新系統前,一個是在UNIX環境下開發的單機式的會計記帳系統,一個是基于NOVELL的多用戶簡單的業務系統。對于外匯買賣而言,舊系統只能記錄會計傳票,根本談不上對外匯交易的損益評估,只是在月底時,人工計算重估的損益,再通過人工傳票錄入系統。而如何考核外匯交易員的損益計算方法是否正確、銀行的外匯交易敞口、當天止損點是否達到等管理上的問題,由于沒有先進的外匯管理理念和技術手段,目前尚處于粗放經營的局面。
如何設計一個相對獨立,又與其新的核心系統能自動接口的外匯買賣系統,它覆蓋所有的外匯買賣交易并能自動生成外匯交易會計傳票及客戶實時帳務接口送達核心系統。在此基礎上,外匯買賣系統通過Excel界面實現實時敞口監控及損益評估,提升銀行外匯買賣管理的技術手段,而這樣的外匯買賣系統在其他商業銀行又具有通用性與可移植性,這便是整個系統設計與開發中的主題。
2 系統設計
2.1 聯機交易
為使業務人員操作方便,系統將即期、遠期和掉期設計成二個主要交易畫面。由于即期交易和遠期交易主要的不同之處在于交割日期,這里將之放在同一個交易畫面內,要求用戶輸入時選擇交易類型是即期還是遠期。對于掉期交易,在一個交易畫面內,反映一筆即期交易和對應的一筆遠期交易,其外匯買賣的損益在交易時就已確定。
在交易畫面上,還有交易對手、對客/自營、銀行買入/賣出、買入幣種金額/賣出幣種金額、交易匯率、市場匯率、二個交易幣種的利率、交割方式、自動生成即時損益等要素。
對于即期交易或掉期交易的即期部分,如果在交易發生當日即進行交割,則要由系統即時計算出損益。其損益計算的算法是:由交易匯率確定的二個交易貨幣的金額,根據當天對記帳本位幣的中間價(交易時的市價)分別折成對應的記帳本位幣的金額,則其差額即是外匯買賣的損益。
對于當天不交割的即期交易或遠期交易或掉期交易,系統在交易建立時,不計算實時外匯買賣損益,只生成相應的表外會計傳票。
以上介紹的是外匯買賣交易建立的基本功能,如果交易輸入有誤,系統還提供了修改功能,對于即期/遠期/掉期在交易建立以后的交割,則有專門的交易做清算并計算外匯損益。對于由于來自交易對手的取消或銀行人員錯誤輸入而導致的交易取消,系統提供了強大的處理功能。因為取消時,對于這筆外匯買賣可能只記了表外帳,或已銷掉表外帳并記了表內帳(包括損益),或對于掉期交易可能即期都入了表內、而遠期還未交割,當然,也有可能即期/遠期/掉期全都交割后的取消,這一系列的取消帶來的客戶帳務及會計帳務的自動沖銷,系統均能自動處理。
系統還提供了強大的查詢功能,用戶可根據某種條件來查詢,并可按用戶自已喜歡的格式生成Word文檔并打印出來。
2.2 批處理交易
批處理主要實現二項功能:一是根據業務發生的情況生成外匯買賣的各種報表,二是在月底批處理時,要能正確地重估外匯買賣的損益。
外匯買賣由批處理生成的靜態業務報表主要有:(1)當天外匯買賣交易報表;(2)遠期交易及掉期交易未交割清單;(3)本月外匯買賣交易報表;(4)遠期外匯買賣未實現的損益評估報表;(5)按交易對手分類的交易額度報告;(6)收盤時外匯買賣頭寸表;(7)外匯買賣產生的現金流量預期報表;(8)月底外匯買賣重估明細清單;(9)每日外匯買賣會計傳票清單;(10)每日外匯買賣客戶帳務明細報表;(11)與核心系統接口數據對帳報表等。
這里,重點介紹對所有商業銀行具有借鑒意義的“遠期外匯買賣未實現的損益評估報表”。如何評估遠期外匯買賣未實現的損益,這確實對業務的水準提出了很高的要求。根據美國花旗銀行和JP摩根的做法,由于遠期交易中二個貨幣的金額是由現值加上貨幣的時間價值即利息而生成的在將來某一天的金額,故在到期交割的任一天評估其損益時,應首先根據到期時的交割金額分別根據交易日二個貨幣的利率和至交割日的天數,計算出在交易日二個貨幣各自的現值,再加上至評估日二個原現值的累計利息,得到至評估日的現值,再與當天的二個貨幣對記帳本位幣的中間價或收盤價分別換算成記帳本位幣后相比,從而得到正確的遠期外匯買賣損益。
再有,如何在技術層面上正確看待掉期交易在月底時,即期已經交割,但遠期尚未交割時對于外匯損益的影響,這對于許多銀行的月底外匯買賣損益重估有重大意義。對于此時的掉期交易評估,有的銀行根本只考慮已進入資產負債表內的即期部分,由其交割價格與月底重估匯率相比得到損益,而不考慮掉期的遠期部分的損益(因為此時遠期部分尚在表外),這樣往往會在損益表上反映出較大的損益,其實這種評估方法是不對的。掉期交易實質上已經鎖定了銀行必是收益,如對于即期已經交割,但遠期尚未交割的情況在月底進行損益重估,要么將未割的遠期部分根據前面的現值加上累計利息的方案進行評估,要么根據月底的評估匯率將其即期部分重新記帳,而將原先即期交割日的會計帳沖掉,因此這種掉期不參加月底的重估(當然次日再沖回)。
2.3 實時外匯買賣敞口、匯率敏感性分析及外匯管理
如何知道任一時間銀行外匯買賣總的敞口是多少、如何評估這一時間外匯買賣總敞口的損益是否達到止損點,以及在迅速變化的外匯市場上借助何種工具來即時達成上述判斷以便及時采取止損操作,這是此系統中最具挑戰性的課題之一。
所謂外匯買賣的敞口,是指由于外匯交易中對于某一交易貨幣累計的買多或賣多而導致的多頭或空頭未及時平盤而產生的頭寸。這部分頭寸將隨著匯率的波動而產生損益。如果敞口的金額較大,則暴露在匯率風險下的金額就較大。一般大型銀行在各城市的分行都在一天外匯營業終止之前,將一天產生的外匯敞口通過與上級行或總行做平盤交易,最終將敞口歸結到總行。總行將最終的敞口軋差后,視情況在國際市場上做平盤交易,以控制風險暴露的頭寸。
根據美國花旗銀行的外匯敞口管理方法,本文設計了FX Sensitivity報表,以Excel界面方式實時從外匯交易系統中抓取敞口數據。系統自動計算出在任一評估時刻的外匯買賣敞口,允許用戶輸入即時匯率及遠期點,從而重估出各幣種項下的敞口產生的損益。在匯市行情急劇波動時,這種實時采集數據并估算損益的方法,有助于銀行即時做出判斷,以便在行情不利時果斷采取止損操作,從而為二個外資銀行在風云變幻的外匯市場中決勝千里提供了有力的武器。
此外,在以上外匯敞口基礎上,系統進一步解決了外匯管理的難題。眾所周知,外匯管理主要是指匯率的變化對銀行產生的損益,它一方面包括外匯買賣交易產生敞口,另外還包括銀行本身的資產及負債在匯率風險中的暴露程度。外匯管理,是當代銀行資產負債管理中的重要課題之一。它體現西方商業銀行從資產管理演變為負債管理,再到資產負債比例管理的管理理論的漸進。我國的商業銀行目前還處在存款立行的負債管理階段。
本系統用于風險仿真時,主要是輸入市場匯率的預計變化,進行匯率的壓力測試,觀察銀行外匯暴露變化趨勢。除了匯率這個變量外,還引進了外匯交易模擬測試。另外,還研發了利率風險、到期日風險管理報表及其風險仿真。
在系統架構上,將風險管理子系統與生產環境相獨立,因為風險管理系統需要采集生產環境中所有的資產業務及負債業務的數據明細,并且在生成報表時對計算機的CPU、內存的資源有比較大的影響。而生成風險管理報表時,通過Oracle的數據庫鏈接(DBLINK)功能,實時地從生產環境中采集數據。
3 程序設計
3.1 系統基于的平臺與數據庫
外匯系統主機使用Windows 2000 Advanced Server,Oralce數據庫,各客戶電腦安裝Windows 2000 Professional及Oracle客戶端。對于外匯交易主管及稽核人員的電腦,因為要運行實時敞口及匯率敏感性Spread Sheet,還需安裝Excel。
3.2 主要算法
敞口由即期敞口和遠期敞口組成。對于這二種不同的敞口,在重估時要采用不同的算法。對于即期敞口,只要使用重估時的市場即期匯率與即期敞口相乘得到記帳本位幣的敞口金額。而對于遠期交易敞口,則要針對每一筆交易明細來評估,首先計算出至交割日的天數(Remaining lifetime to value date-R)。
如果R為1個月、3個月或6個月,則以輸入相應的遠期點加上即期匯率乘以金額得到記帳本位幣的敞口金額。
如果R在1個月、3個月或6個月的時間段之間,則可以用數學上的內推法計算出其遠期點:
假設遠期點:1個月=50,3個月=30。例如今天為2003年1月3日,1個月后是2月3日,3個月是4月3日。則對于一個遠期交割日在2月25日的交易,遠期點按如下方法計算:(30-50)*(Feb 25-Feb 03)/(Apr 03-Feb 03)+50=-20*23/58+50=42.07
以這個遠期點加上即期匯率,則可以得到2月25日的遠期外匯買賣的市場價格。
對于6個月以后交割的外匯買賣,使用輸入的大于6個月的匯率,對于交割日在3天至1個月或1個月至3個月時間段內的遠期交易,可以使用數學上的外推法計算出畸零天數的遠期市場匯率。
3.3 主要程序設計語言
為方便用戶,系統采用VB作為主要程序設計語言,而實時敞口及匯率敏感性、外匯管理Spread Sheet則采用支持Excel的VBA編程。
4 結束語
本系統于2001年12月在華一銀行總行投入運行,于2002年11月在德富泰銀行總行投入使用。事實證明,它汲取了國際銀行的管理經驗,解決了外匯買賣、外匯頭寸的管理中的諸多艱難課題。在中國加入WTO的今天,對各城市的商業銀行加強外匯買賣的管理以及外匯頭寸的管理具有現實的指導意義。
參考文獻
1 喻國寶.Microsoft Excel 2000 for VBA.北京:人民郵電出版社,1999
2 北京博彥科技發展有限責任公司.Office VBA.北京:北京大學出版社,2001
3 彼得.羅斯.商業銀行管理.北京:機械工業出版社,1998
4 吳俊德.外匯交易及資金管理.北京:中信出版社,2001