想做程序化交易前要做的準備
admin
金融理論與量化分析知識
程序化交易以金融資產定價和量化分析的理論和方法為基礎。所有的程序化交易策略的交易思想都是根據相關的金融資產定價理論、金融市場行為理論以及相關的量化分析方法為基礎制定的。我們對金融資產的價格決定、金融市場參與者的行為決定及其影響沒有一個比較深刻的理解,我們制定的交易策略可能就是片面的,隱含極大風險的。程序化交易只能根據過去和現在的信息進行決策,是一種事前決策。一旦下單,要想獲得收益或回避風險,就必須交易方向與未來價格走勢一致。未來是不確定的,怎樣根據過去和現在較為準確的預測未來?這就需要相關的理論和方法的指導。程序化交易需要把交易策略思想變為計算機可以分析、決策和執行的指令,因此,交易策略必須是可以清晰量化的,而非模糊的定性。比如,在“高拋低吸,波段操作”中,何為高,何為低,這必須有一個準確的數量界定的方法,特別是波峰低谷在事后雖然是明晰的,在事前卻是未知的。因此,總結歷史規律的量化分析方法為我們制定程序化交易策略提供了基本的方法論指導。
簡單而實用的證券市場量化分析方法就是價格變動的技術分析法,包括趨勢分析、支撐阻力線分析、技術指標分析、波動分析等。其中,為了程序化交易需要重點掌握技術指標分析法。多種多樣的技術分析指標可以為開發交易策略提供構想并在決定入市和離市時間點上也會提供幫助。如果只利用價格開發交易策略的話,因表現力不足很難再繼續制定新的交易策略。相反,如果充分利用價格波動的技術分析指標的話,將更加容易地開發出新的交易策略。
在利用技術分析指標方面,尤為重要的是不能因為是經常使用的指標而忽略它。許多人認為現在廣為使用的技術分析指標不準確。那么,它們對于程序化交易是否有用呢?長時間一直被使用的指標可以認為是得到交易員的廣泛認可的,也反映是最為有用的。每個技術分析指標都具有自己的特點�,F階段我們知道的指標就多達數百個,因此在眾多的指標里先分析哪些指標就是一個非常頭疼的問題。但是,技術分析指標大致可以分為幾種類型,其中我們只要重點掌握經常使用的移動平均線、MACD、RSI、隨機指標、DMI、ADX等幾種指標,其他的指標也可以迅速掌握。只要先著重掌握經常使用的技術分析指標,然后可以逐漸向新的指標領域擴展。學習技術分析指標的過程中最為重要的不是背誦計算公式,而是理解指標的構成原理和背景。通過上述方法掌握的技術分析指標相關內容,會成為開發交易策略的原動力。
除了常用的技術分析指標外,較為復雜的量化分析方法是設計較為復雜的程序化交易策略的理論基礎。常用的方法包括統計分析中的回歸分析、方差分析、波動率分析;資本資產定價模型、資產組合模型、期權定價模型、期貨定價模型、組合套利模型、價差套利模型等。
計算機編程能力
程序化交易是利用計算機把所有的交易用系統化的規則自動處理的過程,因此需要把自己勾勒出來的交易策略用計算機程序實現出來。這是把交易策略轉換為計算機能夠理解的語言的過程,因此需要掌握一定的計算機編程能力。利用計算機語言對交易策略編程的過程對于剛剛接觸到程序化交易的人來說是最為困難的事情。不僅需要一定的計算機編程能力,而且必須熟悉該交易系統的計算機編程語言。雖然大多數的程序化交易平臺系統的編程語言的基本語法結構是相通的,但畢竟各個系統平臺的編程語言的語法和函數還是存在一定的差異。因此,在進行程序化交易策略的編程之前,我們必須先學習其編程語言。當我們將在一種交易平臺系統上使用的交易策略移植到另一種交易平臺系統上使用時,我們需要了解兩種編程語言的語法和函數差異,將舊的語法和函數轉換為新的語法和函數。對于沒有計算機編程基礎的人來說,熟練掌握交易系統的計算機語言是比較困難的,但更為困難的是把交易策略客觀地編輯為計算機程序的過程。第一次開發交易策略的交易員為了交易策略編程通常會使用圖表或技術指標分析、趨勢線分析、前高點/前低點分析、支撐阻力線分析、背離(Divergence)分析等等。上述方法具有的致命弱點就是主觀性。比如,對出現雙重底時入市的規則編程中,需要明確第一次見底和第二次見底的幅度并且要明確雙重底的間隔和高度等等。上述方法可以依據分析師的主觀判斷而出現諸多不同之處,很難用客觀的數據來定型。因此,在第一次使用計算機語言編輯交易策略時,選擇主觀性較強的分析方法不如利用技術分析指標等客觀性較強的分析方法來編輯基本的交易規則更為容易。
程序化交易平臺
進行程序化交易必須擁有一個與經紀商主機連接,能夠實時接收行情信息、編輯交易策略、評估策略效果、運行交易策略、下達交易指令并可以進行人工檢測和干預的程序化交易平臺。通過該平臺,投資者可以開發、評估和運行自己的程序化交易策略系統,實現其程序化交易。目前有許多計算機證券期貨行情系統和交易系統,雖然可以實時顯示行情、分析行情和人工下單交易,但它們不能夠運行交易策略系統執行程序化交易。另外一些能夠進行復雜的量化分析和決策的計算機系統(如Eviews,Matlab等計量分析軟件)卻因為不能接受實時行情信息或不能直接向經紀商的交易系統下達交易指令,因而不是合格的程序化交易平臺。作為大型的機構投資者,他們往往會有專門的計算機編程人員開發專門的程序化交易平臺和交易策略系統。作為普通的個人投資者和小的機構投資者,則只能夠選擇一些公用的并可與經紀商交易系統連接的程序化交易平臺來開發和運行交易策略,實施程序化交易。程序化交易平臺系統的基本功能模塊如圖2-3所示。只有具有這些基本功能的平臺系統才是程序化交易可以使用的平臺系統。

圖2-3 程序化交易平臺系統的基本功能模塊