零基础搭建量化交易框架
目錄
前言
一、程序語(yǔ)言選擇
?二、量化交易的選擇
vn.py簡(jiǎn)介?
三、零基礎(chǔ)搭建vn.py量化交易框架
四、解決vn.py下載依賴過程出現(xiàn)的問題。
1.XX模塊運(yùn)行失敗,有read time out紅字
2.AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'?
3.python pip error:Microsoft Visual C++ 14.0 or greater is required
前言
量化交易是指以先進(jìn)的數(shù)學(xué)模型替代人為的主觀判斷,利用計(jì)算機(jī)技術(shù)從龐大的歷史數(shù)據(jù)中海選能帶來(lái)超額收益的多種“大概率”事件以制定策略,極大地減少了投資者情緒波動(dòng)的影響,避免在市場(chǎng)極度狂熱或悲觀的情況下作出非理性的投資決策。
最近在研究量化交易,把近一個(gè)月的學(xué)習(xí)研究經(jīng)驗(yàn)與心得分享給大家。
以下是量化交易的基本組成部分?
一、程序語(yǔ)言選擇
熟話說女怕嫁錯(cuò)郎,男怕入錯(cuò)行。選擇一門合適的編程語(yǔ)言,將大大提高你的開發(fā)效率和成功率。
選擇Python作為量化交易的主要語(yǔ)言有以下幾個(gè)方面優(yōu)勢(shì):
- 語(yǔ)言維護(hù)成本低
- 入門上手容易
- 模塊化程度高
- 語(yǔ)言生態(tài)強(qiáng)
?二、量化交易的選擇
正如Java語(yǔ)言離不開Spring框架,選擇一個(gè)好的框架,也將大大提高開發(fā)者的效率。
一個(gè)好的框架已經(jīng)幫開發(fā)者實(shí)現(xiàn)了底層代碼,而開發(fā)這只需關(guān)注量化的核心部分風(fēng)控、數(shù)據(jù)分析、策略交易。
目前國(guó)內(nèi)的量化交易框架有:vn.py、TuShare(數(shù)據(jù)服務(wù))、AKShare(數(shù)據(jù)服務(wù))、聚寬(web)等等。
其中筆者認(rèn)為選擇vn.py是最為合適的框架:
- vn.py是國(guó)內(nèi)頂級(jí)量化框架,截至目前發(fā)文GitHub上有19k星星。
- vn.py是開源框架,不用擔(dān)憂投資開發(fā)者的策略被泄露
- 覆蓋國(guó)內(nèi)外所有交易品種的交易接口,國(guó)內(nèi)股票、期貨,海外市場(chǎng),數(shù)字貨幣等等
- 開箱即用的各類量化策略交易應(yīng)用
vn.py簡(jiǎn)介?
vn.py是一套基于Python的開源量化交易系統(tǒng)開發(fā)框架,于2015年1月正式發(fā)布,在開源社區(qū)7年持續(xù)不斷的貢獻(xiàn)下一步步成長(zhǎng)為全功能量化交易平臺(tái),目前國(guó)內(nèi)外金融機(jī)構(gòu)用戶已經(jīng)超過900家,包括:私募基金、證券自營(yíng)和資管、期貨資管和子公司、高校研究機(jī)構(gòu)、自營(yíng)交易公司、交易所、Token Fund等。
官方網(wǎng)站:VeighNa量化社區(qū) - 你的開源社區(qū)量化交易平臺(tái)
GitHub代碼倉(cāng)庫(kù):GitHub - vnpy/vnpy: 基于Python的開源量化交易平臺(tái)開發(fā)框架
三、零基礎(chǔ)搭建vn.py量化交易框架
環(huán)境準(zhǔn)備:windows10、PyCharm
首先從Github代碼倉(cāng)庫(kù)下載vn.py源碼,點(diǎn)擊Download ZIP,下載源碼源碼壓縮包并解壓。
?
?從jetbrains下載流行的Python編譯器PyCharm
https://www.jetbrains.com/pycharm/
這里選擇社區(qū)版安裝就可以了。
?安裝完畢之后選擇open->選擇vnpy解壓的文件夾。
?
打開之后的源碼是不能直接運(yùn)行的,需要下載安裝依賴。這里推薦使用conda來(lái)管理項(xiàng)目得依賴。
Miniconda — conda documentation
注意:由于Python在版本兼容性做得很差,所以在下載conda前先查看當(dāng)前下載的vnpy版本支持的Python版本。
在源碼的README.md查看支持的Python版本為3.7。
??
?下載對(duì)應(yīng)版本的conda
下載安裝完成之后需要配置conda環(huán)境變量
首先右鍵此電腦->屬性->高級(jí)系統(tǒng)->高級(jí)在系統(tǒng)變量選中Path點(diǎn)擊編輯->新建
將conda安裝路徑的三個(gè)目錄添加進(jìn)去。
G:\conda為筆者安裝conda的根目錄。
G:\conda G:\conda\Scripts G:\conda\Library\bin配置好之后回到Pycharm點(diǎn)擊Termial(終端)選項(xiàng),輸入以下命令:
conda -V?顯示出版本號(hào)則說明環(huán)境配置成功。
?接著安裝vnpy源碼依賴,首先輸入以下命令創(chuàng)建conda環(huán)境:
conda create -n vnpy_master python=3.7The following NEW packages will be INSTALLED:ca-certificates pkgs/main/win-64::ca-certificates-2022.07.19-haa95532_0certifi pkgs/main/win-64::certifi-2022.6.15-py37haa95532_0openssl pkgs/main/win-64::openssl-1.1.1q-h2bbff1b_0pip pkgs/main/win-64::pip-22.1.2-py37haa95532_0python pkgs/main/win-64::python-3.7.13-h6244533_0setuptools pkgs/main/win-64::setuptools-61.2.0-py37haa95532_0sqlite pkgs/main/win-64::sqlite-3.39.2-h2bbff1b_0vc pkgs/main/win-64::vc-14.2-h21ff451_1vs2015_runtime pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2wheel pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0wincertstore pkgs/main/win-64::wincertstore-0.2-py37haa95532_2Proceed ([y]/n)? y輸入命令之后會(huì)列舉需要安裝的環(huán)境包,會(huì)詢問是否執(zhí)行Proceed ([y]/n)? ,輸入y后繼續(xù)安裝。
都安裝完成之后需要激活conda環(huán)境
conda.bat activate vnpy_master接著就是安裝vnpy的依賴包:
python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple依賴都安裝完畢之后需要在Pycharm使用conda環(huán)境
按ctrl+alt+s打開設(shè)置,找到Project ->Python interpretor點(diǎn)擊設(shè)置->Add
?選擇創(chuàng)建的conda環(huán)境確定之后就能使用依賴了。
新建run.py文件輸入以下代碼:
from vnpy.event import EventEngine from vnpy.trader.engine import MainEngine from vnpy.trader.ui import MainWindow, create_qapp from vnpy.gateway.ctp import CtpGateway from vnpy.app.cta_strategy import CtaStrategyApp from vnpy.app.cta_backtester import CtaBacktesterAppdef main():"""Start VN Trader"""qapp = create_qapp()event_engine = EventEngine()main_engine = MainEngine(event_engine)main_engine.add_gateway(CtpGateway)main_engine.add_app(CtaStrategyApp)main_engine.add_app(CtaBacktesterApp)main_window = MainWindow(main_engine, event_engine)main_window.showMaximized()qapp.exec()if __name__ == "__main__":main()點(diǎn)擊main函數(shù)左邊運(yùn)行圖標(biāo)運(yùn)行。?
?看到界面后環(huán)境搭建成功!
四、解決vn.py下載依賴過程出現(xiàn)的問題。
1.XX模塊運(yùn)行失敗,有read time out紅字
ERROR: Exception: Traceback (most recent call last):File "G:\programfile\lib\site-packages\pip\_vendor\urllib3\response.py", line 435, in _error_catcheryieldFile "G:\programfile\lib\site-packages\pip\_vendor\urllib3\response.py", line 516, in readdata = self._fp.read(amt) if not fp_closed else b""File "G:\programfile\lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 90, in readdata = self.__fp.read(amt)File "G:\programfile\lib\http\client.py", line 447, in readn = self.readinto(b)File "G:\programfile\lib\http\client.py", line 491, in readinton = self.fp.readinto(b)File "G:\programfile\lib\socket.py", line 589, in readintoreturn self._sock.recv_into(b)File "G:\programfile\lib\ssl.py", line 1049, in recv_intoreturn self.read(nbytes, buffer)File "G:\programfile\lib\ssl.py", line 908, in readreturn self._sslobj.read(len, buffer) socket.timeout: The read operation timed out此類問題一般是網(wǎng)絡(luò)問題,如在下載依賴時(shí)沒有加國(guó)內(nèi)鏡像,那么會(huì)默認(rèn)去Python官網(wǎng)下載,由于官網(wǎng)是國(guó)外網(wǎng)絡(luò)故會(huì)出現(xiàn)超時(shí)。
解決方法:在pip下載命令加國(guó)內(nèi)鏡像
-i https://pypi.tuna.tsinghua.edu.cn/simple
- 清華大學(xué):https://pypi.tuna.tsinghua.edu.cn/simple
- 中國(guó)科學(xué)技術(shù)大學(xué) : https://pypi.mirrors.ustc.edu.cn/simple
- 豆瓣:http://pypi.douban.com/simple/
- 阿里云:http://mirrors.aliyun.com/pypi/simple/
2.AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'?
出現(xiàn)這個(gè)問題是vnpy安裝PyQT5出現(xiàn)的問題,其它博主給的答案是安裝PyQT5的工具包,
pip install PyQt5-tools
pip install -U setuptools==59.1.1
然而并不能解決問題。
解決方案是查看vnpy源碼依賴的PyQT5版本支持的Python版本為3.7,故安裝Python3.7版本,
安裝低版本或高版本都有可能導(dǎo)致兼容性問題。
3.python pip error:Microsoft Visual C++ 14.0 or greater is required
出現(xiàn)這個(gè)問題是pip安裝依賴時(shí)需要c++環(huán)境支持,使用conda可以完美解決此問題,無(wú)需手動(dòng)安裝c++14.0
總結(jié)
以上是生活随笔為你收集整理的零基础搭建量化交易框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 There is no gette
- 下一篇: http://www.a.cn/?a.b