股票期貨外匯程序化量化智能化交易的本質與區別

期貨 程序員 金融 中金所 胡明哲 胡明哲 2017-11-06

日常生活中總是能聽到身邊一些炒期貨、炒股票、炒黃金、炒外匯的高手提到:量化交易、程序化交易、高頻交易、智能交易、EA交易;上述這些東西新手聽到了難免會比較迷茫、懵懂,但是都會有這樣一種感覺,那就是感覺這個東西非常的高大上,本文就來給大家揭祕一下,這些所謂的智能化、程序化、高頻交易它們之間有什麼區別或者說有什麼關聯性。

還有一些朋友會說,中國的股票根本無法使用程序進行自動化交易,也根本沒人見過,股票一般都使用大智慧,就只能給你一個指標看看,畫畫線,根據線的趨勢來交易,不能程序化交易。還有人說期貨程序化交易就是用文華財經,TB交易開拓者就能實現,但是這些軟件開發公司根本不是期貨公司,而是軟件科技公司。他們到底是如何實現完全自動程序化交易期貨呢?

還有就是現在任何一所學校的金融系、計算機系都沒有教學生如何使用編程來實現股票、期貨、外匯程序化自動交易的,究竟是用了何種編程語言呢?大家也不得而知。

以上這些問題,包括還有一些程序化所涉及到的問題我都會在本節中一一為大家進行揭祕,哪怕你是一個剛入門交易行業的小白,以前對程序化一無所知,哪怕是才剛剛去開了一個外匯賬戶準備炒外匯的,只要讀完本節內容你都可以去和你身邊金融圈的朋友去吹牛了。保證他們聽完你所說的這些,你就是他們心目中的金融自動化交易系統開發大神。

股票期貨外匯程序化量化智能化交易的本質與區別

先來講下程序化交易的發展過程,一開始期貨是通過電話報單的形式,想炒股的時候打電話給交易員,交易員給你下單,這是最古老的一種下單方式,但是這種下單方式有很大的缺點,就是速度慢。要打電話,還要叫交易員操作,價格早就波動了,機會也就少了,後來發展到電腦軟件下單,電腦軟件設置好我要下多大的倉位,下什麼商品,多單還是空單,馬上就給你下單了,這樣就快很多了。但是還是同樣的問題,有些人覺得還是不夠快,因為有些時候價格波動的非常非常快,當遇到大行情來的時候,比如非農,利率決議這樣的新聞來臨,價格一路往上漲,我要是慢一步,會少賺很多錢,因此,有些人又在想,能不能更快的來操作呢?於是又產生了一種新的交易模式:高頻交易,高頻交易其實也是智能交易的一個雛形,高頻的意思就是無論做股票、期貨還是外匯他以前都是一種掛單模式,上面有多少人想賣,下面有多少人想買,交易所是可以獲取到這些數據的,高頻交易就是把這些數據獲取出來,上面有很多很多人想賣掉,然後他下的量又很重,下面買的人又很少,那就意味著會把價格砸下來,他要是能夠最快的速度獲取到上面這麼多人賣的信息,我立刻買,第一時間賣掉我就能賺錢,這個就是爭分奪秒,因此就產生了高頻交易,高頻交易其實最簡單的就是獲取一些實時的數據來交易,交易他就賣,賺點錢馬上就出場,然後接著再找這樣的機會在來交易,以此就是來回交易,類似剝頭皮交易,賺了錢就跑。

後來又發展到了程序化交易,程序化交易其實就是量化交易,這兩個是一個概念,量化交易下單會根據以往的各種各樣的歷史數據,如:趨勢(均線)、以往的波峰波谷、波浪理論、江恩等這些技術來獲取歷史數據,來判斷進行下單;我們經常會聽到身邊的金融工作者提到髖客,那麼,寬客是什麼呢?人們把從事量化交易的人,國外叫Quant,國內翻譯過來就是寬客。

程序化交易的幾種模型:趨勢交易法,如MACD、均線;套利法,做過期貨套利的朋友都知道可以期現套利,就是期貨和現貨進行套利,國內外交易所套利等;馬丁格虧損加倉,當價格跌到一定地步的時候判斷這個價格可以買了,就可以採取馬丁格加倉的技術,如果這個底部還不是最底部下個底部繼續加倉;剝頭皮,和剛才所說的高頻交易類似。

