劉力軍 梁國鵬 王海濤
量化投資作為一種交易手段在歐美等國家已經被廣泛應用了30多年,其投資業績穩定,到目前為止,程序化的股票交易在美國和歐洲等國家得到了大面積的普及,隨著國際金融市場規模的不斷擴大,獲得了越來越多投資者的認可。相對于全球發達金融市場而言,中國量化交易不算新興事物,但相對小眾。
本文主要通過利用python語言,針對當前被廣泛認可的股票技術指標,如MA均線、MACD、KDJ、BOLL等,提出量化交易系統的模型實現方案,并優化倉位管理的策略。下面將從什么是量化交易,量化交易系統的建立,以及優化倉位管理策略幾個維度來介紹如何建立量化交易系統。
量化交易是指以大量的投資相關數據為樣本,通過以數量化方式建立合適的數學模型與公式,運用計算機技術編寫高效程序,研究分析金融產品未來收益與風險,判斷各種行情走勢發生概率,程序化發出買賣指令以實現投資的交易。量化交易具有以下優勢。
量化交易可以利用計算機對海量數據進行分析,得到常人難以發現的盈利機會,快速找到股票交易的合適時間和合適策略。
根據交易模型的運行結果指導決策,既可以克服人性中的貪婪、恐懼等弱點,也可以克服人們的認知偏差。
量化交易可以通過計算機的精準計算,找到確定性收益的部分,并輔助以大數據及人工智能的算法優化,找出“大概率”的超額收益。
量化交易策略是需要有一個不斷更新、不斷優化的過程才能適應日益復雜的投資市場變化,利用計算機輔助的分析優化過程顯然在效率上勝過人工分析。
量化交易模型是以計算機為輔助工具,以編程開發語言編寫程序,以固定的邏輯來分析、判斷,并幫助提供決策。一個完整的量化交易模型應該包括數據的輸入、交易策略的處理、數據回測分析、收益結果展示,給出交易判斷,最終以自動化交易的方式,或者手動交易的方式完成交易。對于數據的選取本身就對量化交易策略產生重大影響,目前中國股票市場一共約5000只股票,選取哪一只股票,以及用股票的哪一個時間段的數據顯得尤為重要,因此對數據的回測分析,進而提升交易策略的優化是非常重要的環節。
量化交易系統的研發模型如下圖所示。

量化交易系統模型整體流程
BOLL(布林線)指標是股票交易技術分析的常用策略之一,由美國股市分析家約翰.布林根據統計學中的標準差原理設計出來的一種非常簡單實用的技術分析指標。一般來說,價格的運動總是圍繞著某一價值中線(如價格均線、成本線等)在一定的范圍內變動,布林線指標正是在這種條件的基礎上,引入了“價格通道”的概念,通過計算一段時間內價格的“標準差”,再由均線加上或減去某一倍數的標準差,求出價格的“運行區間”。利用該指標可以求出三條線,其中上下兩條線可以分別看成是價格的壓力線和支撐線,而在兩條線之間還有一條價格平均線。一般來說,股價會運行在壓力線和支撐線所形成的通道中。本文首先給出利用BOLL線交易策略的演示結果。
策略規則:股價下碰支撐線時買入;股價上碰壓力線時賣出。
以平安銀行(股票代碼000001)為例,實驗數據以2017年1月至2021年6月進行測試,實驗結果為總收益率為94.82%。
基于傳統的BOLL線策略在股價波動期間可以得到較好的收益率,但是在股價單邊上漲或單邊下跌期間卻無法很好地擴大收益或降低損失。對于經典的量化交易策略一般有一定的適用性,比如在不同的時期可能有不同的量化交易策略表現良好,對于不同的股票也可能有不同的量化交易策略表現出收益差異。交易策略的優化或者交易策略的組合是建立量化交易系統非常重要的環節,也是每一個量化交易系統的特色及生存之本。
例如,參考海龜策略,采用倉位配比策略對以上BOLL線策略進行改進優化。海龜策略將資金分成兩部分,一部分資金按系統一執行,一部分資金按系統二執行。
系統一
(1)若當前價格高于過去20日的最高價,則買入一個單位(例如倉位的1%)。
(2)加倉:若股價在上一次買入的基礎上上漲了一定比例(例如1%),則加倉一個單位。
系統二
(1)若當前價格高于過去55日的最高價,則買入一個單位(例如倉位的1%)。
(2)加倉:若股價在上一次買入的基礎上上漲了一定比例(例如1%),則加倉一個單位。
對于止損部分,當價格比最后一次買入價格下跌一定比例時(例如2%),則賣出全部頭寸止損。
同樣以平安銀行(股票代碼000001)為例,實驗數據以2017年1月至2021年6月進行測試,實驗結果為有倉位優化策略的總收益率為107.18%。
通過量化交易策略的不斷優化、模型的運行、數據化的分析、投資交易的指導,量化投資可以更好地幫助人們進行資金管理,提高收益,控制回撤。當然我們也要認識到,量化交易模型只是對量化投資的一種交易模擬,但是經過不斷優化的交易策略和量化系統,必定能夠指導人們的交易行為。量化投資在當今國內及全球的投資市場中起著越來越重要的作用,尤其是現在大數據和人工智能時代,量化投資系統以其海量計算及戰勝人性等諸多優點,必然在未來投資領域產生巨大的潛力和空間。