算法交易系統的主要組成部分是研究工具、性能、易於開發、彈性和測試、關注點分離、熟悉度、維護、源代碼可用性、許可成本和庫的成熟度。 在決定編寫自動交易系統的“最佳”工具之前,有必要定義要求:

  1. 交易頻率和可能的交易量是多少?
  2. 系統是否需要 風險管理 或投資組合構建模塊?
  3. 系統是否需要高性能回測器?

需要更多定制和復雜系統的交易者可能需要考慮使用 C#、Matlab 或 Python,但我認為對於其他 95% 的日內交易者來說,算法交易軟件就足夠了。

1 - 用 Python、Matlab、C# 計算

在這種情況下,編程技能是創建自動化算法的重要因素 交易策略. 熟悉 Python 或 R 等編程語言,將使您能夠自己創建端到端數據存儲、回測引擎和執行系統。 它允許您探索更高頻率的策略,因為您將完全控制您的“技術堆棧”。 雖然這意味著您可以測試您的軟件並消除錯誤,但這也意味著您將更多的時間花在基礎設施編碼上,而在實施策略上花費的時間更少,至少在您的算法交易生涯的早期是這樣。

基本工作流程如下:

  • 算法交易策略將市場數據(歷史或實時)輸入計算機(回測或自動執行)程序。
  • 然後,程序通過 API 向經紀人提交訂單,並從經紀人接收訂單狀態通知。

MATLAB 和 Python 一直是我最喜歡的回測平台。 它具有用於開發和調試程序的非常全面且用戶友好的界面,並且具有廣泛的工具箱,幾乎涵蓋了您在交易策略開發中可能會遇到的所有神秘數學或計算技術。

將歷史數據從雅虎財經導入 Python
圖:雅虎財經歷史數據導入Python
算法交易的過程
圖:算法交易的過程

2 - 算法交易軟件。 沒有編碼技能

第二種方法是算法工具,例如 Multicharts、StrategyQuant 或 R Trader Strategy Builder(免費且易於使用,基於雲)等等。

算法交易僅由專業人士實施的時代已經結束。 當幾乎所有系統和策略都可以使用 StrategyQuant、Multicharts 或 R Trader Strategy Builder 進行編碼時,無需花費數小時學習 C#。 根據我們的經驗,一些交易者/程序員往往打著技術優勢的幌子,想要走長路到達目標,相信我們,大多數高級編碼對於普通算法交易策略是不需要的。 使用 MetaTrader 創建您的 API 或自定義一切可能會非常浪費,尤其是當您陷入技術細節而不是創造價值時。

所有平台都有其優點和缺點,對我們來說,R Trader Strategy Builder 是一個基於內部專有的易於使用的模塊,它使零售交易者能夠設計、回測和部署算法交易策略,而無需任何編程語言知識。

R Trader 交易平台 有一種更簡單的方法可以讓您退出傳統的點擊式交易。 我們簡單易用的界面專為有經驗的交易者和新手設計,讓您可以在幾分鐘內自動執行交易策略。 無需編碼,無需大驚小怪——您很快就會啟動並運行。

回測。 R Trader 策略生成器中的策略嚮導。
圖:回測。 R Trader 策略生成器中的策略嚮導。

交易系統的測試和評估

研究涉及對歷史數據的戰略績效評估。 根據先前的市場數據評估交易策略的過程稱為回測。

算法交易與其他類型的投資類別不同,因為我們可以更可靠地根據過去的表現提供對未來表現的預期。 簡單來說,回測是通過將您的特定策略算法暴露於歷史價格數據流中來進行的,這會導致一組交易信號。 每筆交易都會有相關的損益。 在整個策略回測過程中這種盈虧的累積將導致總盈虧。

回測算法策略的關鍵原因是什麼?

過濾

我們在初始研究階段的目標是過濾掉任何不符合某些標準的策略。 回測為我們提供了另一種過濾機制,因為我們可以消除不滿足我們性能需求的策略。