程序化交易後又發展到今天的智能交易,智能交易能夠讓程序自己學習,程序化交易有一個非常顯著的特點,就是交易員把自己的思路告訴程序員,讓程序員嚴格的按照自己的思路寫出來,讓程序代替交易員進行買進賣出,這就是程序化交易;智能交易根本不用告訴程序你的思路,讓程序按照你的思路進行交易,只需要把大量的歷史數據,影響匯價波動的一些因素、因子輸進去,程序會自己把這些數據進行總結,因為歷史已經出現過,他會根據歷史的一些數據因子不斷實驗、總結,通過學習,程序會找到一套屬於自己的規律,根據以往數據推測出一套非常好的下單規律,根據這個規律按照以往的數據來測算準確率可以達到90%以上。這裡所說的前提是以往,但是能不能適應未來的趨勢無從得知。除了上述所說的自己學習、自己找規律以外還會自己優化思路,程序化交易就是交易員有一套思路,然後告訴程序員,讓程序員寫出來,測試歷史數據如果效果不好,又要想別的思路讓程序員在寫,這個智能化交易就比較厲害了,他會自己優化思路,當然這個思路本身就是他自己想出來的思路,不是程序員想出來的,他自己根據一些數據想出來一個思路,他會自己根據數據去驗證這個思路行不行,如果不行,他就會自己去優化思路,這就是智能化交易一個非常厲害的地方。智能交易目前所涉及到的技術層面包括:神經網絡、深度學習和數據分析,這三個是目前世界上來說實現人工智能(AI)和智能交易最前沿的技術,神經網絡是用來模擬人腦的,因為人腦他是會思考的,程序要想自己學會思考就要用神經網絡技術;深度學習是對神經網絡一個更大的優化和實現,因為人腦的神經細胞不知道有多少億個,這個量非常大,要是讓計算機的CPU吃不消,而深度學習通過提取特徵一步一步優化可以實現更強大的功能;其實數據分析的一些主要功能不是涉及到思路、思考,而是涉及到一些分析方面的,因為人腦處理的數據是非常龐大的,像現在的一些數據庫技術,比如MySQL、PGSQL,數據量比較小的時候,幾G/幾M,處理一個查詢非常快,但是當達到TB的級別的時候,他的查詢速度非常慢,有各種侷限性,所以大數據就出來了。神經網絡和深度學習可以使用Python、R、Matlab等編程語言來進行實現,大數據也有相應的技術工具來實現。

下面來介紹下國內期貨程序化交易的實現方式,我會給大家依次介紹股票、期貨、外匯;為什麼先說期貨,因為期貨各方面機制在國內都比較成熟,像那些培訓機構都是以期貨量化交易為名培訓,很少有講到外匯方面的量化知識,但都大同小異,正所謂師父領進門修行在個人。

期貨開戶的時候去的是期貨公司,在期貨公司開戶是不是就可以理解為在他們那邊交易呢?其實不以為然,中國的期貨公司很多,具體多少家我也不清楚,但是他們的工作只是幫你完成開戶而已,真正的進行交易不是期貨公司,而是期貨交易所。中國有四大期貨交易所:上海期貨交易時、大連商品交易所、鄭州商品交易所、中國金融期貨交易所;所有的期貨公司開戶完以後,下的單子必須進入這些期貨交易所。上述四大交易所他們各自有各自的商品,我們要用程序自動交易期貨和我們開戶的期貨公司沒有關係,而是和期貨交易所有密切關係;怎麼才能實現程序化交易呢?期貨交易所必須提供一個可以進行程序化交易的接口才可以進行程序化交易;期貨交易所那邊有個服務器,服務器接收數據,張三要開個多單買滬銅,他有這樣一個接收的數據,接收到數據之後服務器幫你執行,和別人撮合進行交易。期貨交易所要想實現程序化交易,期貨交易所是有接口的,他是一種協議,他約定你發送什麼數據,就給你交易什麼品種,多少量,這種協議叫做FTD(期貨交易所)協議;學過計算機的人都知道,請求數據是需要協議的,如HTTP協議,TCP/IP協議。這個FTD協議經過一些技術公司封裝之後,然後就可以通過這個接口發送協議到期貨交易所,如上期CTP API、金仕達、易盛、中金飛馬,這些接口對於我們普通人來說,開發仍然是很難的,於是再次封裝,開發出來的軟件如文華財經、TB交易開拓者、MC(multicharts)、金字塔。

股票交易所也有四家:上海證券交易所、深圳證券交易所、香港交易所、臺灣證券交易所。剛才我們再說到期貨的時候,你要想實現程序化交易,跟交易所的協議開放程度是完全相關的,有人說股票他好像沒見過可以自動交易的軟件,為什麼呢?到底有沒有呢?其實股票完全可以實現程序化自動交易;如之前某證券公司大跌,就是因為程序員搞錯了,出現了BUG,還有一些機構可以進行程序化交易,這是為什麼呢?因為股票交易所他們把接口協議可能是賣給了一些金融基金公司或者一些機構。以前很多公司都是可以的,如掘金量化,但是現在不可以了,被限制了,如果把股票做成程序化交易就會造成大漲大跌,這對於普通老百姓的用手點點弄弄交易是很不公平的。但是他被限制的是自動化交易的功能,獲取數據分析的功能還是存在的;無法交易的API還是可以獲取的,第三方軟件公司通過無法交易的API開發出來了大智慧、同花順,這些軟件不能直接下單交易,但是能獲取歷史數據進行分析,比如畫一些MACD和MA指標等。

