首頁>技術>

框架選擇

本系列教程會講四個策略:基於ccxt開發的動態平衡策略,基於vnpy開發的趨勢跟蹤策略,基於vnpy開發的價差套利策略,基於thenextquant開發的做市策略。

工具和開源框架選取包括:pycharm + vnpy + ccxt + thenextquant

安裝vnstudio

vnpy、ccxt、thenextquant都需要python開發環境,而vnstudio包含了Python直譯器以及一系列量化交易常用的第三方庫,只需要簡單幾步安裝就可以輕鬆搭建量化交易的python開發環境,簡單而有效!

vnstudio下載介面

下載下來之後,雙擊執行該檔案,按照提示安裝就行。vnstudio的安裝很簡單,只需要選擇安裝目錄,建議這裡不要修改就用預設的路徑c:\\vnstudio。

值得一提的是vnstudio裡面已經集成了vnpy的原始碼,所以我們也不需要單獨去git上面再去下載vnpy的原始碼了

設定工作目錄

安裝完成之後我們會發現桌面上多了一個快捷方式VN Station,我們不需要這個,直接刪掉。接下來開啟資料夾C:\\vnstudio,然後新建一個資料夾Project,以後我們的專案都放這個目錄。再在Project資料夾內新建一個資料夾vnpy2.1.2,準備把vnpy專案剪下過來。

接下來開啟資料夾C:\\vnstudio\\Lib\\site-packages,把vnpy的程式碼剪下到C:\\vnstudio\\Project\\vnpy2.1.2目錄裡面。下圖中包括vnpy和vnstation的原始碼,有興趣的可以自己看看vnstation的原始碼,我們只需要把vnpy資料夾整個剪下到C:\\vnstudio\\Project\\vnpy2.1.2目錄裡面,然後再刪除vnpy的.egg-info的資料夾就OK了。

vnpy目錄

安裝Pycharm

PyCharm是一種Python IDE,帶有一整套可以幫助使用者在使用Python語言開發時提高其效率的工具,比如除錯、語法高亮、Project管理、程式碼跳轉、智慧提示、自動完成、單元測試、版本控制。

PyCharm的安裝也很簡單,我用的版本是pycharm-community-2019.1.1,安裝過程如下:

啟動專案

啟動pycharm,開啟Project裡面的vnpy專案:

點選Open

目錄一定要選擇這一層

確保你的目錄結構和我一樣:

專案結構

到這裡vnpy專案專案已經匯入到我們的IDE裡面了,接下來我們就可以針對原始碼進行開發了。首先我們寫一個trader介面,用來連線指定的交易所。

建立UI執行目錄

3)複製下面程式碼到run.py-》右鍵執行該程式碼。

# flake8: noqafrom vnpy.event import EventEnginefrom vnpy.trader.engine import MainEnginefrom vnpy.trader.ui import MainWindow, create_qappfrom vnpy.gateway.binance import BinanceGatewayfrom vnpy.app.cta_strategy import CtaStrategyAppfrom vnpy.app.csv_loader import CsvLoaderAppfrom vnpy.app.algo_trading import AlgoTradingAppfrom vnpy.app.cta_backtester import CtaBacktesterAppfrom vnpy.app.data_recorder import DataRecorderAppfrom vnpy.app.risk_manager import RiskManagerAppfrom vnpy.app.script_trader import ScriptTraderAppfrom vnpy.app.rpc_service import RpcServiceAppfrom vnpy.app.spread_trading import SpreadTradingAppfrom vnpy.app.portfolio_manager import PortfolioManagerAppfrom vnpy.app.option_master import OptionMasterAppfrom vnpy.app.chart_wizard import ChartWizardAppfrom vnpy.app.excel_rtd import ExcelRtdAppfrom logging import INFOfrom vnpy.trader.setting import SETTINGSSETTINGS["log.active"] = TrueSETTINGS["log.level"] = INFOSETTINGS["log.console"] = Truedef main(): """""" qapp = create_qapp() event_engine = EventEngine() main_engine = MainEngine(event_engine) main_engine.add_gateway(BinanceGateway) main_engine.add_app(CtaStrategyApp) main_engine.add_app(CtaBacktesterApp) main_engine.add_app(CsvLoaderApp) main_engine.add_app(AlgoTradingApp) main_engine.add_app(DataRecorderApp) main_engine.add_app(RiskManagerApp) main_engine.add_app(ScriptTraderApp) main_engine.add_app(RpcServiceApp) main_engine.add_app(SpreadTradingApp) main_engine.add_app(PortfolioManagerApp) main_engine.add_app(OptionMasterApp) main_engine.add_app(ChartWizardApp) main_engine.add_app(ExcelRtdApp) main_window = MainWindow(main_engine, event_engine) main_window.showMaximized() qapp.exec()if __name__ == "__main__": main()

連線成功

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Go 每日一庫之 viper