零基础搭建量化交易框架
目錄
前言
一、程序語言選擇
?二、量化交易的選擇
vn.py簡介?
三、零基礎搭建vn.py量化交易框架
四、解決vn.py下載依賴過程出現的問題。
1.XX模塊運行失敗,有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
前言
量化交易是指以先進的數學模型替代人為的主觀判斷,利用計算機技術從龐大的歷史數據中海選能帶來超額收益的多種“大概率”事件以制定策略,極大地減少了投資者情緒波動的影響,避免在市場極度狂熱或悲觀的情況下作出非理性的投資決策。
最近在研究量化交易,把近一個月的學習研究經驗與心得分享給大家。
以下是量化交易的基本組成部分?
一、程序語言選擇
熟話說女怕嫁錯郎,男怕入錯行。選擇一門合適的編程語言,將大大提高你的開發效率和成功率。
選擇Python作為量化交易的主要語言有以下幾個方面優勢:
- 語言維護成本低
- 入門上手容易
- 模塊化程度高
- 語言生態強
?二、量化交易的選擇
正如Java語言離不開Spring框架,選擇一個好的框架,也將大大提高開發者的效率。
一個好的框架已經幫開發者實現了底層代碼,而開發這只需關注量化的核心部分風控、數據分析、策略交易。
目前國內的量化交易框架有:vn.py、TuShare(數據服務)、AKShare(數據服務)、聚寬(web)等等。
其中筆者認為選擇vn.py是最為合適的框架:
- vn.py是國內頂級量化框架,截至目前發文GitHub上有19k星星。
- vn.py是開源框架,不用擔憂投資開發者的策略被泄露
- 覆蓋國內外所有交易品種的交易接口,國內股票、期貨,海外市場,數字貨幣等等
- 開箱即用的各類量化策略交易應用
vn.py簡介?
vn.py是一套基于Python的開源量化交易系統開發框架,于2015年1月正式發布,在開源社區7年持續不斷的貢獻下一步步成長為全功能量化交易平臺,目前國內外金融機構用戶已經超過900家,包括:私募基金、證券自營和資管、期貨資管和子公司、高校研究機構、自營交易公司、交易所、Token Fund等。
官方網站:VeighNa量化社區 - 你的開源社區量化交易平臺
GitHub代碼倉庫:GitHub - vnpy/vnpy: 基于Python的開源量化交易平臺開發框架
三、零基礎搭建vn.py量化交易框架
環境準備:windows10、PyCharm
首先從Github代碼倉庫下載vn.py源碼,點擊Download ZIP,下載源碼源碼壓縮包并解壓。
?
?從jetbrains下載流行的Python編譯器PyCharm
https://www.jetbrains.com/pycharm/
這里選擇社區版安裝就可以了。
?安裝完畢之后選擇open->選擇vnpy解壓的文件夾。
?
打開之后的源碼是不能直接運行的,需要下載安裝依賴。這里推薦使用conda來管理項目得依賴。
Miniconda — conda documentation
注意:由于Python在版本兼容性做得很差,所以在下載conda前先查看當前下載的vnpy版本支持的Python版本。
在源碼的README.md查看支持的Python版本為3.7。
??
?下載對應版本的conda
下載安裝完成之后需要配置conda環境變量
首先右鍵此電腦->屬性->高級系統->高級在系統變量選中Path點擊編輯->新建
將conda安裝路徑的三個目錄添加進去。
G:\conda為筆者安裝conda的根目錄。
G:\conda G:\conda\Scripts G:\conda\Library\bin配置好之后回到Pycharm點擊Termial(終端)選項,輸入以下命令:
conda -V?顯示出版本號則說明環境配置成功。
?接著安裝vnpy源碼依賴,首先輸入以下命令創建conda環境:
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輸入命令之后會列舉需要安裝的環境包,會詢問是否執行Proceed ([y]/n)? ,輸入y后繼續安裝。
都安裝完成之后需要激活conda環境
conda.bat activate vnpy_master接著就是安裝vnpy的依賴包:
python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple依賴都安裝完畢之后需要在Pycharm使用conda環境
按ctrl+alt+s打開設置,找到Project ->Python interpretor點擊設置->Add
?選擇創建的conda環境確定之后就能使用依賴了。
新建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()點擊main函數左邊運行圖標運行。?
?看到界面后環境搭建成功!
四、解決vn.py下載依賴過程出現的問題。
1.XX模塊運行失敗,有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此類問題一般是網絡問題,如在下載依賴時沒有加國內鏡像,那么會默認去Python官網下載,由于官網是國外網絡故會出現超時。
解決方法:在pip下載命令加國內鏡像
-i https://pypi.tuna.tsinghua.edu.cn/simple
- 清華大學:https://pypi.tuna.tsinghua.edu.cn/simple
- 中國科學技術大學 : 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'?
出現這個問題是vnpy安裝PyQT5出現的問題,其它博主給的答案是安裝PyQT5的工具包,
pip install PyQt5-tools
pip install -U setuptools==59.1.1
然而并不能解決問題。
解決方案是查看vnpy源碼依賴的PyQT5版本支持的Python版本為3.7,故安裝Python3.7版本,
安裝低版本或高版本都有可能導致兼容性問題。
3.python pip error:Microsoft Visual C++ 14.0 or greater is required
出現這個問題是pip安裝依賴時需要c++環境支持,使用conda可以完美解決此問題,無需手動安裝c++14.0
總結
以上是生活随笔為你收集整理的零基础搭建量化交易框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 There is no gette
- 下一篇: http://www.a.cn/?a.b