外匯交易所分為國內各大銀行和國外各大銀行,外匯交易所毫無疑問就是銀行了,外匯市場在國內還不開放,但是在國外外匯市場已經非常成熟了,完全可以用程序化來進行交易,重點說下國外,畢竟國內還沒有完全開放。外匯市場他是通過銀行間金融通訊協議FIX,FIX也是和FTD協議差不多,FIX協議再次封裝,由此又產生一些可以程序化交易外匯的軟件;最著名的就是MT4,MT4可以說目前快一統天下了,當然還有MT4的升級版MT5,JForex、tradestation以及盈透證券 TWS API。

大家可能會問到,為什麼這些第三方公司要開發這些交易軟件啊,因為他們有利潤啊,所以說,這裡面有一個特點就是收費問題,文化財經功能比較全面的一年要9000多,TB交易開拓者是採取按交易提取佣金的,也就是你通過我的軟件進行交易每筆單子我要抽取百分之多少的佣金,MC也是抽取佣金的,金字塔也是收費的,包括下面股票的大智慧、同花順也是收費的。

之所以提到這個費用問題是因為在外匯裡面有一個東西叫MT4一個是它完全免費,你可以實現任何程序化(量化)交易,前提是你要有這個本事才可以,第二個是因為我對於MT4非常瞭解,他裡面的一個實現機制和技術成熟度非常成熟,比上面所提到的都要成熟,比如下單返回機制,MT4下單我們要開一張歐美的多單,下單之後他會立刻返回給你開單成功還是沒成功的結果,因為下單有可能不會成功,任何市場都是有供需的市場,比如我要買1000手滬銅,但是別人量沒有就可能會不成功,還有就是網絡服務器傳輸原因造成的丟包或者是網絡延遲都會不成功,MT4下完單就會告訴你成功與沒成功,如果成功,下的訂單號碼就會返回給你,但是像國內的期貨軟件就有這樣一個缺陷,他開完單隻告訴你我把這個單子提交到期貨交易所了,但交易所有沒有幫你執行,他的反饋不能及時反饋給你,所以這就是MT4一個非常厲害的地方,MT4執行速度非常厲害,他還有歷史回測等等一些功能完全免費,MT5是比MT4的功能更強,屬於MT4的升級版,但是目前MT5不可能取代MT4,MT4、MT5都是俄羅斯邁達克公司開發的,他是一個戰略失誤,本來他是四年換一次,以前是MT3,MT3經過了4年換成了MT4,又經過了4年換成了MT5,但是開發出來MT5之後種種限制,第一個不能讓你鎖單,第二個不能讓你隔夜等種種限制導致MT5發展之後功能沒有比MT4多多少,但是他的一個擴展性是非常強的。

JForex是瑞士的杜卡斯(杜高斯貝)銀行專有的交易軟件,用Java開發的,JForex功能非常強大,JForex功能比MT4還要強大,可能有些人不會相信,那是因為你沒有真正瞭解JForex,JForex他是一個真正開放式的語言,他可以調用數據庫,可以獲取新聞,甚至還可以實現讓你的程序直接放在服務器上跑,不開電腦就能運行你的程序,現在MT4雖然也在做這方面,但是他採取的做法是雲分佈,就是租用別人雲上的電腦幫你掛一些程序。

tradestation是一個老牌的軟件,但是他的收費也非常貴,每年都要上萬塊錢的費用,而且裡面的運行機制功能還沒有MT4強大。

盈透證券非常厲害,號稱一個賬戶炒遍全球,直接全球24個國家100多家交易所,盈透證券是美國的上市企業;他可以做股票、期貨、期權、外匯、黃金等貴金屬、能源;而且他是通過各個交易所的API,如做香港的期貨、股票實現盈透證券的程序化交易就要獲取香港交易所的API,通過各個交易所的API再次封裝成自己的TWS API,這就是盈透證券厲害的地方。

其實國內懂程序化交易編程開發的人才太少了,就是因為國內沒有任何一所大學的金融系或者計算機繫有傳授這些技術,所以社會上才會出現很多金融培訓機構,但是學習的門檻太高了,通常就是請一些海歸專家教授給你講講理論,吹吹國外先進的技術,不會真正教你寫代碼編程寫出策略模型來的,把一些好學的窮學生都阻擋在門外了。

我的想法是把上述所講到的什麼MT4/MT5、文華財經、TB交易開拓者,以及神經網絡深度學習都通過書的形式寫出來,因為國內程序化這塊落後的實在太多了,和教育機制也有關係,因為沒有人願意講這個東西,基本上很多人掌握了這些知識後都會整天忙著自己研究,就想研究出來一套穩定盈利的程序,比如年華500%的,研究出來之後就什麼都不用幹了,靠這個程序賺錢,不會給大家分享出來,更沒有分享知識的這一想法。像真正教的收費又很貴,少則三五萬,多則數十萬。筆者本人這段時間因為在休養,同時也在思考做自我調整,而且筆者本人也是技術出身,更是職業交易員出身,所以才決定寫幾本關於量化交易,智能交易方面的書籍供大家學習,希望可以幫助更多渴望學習瞭解股票、期貨、黃金外匯程序化智能化交易的朋友提供一個最佳的學習實踐方式。本人秉承著敬天愛人的哲學思想,人人為我,我為人人,幫助別人就等於幫助自己。

相關推薦

推薦中...