梁國鵬 劉力軍
DOI:10.19850/j.cnki.2096-4706.2021.08.025
摘? 要:隨著計算機科學(xué)技術(shù)的發(fā)展,全球主要資本市場憑借信息化的高效優(yōu)勢,得到飛速發(fā)展,電子化交易廣泛普及,計算機科學(xué)技術(shù)逐漸與各個學(xué)科技術(shù)相互融合,人們開始專注于使用計算機程序進行股票的預(yù)測分析,甚至是實現(xiàn)自動化交易。通過對量化交易系統(tǒng)展開研究,對現(xiàn)有交易策略進行分析并根據(jù)其存在的不足進行改進,以此實現(xiàn)量化交易系統(tǒng)的有效運行,進行回測來指導(dǎo)投資者并為其帶來超額收益。
關(guān)鍵詞:Python;量化交易;策略
中圖分類號:TP311.52? ? ? ?文獻標(biāo)識碼:A 文章編號:2096-4706(2021)08-0086-05
Design and Implementation of Quantitative Trading System Based on Python
LIANG Guopeng,LIU Lijun
(Nanjing Audit University Jinshen College,Nanjing? 210023,China)
Abstract:With the development of computer science and technology,the worlds major capital markets have developed rapidly with the high-efficiency advantage of informatization. Electronic transaction is widely popularized. Computer science and technology is gradually integrated with various discipline technologies. People begin to focus on using computer programs for stock prediction and analysis,and even for realizing automatic trading. Through the research of the quantitative trading system,the existing trading strategies are analyzed and improved based on their shortcomings,so as to realize the effective operation of the quantitative trading system and carry out back test to guide investors and bring them excess returns.
Keywords:Python;quantitative trading;strategy
0? 引? 言
中國股票市場發(fā)展至今不到30年,卻幾乎走完西方發(fā)達國家股票市場兩百多年的歷程,這是一個輝煌的成果[1]。在過去的三十年中,西蒙斯的投資公司通過自己開發(fā)計算機程序進行股票分析,使交易幾乎全部實現(xiàn)自動化,充分利用了計算機精準(zhǔn)性和高執(zhí)行率等特性,為它的交易帶來了巨大優(yōu)勢,從而獲得了超額的收益。量化交易自二十世紀(jì)七八十年代起迅速發(fā)展,程序化交易逐步成為市場的主流,而近些年量化交易在國內(nèi)還是一種新興的投資模式,相比于手工交易存在的諸多優(yōu)勢,有著更低的虧損風(fēng)險和更高的盈利概率。量化投資因其結(jié)合了傳統(tǒng)的投資理念和先進的計算機技術(shù),天然具備很多主觀交易難以企及的優(yōu)勢[2],其未來的發(fā)展前景十分廣闊。
1? 量化交易的意義
1.1? 更高的交易效率
對于交易策略的驗證,過去往往是采用人工方式,基于歷史表現(xiàn)與行情數(shù)據(jù)反復(fù)計算,而量化交易僅需要通過系統(tǒng)幾分鐘的回測便可得到驗證結(jié)果,效率大幅度提升。
1.2? 更多的交易機會
對于盈利條件的抉擇,傳統(tǒng)人工需要關(guān)注幾千只股票的價格浮動,費時費力,而量化交易則可通過計算機實時捕獲交易機會,從而更大程度的提升盈利能力。
1.3? 更直觀的交易結(jié)果
對于交易結(jié)果的權(quán)衡,傳統(tǒng)人工無法短時間對大量過往業(yè)績進行準(zhǔn)確分析,而量化交易則可通過計算機基于數(shù)學(xué)和統(tǒng)計學(xué)等原理計算出更直觀的交易結(jié)果,如收益率等。
1.4? 更多的盈利機會
量化交易可以利用計算機技術(shù)對市場中的交易數(shù)據(jù)進行分析,捕獲到人為難以發(fā)現(xiàn)的盈利機會。假設(shè)發(fā)現(xiàn)了一種交易策略,它的盈虧概率差不多,但只要盈利的概率大于虧損的概率,比如說,盈利的概率為51%,相應(yīng)的虧損的概率為49%,雖然相差不大,但如果長時間遵循此策略進行交易,注定能夠獲得一份手工交易難以達到的超額收益。
2? 研究現(xiàn)狀
2.1? 國內(nèi)
現(xiàn)如今國內(nèi)的量化交易技術(shù)還不成熟,從交易所到經(jīng)紀(jì)商,交易系統(tǒng)大都沒有完全支持程序化交易,高頻數(shù)據(jù)庫也不完善,這些因素都導(dǎo)致量化交易很難被大規(guī)模執(zhí)行,即便執(zhí)行,效果也不好[3]。
2.2? 國外
量化投資的技術(shù)從各方面都要遠超于陳舊的投資方式,最主要的是技術(shù)方面的不同,現(xiàn)在國外的交易水平極高,已經(jīng)達到了可以在秒內(nèi)進行投資交易的程度[4]。在美國,量化交易模式已經(jīng)存在了四十年,其技術(shù)儲備量十分充足,所運用的策略模型和研究水平均高于國內(nèi),由于國外的政策、技術(shù)水平等因素的影響,其量化交易水平也較高,與此同時還不斷有計算機科學(xué)、數(shù)學(xué)等學(xué)科的專家從事于量化交易技術(shù)的研究中,量化交易技術(shù)的發(fā)展也在不停地加速。
3? 量化交易的交叉學(xué)科知識
3.1? 金融知識
量化交易需要掌握一定的金融知識才能夠更好地掌控整個交易過程,了解所投資市場的交易規(guī)則以及一些有效技巧方法,比如不同股票在交易時間和漲跌停限制等方面存在的諸多不同,掌握了這些投資市場的基本操作能夠幫助我們對市場有一個更全面的認識,更好地進行量化投資實現(xiàn)自動化交易。
3.2? 技術(shù)指標(biāo)
技術(shù)指標(biāo)是通過考慮市場行為的各個方面,建立一個數(shù)學(xué)模型,給出數(shù)學(xué)上的計算公式,得到一個體現(xiàn)股票市場的某個方面內(nèi)在實質(zhì)的數(shù)字[5],通過這些數(shù)字我們可以了解到市場當(dāng)前的狀態(tài),讓我們能夠更好地做出交易決策。技術(shù)指標(biāo)可以幫助人們輕松掌控加倉或減倉的時間點,形成固定的交易模式,避免情緒化交易產(chǎn)生不必要的虧損。
3.3? 策略模型
策略模型是整個量化交易系統(tǒng)的較為核心的部分,量化交易系統(tǒng)有了策略模型才能夠正常進行程序化交易,并保有良好的盈利趨勢,一個策略模型的優(yōu)劣往往決定了整個系統(tǒng)的盈利能力,在設(shè)計策略模型時要考慮到交易信號和止盈止損等諸多因素。
4? 系統(tǒng)設(shè)計
4.1? 系統(tǒng)流程圖
整個系統(tǒng)結(jié)構(gòu)較為簡單,系統(tǒng)啟動后,用戶可以根據(jù)自己的需要設(shè)置相應(yīng)的參數(shù),如股票代碼、初始資金和選擇策略等,參數(shù)設(shè)置完成后點擊回測按鈕,系統(tǒng)首先檢測參數(shù)的合法性,若存在問題,則提示用戶重新輸入相應(yīng)的參數(shù),若沒問題則系統(tǒng)開始工作,首先獲取相應(yīng)股票的行情信息,然后根據(jù)用戶所設(shè)置的一系列參數(shù)進行計算,得到結(jié)果并繪制圖形,展示在系統(tǒng)界面,系統(tǒng)流程圖如圖1所示。
4.2? 系統(tǒng)界面
整個系統(tǒng)界面使用Python的Tkinter模塊實現(xiàn),Tkinter是開發(fā)桌面必備的應(yīng)用程序接口,是當(dāng)今比較流行的Python中自帶的模塊,因此不需安裝,直接引入即可使用,系統(tǒng)界面如圖2所示。
4.3? 初始化
進行回測之前,需要設(shè)置回測的一些參數(shù),主要分為如下幾部分。
4.3.1? 股票
選擇相應(yīng)的股票代碼,選擇框下方會顯示股票的名字,如選中“000001.SZ”后,下方就會顯示“平安銀行”;設(shè)置股票的初始數(shù)量,即進行回測是手中持有多少數(shù)量的股票,默認值為0。
4.3.2? 時間
設(shè)置回測的開始時間和結(jié)束時間,進行回測時將在該時間段內(nèi)的每個交易日進行模擬交易。
4.3.3? 交易
設(shè)置初始資金和每次交易的股票數(shù)量,初始資金即開始時所擁有的資金;對于股票交易數(shù)量,傳統(tǒng)交易數(shù)量采用每次固定數(shù)量股票的交易,而本系統(tǒng)采用根據(jù)市場行情和當(dāng)前資金數(shù)量動態(tài)決定交易的數(shù)量,使盈利更高虧損更低。
4.3.4? 策略
用戶可以選擇不同類型的策略對某只或多只股票進行回測,如網(wǎng)格交易策略、海龜交易策略、布林均值回歸策略等。
4.4? 股票數(shù)據(jù)
股票數(shù)據(jù)來源于Tushare平臺,該平臺提供了大量的財經(jīng)數(shù)據(jù),如股票、期貨等行情數(shù)據(jù),只需下載平臺提供的SDK,調(diào)用SDK中的API便可獲取相應(yīng)的數(shù)據(jù)。
4.5? 交易策略
交易策略采用模塊化設(shè)計,每一種交易策略被封裝成一個模塊,每個模塊中是該交易策略的對象,對象中有相應(yīng)的成員方法,如計算交易過程中的產(chǎn)生的稅錢(過戶稅、印花稅、券商的傭金等),進行策略模擬交易的方法,使用該策略時獲取策略交易過程中資金、股票持有量的變化等,對于交易策略的具體如何實現(xiàn),下面給出具體介紹。
4.5.1? 網(wǎng)格交易策略
網(wǎng)格交易策略是一種利用市場價格的波動,進行高頻交易從而獲利的策略。在股票價格不斷波動的過程中,對股票價格走勢圖繪制網(wǎng)格線,網(wǎng)格間距離根據(jù)市場行情來確定,在股票價格自上向下觸碰到網(wǎng)格線時進行加倉操作,在股票價格自下向上觸碰到網(wǎng)格線時進行減倉操作,簡單理解為當(dāng)股票價格下跌一定值時買入一部分,上漲一定值時賣出一部分,從而盡可能獲得更大利潤,網(wǎng)格交易策略圖如圖3所示。
4.5.2? 布林均線回歸策略
4.5.3? 策略優(yōu)化
傳統(tǒng)的網(wǎng)格交易策略和布林均線回歸策略每次交易都進行固定數(shù)量的股票交易,對于行情波動較大或較頻繁的市場極為不利,有時但不會盈利,而且可能會造成一定的虧損。
4.5.4? 策略測試
為了驗證改進后策略的可行性,將以布林均線回歸策略為例,對行情波動較為頻繁的山東鋼鐵股票近一年內(nèi)進行回測,對比傳統(tǒng)策略和改進后的策略收益率的差異。
下面將展示策略改進前后相關(guān)數(shù)據(jù)的對比:
(1)傳統(tǒng)布林均線回歸策略,相關(guān)參數(shù)如圖5所示。
行情走勢如圖6所示。
回測結(jié)果如圖7所示。
(2)改進后的布林均線回歸策略,相關(guān)參數(shù)與圖5相同,行情走勢與圖6相同,回測結(jié)果如圖8所示。
觀察策略改進前后回測結(jié)果圖,我們可以清楚地看到傳統(tǒng)的布林均線回歸策略近一年收益率約為5%,而改進后的布林均線回歸策略收益率達到了20%,收益率明顯高于傳統(tǒng)的布林均線回歸策略,這也充分證實了改進后的策略可以使用并且能夠起到明顯的提高收益的作用。
4.6? 數(shù)據(jù)分析
交易完成后可以獲取資金和股票每天的持有量等數(shù)據(jù)。
4.6.1? 各類指標(biāo)
通過股票的行情數(shù)據(jù),可以計算出股票的相應(yīng)指標(biāo)值,比如MACD、布林線等。
4.6.2? 收益
通過初始資金和股票數(shù)量、每日持有股票的數(shù)量、回測當(dāng)日的價格,可以計算出當(dāng)日的收益,進而獲取到回測時間段內(nèi)的所有收益情況。
4.7? 數(shù)據(jù)可視化
數(shù)據(jù)可視化采用Matplotlib模塊實現(xiàn),將數(shù)組或Numpy類型的數(shù)據(jù)傳給Matplotlib模塊的相應(yīng)繪圖函數(shù),就可以繪制出自己想要的圖形,通過數(shù)據(jù)的可視化,我們能夠更直觀地看到在回測時間段內(nèi),股票行情、倉位和收益率等數(shù)據(jù)的變化。
4.8? 對當(dāng)日行情的分析
用戶在進行回測時,系統(tǒng)將自動判斷當(dāng)前時間是否是交易時間,如果是則獲取回測股票當(dāng)前的行情信息,并將信息追加到歷史行情中,再通過相應(yīng)的策略進行回測,計算出相應(yīng)指標(biāo),進而分析出當(dāng)前應(yīng)如何交易。
5? 結(jié)? 論
本文基于python實現(xiàn)了量化交易的可視化系統(tǒng),可以方便地進行股票的選擇,及對股票交易時間進行針對策略的回測,可視化的顯示資金收益及給出分析結(jié)果,幫助投資者作出投資決策。相信隨著我國金融市場的不斷完善,不久的將來,量化交易系統(tǒng)會成為我國金融交易的中流砥柱。
參考文獻:
[1] 于彤彤.基于人工智能和可視化技術(shù)的股票量化交易策略分析 [J].智庫時代,2020(9):49-50.
[2] 景泰然.量化投資在期貨交易中的應(yīng)用 [J].現(xiàn)代商業(yè),2015(18):152-153.
[3] 劉逖,盧濤.算法交易及在中國資本市場的應(yīng)用前景 [J].上海金融,2012(1):24-27+116.
[4] 郭笑宇.量化投資交易策略研究 [J].財經(jīng)界,2019(3):16-17.
[5] 王高鵬.證券投資技術(shù)分析方法應(yīng)用研究 [J].現(xiàn)代商業(yè),2013(27):48-49.
作者簡介:梁國鵬(1999—),男,滿族,河北承德人,本科在讀,研究方向:網(wǎng)絡(luò)工程;劉力軍(1979—),男,漢族,江蘇南京人,教師,助教,碩士,研究方向:網(wǎng)絡(luò)技術(shù)。
收稿日期:2021-04-17