什麼是zipline?
zipline是一個由美國公司quantopian開源的python套件庫,是一個量化交易的回測框架。
為什麼選擇zipline?
- 事件驅動回測引擎:易於避免使用未來資訊,舉例來說,假設我們接受每個tick為一個個的事件,然後調用相對應的處理函數來處理,如果有產生交易訊號則下單,沒有就讓下一個tick進來,這樣在處理下單時可以避免用到未來的tick。
- 提供相當多實用功能:滑價設定、交易成本等等
- Quantopian直接提供網頁板的api環境,並支援直接交易美股的帳號連結。
Part 0: zipline的安裝
zipline的安裝可以參考官方的教程
https://www.zipline.io/install.html
在這邊,儘管zipline支援pip安裝,但是由於它也會用到LAPACK,而這部份的依賴庫沒有被包到pip的套裝管理環境中(pip只處理python的套件庫而conda是跨語言的),所以相對來說用conda來安裝是比較簡單,同時,也建議新增一個新的conda環境來安裝zipline(zipline相依的庫版本較舊)。
建立一個新的Conda環境
conda是什麼
conda就我的理解,跟pip是相似的工具,是一個庫的管理系統,使用conda我們安裝python套件時會自動處理庫之間的相依賴情況,同時conda可以創造多個環境,讓我們在不同的版本的套件庫中切換。
conda的安裝
這邊有兩個選擇
- Anaconda:https://www.anaconda.com/distribution/
- Miniconda:https://docs.conda.io/en/latest/miniconda.html
其中的差別在於anaconda安裝時會一同安裝大約150與科學計算、資料處理有關的套件庫,當然這也代表安裝這個比較占空間(3GB左右),另一方面,miniconda安裝好只須大約400mb,我個人使用的是anaconda,conda的版本為4.6.14,conda是跨平台軟體,三個相關平台(windows、mac os、Linux)都找得到對應的安裝方式,請參考官方網站。
conda管理環境
這邊我們列出管理環境的相關指令,注意,以下操作是在終端機下完成(windows為cmd可以在搜尋區搜尋cmd)。
- 查看conda版本: conda -V
- 查看目前系統安裝幾個虛擬環境: conda env list
- 建立一個新環境:(假設取名為myenv,並安裝python 3.5的版本) conda create –name myenv python=3.5
- 啟動虛擬環境: activate myenv(windows), source activate myenv(Linux and mac OS)
- 離開虛擬環境: deactivate(windows), source deactivate(Linux and mac OS)
- 刪除虛擬環境: conda env remove –name myenv
如何在jupyter notebook切換環境
- Step1:啟動想要加入jupyter notebook的環境: source activate (環境名)
- Step2:安裝ipykernel: conda install ipykernel
- Step3:python -m ipykernel install –user –name (環境名稱)–display-name “(顯示名稱)”