演算法交易(自動交易,黑盒交易或簡單的演算法交易)是使用編程的計算機遵循一組定義的指令(演算法)進行交易以便以一定的速度和頻率產生利潤的過程。人類交易者不可能。定義的規則集基於時間,價格,數量或任何數學模型。除了交易者的盈利機會之外,演算法交易通過排除人類情緒對交易活動的影響,使市場更具流動性並使交易更加系統化。
假設交易者遵循這些簡單的交易標準:
當50日均線超過200日移動均線時,買入50股股票。(移動平均線是過去數據點的平均值,可以平滑日常價格波動,從而確定趨勢。)
當其50天移動平均線低於200天移動平均線時,賣出該股票的股票。
使用這兩個簡單的指令,可以很容易地編寫一個計算機程序,它將自動監控股票價格(和移動平均線指標),並在滿足定義的條件時下單買入和賣出訂單。交易者不再需要密切關注實時價格和圖表,或手動輸入訂單。演算法交易系統通過正確識別交易機會自動為他做。
演算法交易的基礎知識
演算法交易的好處
Algo-trading提供以下好處:
- 交易以最優惠的價格執行
- 即時和準確的交易訂單放置(從而在所需級別執行的可能性很高)
- 交易定時正確,即時,以避免重大的價格變化
- 降低交易成本(參見下面的實施缺口示例)
- 在多種市場條件下同時自動檢查
- 放置交易時手動錯誤的風險降低
- 可以根據可用的歷史和實時數據進行回溯測試, 看看它是否是一種可行的交易策略
- 基於情緒和心理因素,人類交易者錯誤的可能性降低
今天演算法交易的最大部分是高頻交易(HFT),它試圖利用基於預編程指令在多個市場和多個決策參數上以非常快的速度放置大量訂單。
Algo-trading用於多種形式的交易和投資活動,包括:
- 中長期投資者或買方公司 – 養老基金,共同基金,保險公司 – 當他們不想通過離散的大批量投資影響股票價格時,用它來大量購買股票。
- 短期交易者和賣方參與者 – 做市商(如經紀公司), 投機者和套利者 – 受益於自動交易執行; 此外,演算法交易有助於為市場中的賣家創造足夠的流動性。
- 系統性交易者 – 趨勢追隨者,對沖基金或成對交易者(市場中性交易策略,與多頭高度相關工具(如兩隻股票,交易所交易基金(ETF)或貨幣)中的空頭頭寸相匹配) – 發現編製交易規則並讓程序自動交易更有效率。
與基於人類交易者的直覺或本能的方法相比,演算法交易為主動交易提供了更系統的方法。
演算法交易策略
任何演算法交易策略都需要一個確定的機會,在提高收益或降低成本方面是有利可圖的。以下是演算法交易中常用的交易策略:
趨勢跟蹤策略
最常見的演算法交易策略遵循移動平均線,渠道突破,價格水平變動和相關技術指標的趨勢。這些是通過演算法交易實施的最簡單,最簡單的策略,因為這些策略不涉及進行任何預測或價格預測。交易是基於期望趨勢的發生而啟動的,這些趨勢通過演算法容易且直接地實現,而不會進入預測分析的複雜性。上面提到的使用50天和200天移動平均線的例子是一種流行的趨勢跟蹤策略。
套利機會
在一個市場以較低價格購買雙重上市股票,同時在另一個市場以較高價格出售,提供價格差異作為無風險利潤或套利。由於價格差異確實存在,因此可以在股票與期貨工具中複製相同的操作。實施一種演算法來識別這種價格差異並下訂單可以有效地獲得有利可圖的機會。
指數基金重新平衡
指數基金已經確定了重新平衡的時期,以使其持有的股票與各自的基準指數相提並論。這為演算法交易者創造了有利可圖的機會,他們利用預期的交易,根據指數基金的股票數量提供20至80個基點的利潤,就在指數基金重新平衡之前。此類交易通過演算法交易系統啟動,以便及時執行和最優價格。
基於數學模型的策略
經過驗證的數學模型,如delta中性交易策略,允許交易選項組合及其基礎證券。(Delta中性是一種投資組合策略,由多個頭寸組成,具有抵消正負增量 – 比較資產價格變化(通常是可出售的證券)與其衍生品價格相應變化的比率 – 以便整體有問題的資產的delta總計為零。)
交易區間(均值回歸)
均值回歸策略基於這樣一種觀點,即資產的高價和低價是一種臨時現象,會定期回歸到它們的平均值(平均值)。識別和定義價格範圍並實施基於此的演算法,允許在資產價格進出定義範圍時自動進行交易。
成交量加權平均價格(VWAP)
成交量加權平均價格策略打破了大量訂單,並使用特定於庫存的歷史交易量配置文件將動態確定的較小的訂單塊發布到市場。目的是執行接近體積加權平均價格(VWAP)的訂單。
時間加權平均價格(TWAP)
時間加權平均價格策略打破了大訂單,並使用開始和結束時間之間的均勻劃分的時間段向市場發布動態確定的較小的訂單塊。目的是在開始和結束時間之間執行接近平均價格的訂單,從而最小化市場影響。
體積百分比(POV)
在交易訂單完全填寫之前,該演算法將根據定義的參與比率並根據市場交易量繼續發送部分訂單。相關的「步驟策略」以用戶定義的市場容量百分比發送訂單,並在股票價格達到用戶定義的水平時增加或減少該參與率。
實施不足
實施短缺策略旨在通過權衡實時市場來最小化訂單的執行成本,從而節省訂單成本並從延遲執行的機會成本中獲益。當股票價格有利變動時,策略將提高目標參與率,當股票價格變動時,策略將減少目標參與率。
超越通常的交易演算法
有一些特殊類別的演算法試圖識別另一方面的「事件」。這些「嗅探演算法」 – 例如由賣方市場製造商使用 – 具有內置智能,可以識別大訂單買方的任何演算法的存在。通過演算法進行的這種檢測將有助於做市商識別大訂單機會並使他們能夠以更高的價格填寫訂單而受益。這有時被認為是高科技的前沿運行。
演算法交易的技術要求
使用計算機程序實現演算法是最後一部分,伴隨著回溯測試(在過去股票市場表現的歷史時期嘗試演算法,看看使用它是否有利可圖)。面臨的挑戰是將已識別的戰略轉變為一個集成的計算機化流程,該流程可以訪問用於下訂單的交易賬戶。需要以下內容:
計算機編程知識,用於編程所需的交易策略,聘請程序員或預製交易軟體
網路連接和訪問交易平台以下訂單
訪問將由演算法監控的市場數據饋送,以便下訂單
在系統建成之前對系統進行回溯測試的能力和基礎設施 – 在真實市場上發布之前
可用的回溯測試歷史數據,具體取決於演算法中實施的規則的複雜程度
演算法交易如何運作的一個例子
荷蘭皇家殼牌(RDS)在阿姆斯特丹證券交易所(AEX)和倫敦證券交易所(倫敦證券交易所)上市。我們首先構建一個演算法來識別套利機會。以下是一些有趣的觀察:
AEX以歐元交易,而倫敦證券交易所以英鎊交易
由於一小時的時差,AEX比倫敦證券交易所開盤提前一小時,隨後兩個交易所在接下來的幾個小時內同時交易,然後在最後一小時內在倫敦證券交易所交易,因為AEX關閉
我們能否探討以兩種不同貨幣在這兩個市場上市的荷蘭皇家殼牌股票套利交易的可能性?
要求:
- 一種可以讀取當前市場價格的計算機程序
- 來自倫敦證券交易所和AEX的價格
- GBP-EUR的外匯(外匯)匯率
- 訂單放置功能,可以將訂單路由到正確的交易所
歷史價格反饋的回測功能
計算機程序應執行以下操作:
- 從兩個交易所讀取RDS股票的收貨價格。
- 使用可用的外匯匯率,將一種貨幣的價格轉換為另一種貨幣的價格。
- 如果存在足夠大的價格差異(折扣經紀成本),從而獲得有利可圖的機會,則將買入訂單置於較低價格的交易所並在較高價格的交易所賣出訂單。
- 如果訂單按要求執行,套利利潤將隨之而來。
簡單易行!但是,演算法交易的實踐並不那麼簡單,無法維護和執行。請記住,如果你可以進行演算法生成交易,其他市場參與者也可以。因此,價格以毫微秒甚至幾微秒的速度波動。在上面的例子中,如果你的買入交易被執行會發生什麼,但賣出交易不會因為賣單價格在你的訂單進入市場時發生變化而變化?你最終會坐在一個空位,使你的套利策略毫無價值。
還存在其他風險和挑戰:例如,系統故障風險,網路連接錯誤,交易訂單與執行之間的時間滯後,以及最重要的是,不完美的演算法。演算法越複雜,在投入使用之前就需要進行更嚴格的回溯測試。