1.? 前言
近年來,人工智能與大數(shù)據(jù)的話題越來越火,具有加速改變世界現(xiàn)狀的趨勢,無人可以阻擋。2017年5月27日,DeepMind公司的AlphaGo占勝世界圍棋第一人、世界冠軍柯潔九段。2017年10月26日,沙特阿拉伯正式授予“女性”機(jī)器人索菲亞公民身份,使其成為了史上首個(gè)獲得公民身份的機(jī)器人。同年聯(lián)合國開發(fā)計(jì)劃署亞太局正式宣布,任命索菲亞(Sophia)為第一位“非人類”創(chuàng)新大使。在金融投資領(lǐng)域,人工智能帶來的革命也將會(huì)顛覆我們的想象。
2018年未來已來。站在歷史的風(fēng)口,我們?nèi)绾螞Q擇? 作為普通大眾,我們不是程序員,不是金融工程從業(yè)者,難道只能束手就策,逐漸被歷史所淘汰,在投資領(lǐng)域被輕松AI割韭菜?我的答案是,我們需要主動(dòng)擁抱變化,不和時(shí)代對抗,變成終身學(xué)習(xí)者,不斷迭代自己,與時(shí)俱進(jìn)。
本篇小文總結(jié)了前幾個(gè)月,自己從一無所知的小白,入門“個(gè)人”量化交易的過程 。走過很多彎路,填過很多坑,現(xiàn)在基本實(shí)現(xiàn)了股票自動(dòng)交易。 希望能給同樣是小白的讀者一點(diǎn)參考。各路大神,金融工程專業(yè)人員,程序員等,本文對你可能太簡單了,如有錯(cuò)誤之處,請不咎賜教。
2. 實(shí)現(xiàn)量化交易割韭菜:Python + JoinQuant
2.1 編程語言學(xué)習(xí) Python.? 有基礎(chǔ)的請直接跳到2.2。
為什么選Python? 百度上答案很多,我的答案有三點(diǎn):1 因?yàn)楹唵危浅H菀咨鲜?,人生苦短,我用Python。2. 因?yàn)樽钸m合數(shù)據(jù)分析和人工智能的學(xué)習(xí)。3.我學(xué)會(huì)后,以后可以教孩子學(xué)編程。
學(xué)Python 2 還是學(xué)Python 3? 學(xué)Python 3,我們只學(xué)最新的。?
我的學(xué)習(xí)路徑如下: 首先是采用免費(fèi)的廖雪峰的官方網(wǎng)站上的《Python教程 》,具體網(wǎng)址問度娘。 通過大約3周的時(shí)間,我看完了這個(gè)教程。通過這個(gè)課程涉及的內(nèi)容很全,可以對Python有個(gè)總體的了解。沒有學(xué)懂也沒有關(guān)系,只要掌握了初步的知識(shí)就夠了,看不懂的先跳過。里面關(guān)于網(wǎng)絡(luò)編程,數(shù)據(jù)庫,進(jìn)程線程等的知識(shí),在量化交易中用處不大可以跳過, 實(shí)戰(zhàn)篇也可以跳過。 接來下,我采用的是實(shí)驗(yàn)樓網(wǎng)站上的免費(fèi)的《Python3 簡明教程》,? 里面有19個(gè)實(shí)驗(yàn),一步一步做下來,對Python編程就基本掌握了。實(shí)驗(yàn)樓網(wǎng)上的實(shí)驗(yàn)設(shè)計(jì)得非常好,大力推薦這個(gè)網(wǎng)站。認(rèn)真完成上述兩個(gè)課程,就已具備量化交易的語言基礎(chǔ)了。我完成上面兩個(gè)課程后,又買了《笨辦法學(xué)Python》之類的書,差不多兩晚上就看完了,而且是Python 2寫的代碼,不建議學(xué)習(xí)。
2.2? 聚寬JoinQuant
國內(nèi)量化交易的網(wǎng)站如雨后春筍般,一下子冒出來了很多。比較知名的有聚寬JoinQuant, 米筐,優(yōu)礦,京東量化,掘金,果仁等。哪家網(wǎng)站最好?我沒有全都試過,沒有調(diào)查就沒有發(fā)言權(quán),所以答不上來。我只用過聚寬JoinQuant,網(wǎng)址https://www.joinquant.com,個(gè)人感覺不錯(cuò),也推薦大家使用。
注冊帳號(hào)之類的簡單事情不用介紹了。接下來談?wù)勥M(jìn)入聚寬后如何升級打怪,這里是干貨,敲黑板?。。?/p>
2.2.1 首先,我建議 學(xué)習(xí)量化課堂-》Python編程模塊里的內(nèi)容。這里的課程非常棒?。€(gè)人覺得比廖雪峰和實(shí)驗(yàn)樓的課程更好,更清晰明了,有編程基礎(chǔ)的,直接從這里起步就可以了。按順序?qū)W習(xí)即可。第一步,先學(xué)標(biāo)有【入門】的七個(gè)課程,這是對量化交易需要用到的Python核心知識(shí)的精要講解。第二步,再學(xué)習(xí)標(biāo)有【進(jìn)階】的兩個(gè)課程。然后就是重中之重的標(biāo)有【科學(xué)計(jì)算】的三個(gè)課程,學(xué)習(xí)Numpy 和 Pandas. 這兩個(gè)庫是學(xué)習(xí)量化交易的核心庫,特別是Pandas,必須學(xué)會(huì)學(xué)好。第三步,跳到標(biāo)有【 數(shù)據(jù)可視化】學(xué)習(xí)Matplotlib庫。至此,量化交基的語言基礎(chǔ)己初步具備,你己經(jīng)掌握了航海技術(shù),可以開始去量化交易的海洋中遨游了。 Python編程模塊里的其它內(nèi)容,如Statsmodels, Scipy, KNN之類的,可以有空了再學(xué)習(xí)。
2.2.2 其次,我們要學(xué)習(xí)API文檔,位于幫助-》API文檔。必須通讀一遍。一邊學(xué)習(xí),一邊實(shí)踐。 這是JoinQuant這條船的使用說明書。 不要求記住,模模糊糊有個(gè)印象即可。需要用到的時(shí)候,能找到就可以了。通過這步的學(xué)習(xí),你心里的喜悅將無以言表,有一種豁然開朗的感覺。 你會(huì)體驗(yàn)到通過艱苦學(xué)習(xí)而有巨大收獲后的Hard Fun。大量的數(shù)據(jù),不管是股票,基金,行業(yè),各種財(cái)務(wù)指標(biāo),國內(nèi)重要宏觀經(jīng)濟(jì)數(shù)據(jù)等,對你來說唾手可得,而且還是免費(fèi)的。JoinQuant為你準(zhǔn)備好的大量數(shù)據(jù)庫,就像一座金礦等你來挖掘。你還可以用準(zhǔn)備好的API函數(shù),輕松調(diào)用國泰安數(shù)據(jù),Tushare等外部數(shù)據(jù)。
2.2.3 接下來,就是模仿寫策略和研究。你可以泡在社區(qū)里,閱讀別人的好貼子??吹胶玫奈恼拢梢灾苯涌寺e人的策略或研究,研究別人的代碼,學(xué)習(xí)前輩們的思路,用歷史數(shù)據(jù)進(jìn)行回測等等。你也可以泡在JoinQant的QQ群里,和大神們進(jìn)行交流。當(dāng)然,你還可以繼續(xù)學(xué)習(xí)量化課堂里的其它內(nèi)容,如新手專區(qū),策略與應(yīng)用,數(shù)學(xué)課堂,金融,經(jīng)濟(jì)與市場等。
2.2.4 最后,形成和優(yōu)化自己的策略,并用于實(shí)際投資。 通過前面的步驟,你應(yīng)該可以通過學(xué)習(xí)和結(jié)合自己的經(jīng)驗(yàn),形成自己風(fēng)格的策略,并不斷優(yōu)化與迭代。你的策略可以幫你盯住股票市場,每分鐘都按你要求進(jìn)行運(yùn)算,幫你選股,擇時(shí),分配資金,止損等等。你可以通過郵件或短信獲得各種操作提醒。
到這一步,你的量化交易基本上己入門了。由于國家政策的限制,JoinQuant不能直接操作實(shí)盤,只能通過JoinQuant的提示,手動(dòng)買出或賣出。 95%的人會(huì)止步于此。如果你是屬于那些想進(jìn)一步實(shí)現(xiàn)全自動(dòng)交易的5%的人,對自己的策略充滿信心,想自己旅游、度假,讓電腦100%幫你操作的人, 請繼續(xù)向前。
3. 最低成本打通實(shí)盤自動(dòng)量化交易, Python + JoinQuant+ 阿里云 + 實(shí)盤易+交易軟件
世界上你想要找的人,找的物,都已經(jīng)存在于這個(gè)世上。通過試驗(yàn)和學(xué)習(xí),我找到了一個(gè)最佳的打通實(shí)盤的方式 :JoinQuant+ 阿里云 + 實(shí)盤易+交易軟件。支持的券商見http://www.tdx.com.cn/qs.html。
原理如下:
1) 實(shí)盤易通過調(diào)用 WINDOWS API 對通達(dá)信進(jìn)行操作。
2) 實(shí)盤易提供基于 HTTP 協(xié)議的 RESTFul Service/API。
3)SDK 對 API 進(jìn)行了封裝(由 shipane_sdk/client.py 中的 Client 類實(shí)現(xiàn))。
4)聚寬量化交易平臺(tái)的模擬交易通過調(diào)用 SDK 實(shí)現(xiàn)自動(dòng)下單。
首先,來完成準(zhǔn)備工作.? 方法見http://www.iguuu.com/e#installation。通前前面的學(xué)習(xí),我們應(yīng)該可以輕松閱讀實(shí)盤易的幫助文件。請認(rèn)真只字不差地閱讀一遍。這個(gè)文檔是理工男寫的,默認(rèn)為用戶都是有基礎(chǔ)的,所以寫得很簡潔。 首先,你得租一個(gè)云服務(wù)器,有固定IP的。建議使用阿里云。其它的云服務(wù)器也可以,請自行測試。其次,部署實(shí)盤易。將實(shí)盤易和交易客戶端安裝在云服務(wù)器上,并進(jìn)行設(shè)置。第三,完成本地測試通過,和遠(yuǎn)程測試。
其次,使用推送方式,實(shí)現(xiàn)自動(dòng)交易。方法見:https://github.com/sinall/ShiPanE-Python-SDK#id4 。步聚如下:
1) 下載 scripts/shipane_sdk_installer.ipynb 并上傳至“投資研究”根目錄。
2)? 打開該文件,設(shè)置參數(shù):QUANT_NAME = 'joinquant'
3)? 查看其它參數(shù)并根據(jù)需要進(jìn)行修改。
4)? 點(diǎn)擊工具欄中的右箭頭運(yùn)行該文件,并檢查窗口中打印的日志。
5)? 修改 shipane_sdk_config.yaml,升級后需參考 shipane_sdk_config_template.yaml 進(jìn)行修改。
6) 修改策略代碼,可參考如下示例:
?????? - examples/joinquant/simple_strategy.py - 基本跟單用法(侵入式設(shè)計(jì),不推薦)
?????? - examples/joinquant/advanced_strategy.py - 高級同步、跟單用法(非侵入式設(shè)計(jì),推薦)
?????? - examples/joinquant/new_stocks_purchase.py - 新股申購
?????? - examples/joinquant/convertible_bonds_purchase.py - 轉(zhuǎn)債申購
?????? - examples/joinquant/repo.py - 逆回購
再次,如果有問題,可以在實(shí)盤易官方QQ群尋求有償服務(wù)。李笑來有句話叫做,付費(fèi)就是撿便宜,這句話就是真理。另外說一下,個(gè)人感覺實(shí)盤易官方QQ群里的大神特別多,明顯比JoinQuant官方QQ群里的人素質(zhì)高很多,泡在里面你會(huì)有意想不到的收獲。
4. 后記
股市有風(fēng)險(xiǎn),入市需謹(jǐn)慎!到這里,量化自動(dòng)交易的技術(shù)問題基本解決。仍下的就是策略好壞的問題了。如果你的策略夠好,你可以實(shí)現(xiàn)旅游度假,讓云服務(wù)器幫你打工,幫你自動(dòng)量化交易割別人的。我個(gè)人下一步需要學(xué)習(xí)的主要是以下幾個(gè)方面,供和我一樣的小白參考:1. 系統(tǒng)學(xué)習(xí)滋維-博迪的《投資學(xué)》,2. 學(xué)習(xí)丁鵬的《量化投資策略與技術(shù)》,3.得到APP聽《香帥的北大金融學(xué)》. 4. 提升財(cái)報(bào)閱讀能力,讀肖星《一本書讀懂財(cái)報(bào)》5.? 關(guān)注美股投資,6.關(guān)注區(qū)塊鏈