最近不少朋友問我是如何用電腦做金融交易的。這其實很復(fù)雜,并不是幾句話能說明白的。根據(jù)聽眾的層次,這個回答可以是從最簡單的比較敷衍的:“電腦和人腦差不多,用電腦模擬人腦就可以了?!薄奖容^復(fù)雜的:“我們設(shè)計了神經(jīng)網(wǎng)絡(luò),用了強化學(xué)習(xí)的算法來訓(xùn)練金融市場數(shù)據(jù)?!薄俚截?fù)責(zé)任的:“我們用數(shù)學(xué)模型解決金融數(shù)據(jù)里的fat-tail distribution的問題,用卷積神經(jīng)網(wǎng)絡(luò)來做交易模式識別和判斷?!?/p> 在不講數(shù)學(xué)、概率、統(tǒng)計、數(shù)據(jù)模型的情況下,簡單講講金融算法交易吧。這里不會講太多策略模型,而是只想說說機器交易下單里的常識。 01 金融算法交易的歷史1980年左右,紐約證券交易所就開始使用程序化交易。當(dāng)S&P 500指數(shù)的期貨價格和指數(shù)價格相差甚遠時,套利交易員就會采用預(yù)先設(shè)定好的指令進行自動交易。 隨著市場走向完全電子化,人在交易市場上逐漸變得多余,算法交易員(algo trader)就誕生了。人并不會直接交易,而是寫程序,讓電腦去交易。交易軟件有速度和延遲優(yōu)勢,可以對股市變化做出更快的反應(yīng)。 UBS的交易空間 到2009年,算法交易公司的交易量估計占美國股票交易量的75%。到了2020年,保守估計,美國95%以上的交易訂單是算法提交的。即便是金融小白,提交的買賣訂單也多半是由券商處理之后用了算法下單的。 02 什么是算法交易?在以前,投資研究是根據(jù)每天的新聞加上公司的財務(wù)分析來做的。而現(xiàn)在市場的波動性比以往任何時候都大,因此風(fēng)險也隨之增加。 很多投資銀行將風(fēng)險評估從日間提高到了日內(nèi),利率、政府政策、季度業(yè)績、地緣政治事件、甚至網(wǎng)絡(luò)媒體等諸多因素都會在幾秒鐘之內(nèi)對市場產(chǎn)生巨大影響。 計算機和通信技術(shù)的應(yīng)用刺激了算法交易的興起。算法交易是指利用計算機程序輸入交易指令,由計算機程序決定交易訂單的幾乎每一個環(huán)節(jié),包括時間、價格、數(shù)量等。 投行的算法交易由非常復(fù)雜的機制構(gòu)成,利用復(fù)雜的數(shù)學(xué)算法來快速推導(dǎo)出衍生品、股票、外匯和商品的買入和賣出指令,從有價值的數(shù)據(jù)中推導(dǎo)出投資邏輯。 算法交易系統(tǒng)的核心是評估潛在交易的風(fēng)險回報率,然后觸發(fā)買入或賣出操作。算法交易的主角是所謂quant,就是量化交易員,他們開發(fā)算法來對投資組合中資產(chǎn)價值的變化來做評估。 一個投資組合的風(fēng)險回報評估所涉及的計算量通常非常大,這些算法交易利用計算機程序來實現(xiàn)自動化交易,不需要人工干預(yù)。 算法交易已經(jīng)被機構(gòu)投資者和個人投資者所采用,并在實踐中獲利,區(qū)別是各個團隊對市場的理解不一樣,用的模型不一樣,算法也會有區(qū)別。但本質(zhì)都是建立在技術(shù)分析規(guī)則、統(tǒng)計方法和機器學(xué)習(xí)技術(shù)基礎(chǔ)上研究最優(yōu)的交易策略。 盡管利用大數(shù)據(jù)進行算法交易具有一定的挑戰(zhàn)性,但把埋藏在數(shù)據(jù)中的價值挖掘出來并加以利用,就會有巨大的潛力搶占先機,獲得巨大的利潤。 03 大數(shù)據(jù)的應(yīng)用大數(shù)據(jù)可以分為非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)是指沒有組織化的信息,沒有預(yù)定義的數(shù)據(jù)模型。這些包括從社交媒體上收集的數(shù)據(jù),幫助機構(gòu)收集客戶需求信息。 結(jié)構(gòu)化數(shù)據(jù)由已經(jīng)在關(guān)系數(shù)據(jù)庫和電子表格中組織和管理的信息組成。因此,必須有針對性的對各種形式的數(shù)據(jù)進行積極的管理,以便提供更好的商業(yè)決策信息。 大數(shù)據(jù)正在重新定義各行業(yè)的競爭格局。沒有基于數(shù)據(jù)的戰(zhàn)略分析的企業(yè)將面臨失去市場競爭優(yōu)勢的風(fēng)險。金融服務(wù)行業(yè),已經(jīng)廣泛采用了大數(shù)據(jù)分析技術(shù)來提供更好的投資決策,并獲得穩(wěn)定的回報。 面對日益激烈的競爭、監(jiān)管限制和客戶需求,各類金融機構(gòu)也正在尋求新的方法來利用技術(shù)提高效率。根據(jù)行業(yè)的不同,企業(yè)可以利用大數(shù)據(jù)的某些方面來獲得競爭優(yōu)勢。 算法交易與大數(shù)據(jù)結(jié)合就是要利用海量的歷史數(shù)據(jù)與復(fù)雜的數(shù)學(xué)模型來實現(xiàn)投資組合收益的最大化。大數(shù)據(jù)的持續(xù)采用將不可避免地改變金融服務(wù)的格局。然而,除了其明顯的好處之外,大數(shù)據(jù)獲取海量數(shù)據(jù)的能力仍然面臨著巨大的挑戰(zhàn)。 大數(shù)據(jù)在算法交易中的應(yīng)用: 1. 技術(shù)分析:技術(shù)分析是以圖表為主要工具,研究價格和價格變化。 2. 實時分析:自動化的過程使得計算機能夠以人類交易員無法企及的速度和頻率執(zhí)行金融交易。 3. 機器學(xué)習(xí):有了機器學(xué)習(xí),給算法不斷地輸入數(shù)據(jù),從過去的錯誤中學(xué)習(xí),根據(jù)過去的結(jié)果建立一套邏輯,推導(dǎo)出新的結(jié)論,并根據(jù)成千上萬個獨特的因子來做金融分析。 04 傳統(tǒng)的交易架構(gòu)在交易中,從事件發(fā)生到指令生成之間的延遲時間達到了毫秒和微秒的單位,這大大超出了人類能夠控制的范圍,傳統(tǒng)的交易體系已經(jīng)無法滿足DMA(Direct Market Access)自動化交易的需求。 由于延遲時間與人的反應(yīng)時間相差甚遠,交易指令也需要更加強大,每秒要能夠處理更多的指令,同時,風(fēng)險管理也需要以一種實時的、完全自動化的方式來處理指令。 舉個例子,即使一個指令的反應(yīng)時間是1毫秒(與我們今天看到的延遲相比,這已經(jīng)是很長了),系統(tǒng)仍然必須在一秒鐘內(nèi)做出1000個交易決策。因此,這1000個交易決策中的每一個都需要在同一秒內(nèi)經(jīng)過風(fēng)險管理,才能到達交易所。 另外,由于架構(gòu)涉及到自動化邏輯,100個交易員可以被同一個自動化交易系統(tǒng)取代,這就增加了問題的難度。 每一個邏輯單元都會產(chǎn)生1000個指令,而100個這樣的單元每秒就有10萬個指令。這就意味著決策和指令發(fā)送部分需要比市場數(shù)據(jù)接收和處理的速度快得多才能匹配數(shù)據(jù)的速率。 05 自動交易架構(gòu)一個典型的算法交易系統(tǒng)的數(shù)據(jù)流程 首先是交易系統(tǒng)從交易所收集價格數(shù)據(jù)(如果要進行跨市套利,系統(tǒng)需要從多個交易所收集價格數(shù)據(jù)),從路透社、彭博社等新聞機構(gòu)收集新聞數(shù)據(jù),有些算法交易系統(tǒng)還可能會從網(wǎng)絡(luò)上收集數(shù)據(jù)進行深度分析,如情感分析(sentiment analysis)等。 其次,在收集數(shù)據(jù)的同時,系統(tǒng)會對數(shù)據(jù)進行一些復(fù)雜的分析,以尋找預(yù)期盈利機會。有時,交易系統(tǒng)會進行模擬操作(backtest),看看可能會產(chǎn)生什么結(jié)果。 最后,系統(tǒng)決定買入/賣出/持有的操作、下單的數(shù)量和交易時間,然后產(chǎn)生一些交易信號。這些信號可以使用預(yù)定義的數(shù)據(jù)格式直接傳輸?shù)浇灰姿?,交易指令通過交易所公開的API立即執(zhí)行,無需人工干預(yù)。 有些投資者可能會想看一下算法交易系統(tǒng)產(chǎn)生了什么信號,這時可以手動啟動交易操作,也可以直接忽略這些信號。 人為干預(yù)是一把雙刃劍,一方面它可以根據(jù)人的經(jīng)驗篩除掉一些不賺錢的信號,另一方面人是很容易犯錯的,人不可能一成不變的進行交易,人會因為疲憊、過度悲觀或者過度樂觀而犯錯,一個人的心情在很大程度上會影響交易。 如果算法交易設(shè)計得當(dāng),經(jīng)過充分的驗證,從數(shù)據(jù)分析,到?jīng)Q定交易操作,再到發(fā)起交易指令的執(zhí)行,都是由系統(tǒng)來完成,這樣的交易方式會更好。 我們團隊幾年前開始構(gòu)建一個我們叫做DMAT的系統(tǒng),DMAT就是D數(shù)據(jù)M模型和策略A分析T交易。每一個環(huán)節(jié)都需要大量工作,不能出錯,這樣的系統(tǒng)是算法交易成功的基礎(chǔ),沒有這個,有什么好的算法和策略都沒用。 一般的算法交易流程圖 一般的算法交易流程: ① 市場數(shù)據(jù)(數(shù)據(jù)輸入D) ② 模型和分析 (策略MA) ③ 指令路由(執(zhí)行和交易T) 06 如何利用大數(shù)據(jù)進行算法交易專門的算法交易系統(tǒng)中通常有幾個標(biāo)準(zhǔn)模塊,包括交易策略、指令執(zhí)行、現(xiàn)金管理和風(fēng)險管理。交易策略是自動交易系統(tǒng)的核心,通過復(fù)雜的算法來分析數(shù)據(jù)(價格數(shù)據(jù)、公司財務(wù)數(shù)據(jù)和其它非標(biāo)準(zhǔn)數(shù)據(jù)如新聞、衛(wèi)星圖像、微博等新媒體),捕捉市場中的異常情況,并利用這些信息發(fā)現(xiàn)盈利模式,或發(fā)現(xiàn)競爭對手的策略。 交易策略中使用了各種技術(shù)從數(shù)據(jù)中提取可操作的信息,包括規(guī)則、模糊規(guī)則、統(tǒng)計方法、時間序列分析、機器學(xué)習(xí)以及文本挖掘等。 算法交易是當(dāng)前金融界的趨勢,機器學(xué)習(xí)幫助計算機快速分析。大數(shù)據(jù)分析提供的實時反饋,為個人和交易公司提供了改善投資機會的潛力。 大數(shù)據(jù)在算法交易中的應(yīng)用可以歸納為以下幾點:
1、評估結(jié)果和收益 獲取大數(shù)據(jù)有助于降低線上交易可能的風(fēng)險,并做出精確的預(yù)測。金融分析可以將影響趨勢、定價和價格變化的原理聯(lián)系起來。 2、提供準(zhǔn)確的預(yù)測 大數(shù)據(jù)與機器學(xué)習(xí)結(jié)合,有助于根據(jù)邏輯做出決策,而不是估計和猜測。另外,還可以對數(shù)據(jù)進行審查,開發(fā)應(yīng)用程序定期更新信息,以便作出更準(zhǔn)確的預(yù)測。 3、策略回測 算法交易的特點之一就是能夠進行回溯測試。交易者很難知道他們的交易系統(tǒng)中哪些部分有效,哪些部分是無效的,因為他們無法根據(jù)過去的數(shù)據(jù)來運行自己的系統(tǒng)。有了算法交易,就可以根據(jù)過去的數(shù)據(jù)來運行算法,看看它在過去是否有效。這個功能擁有巨大的優(yōu)勢,因為它允許用戶在運行交易系統(tǒng)之前排查交易系統(tǒng)的缺陷。 07 算法交易的主要特點1、市場和公司數(shù)據(jù)的可用性 所有的交易算法都是根據(jù)實時市場數(shù)據(jù)和報價來設(shè)計的。一些程序還可以根據(jù)公司的基本面數(shù)據(jù),如EPS和市盈率等進行定制。任何算法交易軟件都應(yīng)該有實時的市場數(shù)據(jù)以及公司數(shù)據(jù)。它應(yīng)該作為系統(tǒng)的內(nèi)置功能,或者能可以方便地整合其他數(shù)據(jù)來源。 2、鏈接不同市場 每個交易所可能會以不同的格式提供數(shù)據(jù)輸入,如TCP/IP、multicast或FIX,因此算法軟件應(yīng)該能夠接收不同格式的數(shù)據(jù)輸入。另一種選擇是使用第三方數(shù)據(jù)供應(yīng)商,如萬得,彭博和路透社,它們會將來自不同交易所的市場數(shù)據(jù)進行匯總,并以統(tǒng)一的格式提供給終端客戶。算法交易軟件應(yīng)該能夠根據(jù)需要處理這些聚合的數(shù)據(jù)源。 3、延遲 這是算法交易中最重要的因素。延遲是指數(shù)據(jù)點從一個應(yīng)用程序到另一個應(yīng)用程序的移動過程中引入的時間延遲??紤]下面的事件序列:一個報價從交易所到軟件供應(yīng)商的數(shù)據(jù)中心(DC)需要0.2秒,從數(shù)據(jù)中心到達你的交易屏幕需要0.3秒,交易軟件處理接收到的這個報價需要0.1秒,分析和生成交易指令需要0.3秒,交易指令到達經(jīng)紀(jì)人需要0.2秒,經(jīng)紀(jì)人將指令傳送到交易所需要0.3秒。 總時間=0.2+0.3+0.1+0.3+0.2+0.3=1.4秒。 在動態(tài)交易世界中,在這1.4秒的時間內(nèi),原始報價會出現(xiàn)多次變化,這個延遲可能會決定算法交易的成敗。需要將這一延遲保持在盡可能低的水平,以確保能在沒有時間差的情況下獲得最新、最準(zhǔn)確的信息。 目前延遲已經(jīng)降到了微秒級別。一些常見的措施包括:省去中間的供應(yīng)商,直接鏈接到交易所,更快地獲得數(shù)據(jù);通過改進交易算法,使分析和決策所需的時間小于0.1+0.3=0.4秒;或者省去中間的經(jīng)紀(jì)人,直接將交易發(fā)送給交易所,節(jié)省0.2秒。 4、可配置性和定制性 大多數(shù)算法交易軟件都提供了標(biāo)準(zhǔn)的內(nèi)置交易算法,例如基于50日移動平均線與200日平均線的交叉算法。交易者可能喜歡嘗試將20日平均線換成100日平均線,但除非軟件提供了這樣的參數(shù)定制,否則交易者可能會受制于內(nèi)置的固定功能。不管是買入還是建倉,交易軟件應(yīng)該具有高度的定制化和可配置性。 5、編寫自定義程序的功能 MATLAB、Python、C++、JAVA、Perl都是常用的編程語言。大多數(shù)第三方廠商出售的交易軟件都提供了編寫自定義程序的功能。這使得交易者可以嘗試自己開發(fā) 并實現(xiàn)自己的交易想法。 6、對歷史數(shù)據(jù)的回溯測試功能 回溯測試模擬包括測試歷史數(shù)據(jù)的交易策略。它基于過去的數(shù)據(jù)評估策略的實用性和盈利能力,證明它的成功(或失敗或任何需要的變更)。這個功能要求在歷史數(shù)據(jù)的可用性基礎(chǔ)上進行回溯測試。 7、集成交易接口 算法交易軟件根據(jù)所需標(biāo)準(zhǔn)自動進行交易。該軟件應(yīng)具有與經(jīng)紀(jì)人網(wǎng)絡(luò)的必要連接以進行交易,或直接連接到交易所發(fā)送交易指令。 8、即插即用的集成性 交易者可以同時使用彭博社終端進行價格分析、經(jīng)紀(jì)人終端進行交易,以及使用程序進行趨勢分析。根據(jù)個人需求,算法交易軟件應(yīng)該具有即插即用的集成性,在這些常用的交易工具中還要有可用的API。這樣既能確保可擴展性,也能確保集成性。 08 算法交易的策略1、執(zhí)行 如果一個巨大的主權(quán)財富基金如果想在蘋果公司的股票上下了一億的訂單,那么按照所選擇的價格,會有足夠的賣家嗎?而在訂單成交之前,股價又會有什么變化呢? 這時候就可以用算法來拆分訂單,并在交易日內(nèi)進行策略性下單。在這種情況下,交易者并沒有從這種策略中獲利,但他更有可能獲得更好的進場價格。 2、套利 在一個市場上以較低的價格買入一只雙重上市的股票,同時在另一個市場上以較高的價格賣出,就可以獲得無風(fēng)險利潤。如果一個香奈兒包包在法國的價格是5000美元,在中國的價格是6000美元,你會怎么做?很明顯的答案是:在法國買入,在中國賣出。通過在兩個國家之間賺取差價實現(xiàn)無成本無風(fēng)險的獲利。同樣的,如果發(fā)現(xiàn)期貨市場和現(xiàn)貨市場的價差,交易員也可以利用這一點從中獲利。 3、趨勢跟蹤 大量的投資大師聲稱自己擁有基于技術(shù)分析的最佳策略,依靠移動平均線、動量、動量、隨機指標(biāo)等指標(biāo)來進行交易。一些自動交易系統(tǒng)利用這些指標(biāo)來觸發(fā)買入和賣出指令,交易基于理想趨勢的出現(xiàn)而啟動,通過算法來實現(xiàn)交易,簡單直接,不需要涉及到預(yù)測分析的復(fù)雜性。使用50日和200日移動平均線是一種流行的趨勢跟蹤策略。 4、指數(shù)基金再平衡策略 指數(shù)基金有規(guī)定的再平衡期(rebalance),使其持股量與各自的基準(zhǔn)指數(shù)持股量相當(dāng)。這為算法交易者創(chuàng)造了有利可圖的機會,他們利用指數(shù)基金重新平衡前的預(yù)期交易,根據(jù)指數(shù)基金的股票數(shù)量提供20至80個基點的利潤。這類交易通過算法交易系統(tǒng)啟動,可以及時執(zhí)行并獲得最佳價格。 5、基于數(shù)學(xué)模型的交易策略 經(jīng)過驗證的數(shù)學(xué)模型,如Delta中性交易策略,允許在期權(quán)和相關(guān)證券的組合上進行交易。(Delta中性是一種由多個頭寸組成的正負(fù)Delta相抵消的投資組合策略,也就是將資產(chǎn)(通常是有價證券)的價格變化與其衍生品的價格變化進行比較,從而使相關(guān)資產(chǎn)的總Delta為零。) 6、交易區(qū)間(均值回歸) 均值回歸策略是基于這樣一個概念,即資產(chǎn)的高價和低價是一種暫時性的現(xiàn)象,會定期回歸到均值(平均值)。識別和定義一個價格區(qū)間,并在此基礎(chǔ)上實現(xiàn)一種算法,當(dāng)資產(chǎn)價格突破或超出其定義的區(qū)間時,可以自動進行交易。 7、成交量加權(quán)平均價格(VWAP) VWAP策略即是一種拆分大額委托單,在約定時間段內(nèi)分批執(zhí)行,以期使得最終買入或賣出成交均價盡量接近該段時間內(nèi)整個市場成交均價的算法交易策略。 8、時間加權(quán)平均價格 (TWAP) 時間加權(quán)平均價格策略是將一個大額委托單拆分,并利用開始和結(jié)束時間之間的平均時間段,將動態(tài)確定的小塊訂單釋放給市場。其目的是在開始和結(jié)束時間之間的平均價格附近執(zhí)行訂單,從而最大限度地減少對市場的影響。 9、成交量百分比 (POV) 在交易訂單全部完成之前,該算法根據(jù)定義的參與率和市場交易量繼續(xù)發(fā)送部分訂單。相關(guān)的 '階梯策略 '按照用戶定義的市場交易量的百分比發(fā)送訂單,當(dāng)股價達到用戶定義的水平時,增加或減少該參與率。 09 自動化交易對市場的影響1、波動性 在運行超快的電腦硬件和交易軟件的環(huán)境里進行散戶交易,就像跳進了鯊魚泛濫的海里。隨著市場波動的加劇,基本面投資者入市的難度會不斷加大。如果要執(zhí)行一個買入指令,那么你可以想象一下:在提交訂單這幾秒鐘的時間里,你的單已經(jīng)被多個高頻交易者推高,在你還沒明白怎么回事的時候,你的交易對手已經(jīng)獲利退出了。 2、閃崩 假設(shè)大家都看到了算法交易策略的好處,并都選擇遵循這樣的策略。如果因為某種原因,市場出現(xiàn)小幅下跌,觸發(fā)賣出指令以立即削減損失,當(dāng)所有交易者都用類似的策略時,價格就會立即暴跌,因為市場上沒有買家。著名的崩盤例子如1987年的股市崩盤,2010年的閃崩等等。不過隨著量化投資策略的增多,這種現(xiàn)象其實在減少,我沒有做過嚴(yán)謹(jǐn)?shù)挠嬎悖窃谑袌隹只疟辣P的時候,機器往往比人理性,而不會讓本來沒有問題的市場陷入谷底。 3、流動性 人們很容易認(rèn)為隨著計算機自動進行交易,流動性應(yīng)該會增加。然而,當(dāng)市場崩盤時,問題就來了。在重大的崩盤事件中,比如瑞士央行取消錨定匯率時,瑞士法郎根本沒有流動性,導(dǎo)致價格迅速崩盤, 甚至導(dǎo)致了幾家大型券商瞬間爆倉。 |
|