造型

回測使我們能夠(安全地!)測試某些市場條件下的新模型。

樣本內和样本外

在歷史數據上測試一個想法時,最好保留一段歷史數據用於測試目的。 用於測試和優化想法的初始歷史數據稱為樣本內數據。 已保留的數據集稱為樣本外數據。 此設置是評估過程的重要組成部分,因為它提供了一種方法來測試尚未作為優化模型組件的數據的想法。 因此,這個想法不會受到樣本外數據的任何影響,交易者將能夠確定係統在新數據上的表現如何,即在現實交易中。

算法交易策略的優化

儘管策略優化充滿偏見,但回溯測試允許我們通過修改與該策略相關的參數值並重新計算其性能來提高策略的性能。 過擬合(曲線擬合)在與數據挖掘相關的所有領域都是一個嚴重的問題,您必須小心使用正確的驗證和測試集。 因此,可以實施多種方法,例如使用不同設置重新測試、蒙特卡羅模擬、Walk-Forward-Matrix、Walk-Forward-Optimization、多個樣本外周期。

前向性能測試

模擬交易或紙面交易為交易者提供另一組樣本外數據,用於評估系統。 前向性能測試是對實際交易的模擬,涉及在實時市場中遵循系統邏輯。 前向性能測試的一個重要方面是準確地遵循系統的邏輯; 否則,即使不是不可能,也很難準確評估過程的這一步。 許多經紀商以及 RoboMarkets 都提供模擬交易賬戶,可以在其中進行交易併計算相應的損益。 使用模擬交易賬戶可以創建一個半真實的環境,在此環境中練習交易並進一步評估系統。

圖:回測。 Python 中的圖表。
圖:回測。 Python 中的圖表。
回測。 R Trader Strategy Builder中的歷史交易。
圖:回測。 R Trader Strategy Builder中的歷史交易。

最後但並非最不重要的一點是,我想討論在這個領域有幫助的工具。

工具

研究和自動交易軟件

Excel, R Trader 策略生成器 (https://rtrader.umstel.com - 免費軟件)、StrategyQuant(許可費)、MultiCharts(許可費)、TradeStation(許可費)、Wealth-lab(許可費)。

推薦碼

MATLAB、Python、R、C#

數據

  1. 社交情緒數據(來自 Twitter 和其他社交媒體,請參閱 ISentium、TickerTags)
  2. 眾包數據(見估計)
  3. 行為數據(見卡博特研究)
  4. 衛星和航拍圖像(見軌道洞察)
  5. 消費者行為數據(見品牌忠誠度)
  6. 非傳統在線資源(見 Knowsis)
  7. OTAS(技術數據)

其他提供者

TIM Group、Discern、Essentia、Kensho、RavenPack、SocialMediaAnalytics、Ayasdi、TheySay Analytics、Quid、Rage Frameworks、Dataminr。

書籍(英文)

  1. 量化交易:如何建立自己的算法交易業務 - Ernest Chan
  2. 算法交易:制勝策略及其原理 - Ernest Chan
  3. 機器交易:部署計算機算法來征服市場 - Ernest Chan
  4. 算法交易和 DMA:直接訪問交易策略簡介 - Barry Johnson
  5. 交易和交易所:從業者的市場微觀結構 - 拉里哈里斯

1.arXiv http://arxiv.org/archive/q-fin
2. SSRN https://www.ssrn.com/en/
3. 投資策略雜誌 https://www.risk.net/journal-of-investment-strategies
4. 計算金融學報 https://www.risk.net/journal-of-computational-finance
5.數理金融 https://onlinelibrary.wiley.com/journal/14679965

總結

正如我們所見,創建算法交易策略有不同的方法。 您可以選擇適合您的知識水平和機會的任何內容。 此外,回測和進一步開發,之後只有我們才能切換到實踐。

如果您有任何問題,我很樂意在下面的評論中回答。


材料是由

R 博客的主編。