基於Python的開源量化交易平臺開發框架vnpy-轉自github

基於Python的開源量化交易平臺開發框架 

http://www.vnpy.com

By Traders, For Traders.

vn.py是一套基於Python的開源量化交易系統開發框架,自2015年1月正式發佈以來,在開源社區5年持續不斷的貢獻下一步步成長爲全功能量化交易平臺,目前國內外金融機構用戶已經超過300家,包括:私募基金、證券自營和資管、期貨資管和子公司、高校研究機構、自營交易公司、交易所、Token Fund等。

2.0版本基於Python 3.7全新重構開發,目前功能還在逐步完善中。如需Python 2上的版本請點擊:長期支持版本v1.9.2 LTS

功能特點

  1. 全功能量化交易平臺(vnpy.trader),整合了多種交易接口,並針對具體策略算法和功能開發提供了簡潔易用的API,用於快速構建交易員所需的量化交易應用。

  2. 覆蓋國內外所有交易品種的交易接口(vnpy.gateway):

    • CTP(ctpGateway):國內期貨、期權

    • 富途證券(futuGateway):港股、每股

    • Interactive Brokers(ibGateway):全球證券、期貨、期權、外匯等

    • BitMEX (bitmexGateway):數字貨幣期貨、期權、永續合約

  3. 開箱即用的各類量化策略交易應用(vnpy.app):

    • CtaStrategy:CTA策略引擎模塊,在保持易用性的同時,允許用戶針對CTA類策略運行過程中委託的報撤行爲進行細粒度控制(降低交易滑點、實現高頻策略)
  4. Python交易API接口封裝(vnpy.api),提供上述交易接口的底層對接實現。

  5. 簡潔易用的事件驅動引擎(vnpy.event),作爲事件驅動型交易程序的核心。

  6. 社區論壇知乎專欄,內容包括vn.py項目的開發教程和Python在量化交易領域的應用研究等內容。

  7. 官方交流羣262656087(QQ),管理嚴格(定期清除長期潛水的成員),入羣費將捐贈給vn.py社區基金。

環境準備

  • 推薦使用vn.py團隊爲量化交易專門打造的Python發行版VNConda-2.0-Windows-x86_64,內置了最新版的vn.py,無需手動安裝
  • 支持的系統版本:Windows 7以上/Windows Server 2008以上/Ubuntu 18.04 LTS
  • 支持的Python版本:Python 3.7 64位(注意必須是Python 3.7 64位版本
  • 如需使用IB API,請在Interactive Brokers Github頁面下載安裝IB API Latest

安裝步驟

這裏下載最新版本,解壓後運行以下命令安裝:

Windows

install.bat

Ubuntu

bash install.sh

使用指南

  1. SimNow註冊CTP仿真賬號,並在該頁面獲取經紀商代碼以及交易行情服務器地址。

  2. vn.py社區論壇註冊獲得VN Station賬號密碼,論壇最新的註冊邀請碼爲El86Pa1p

  3. 啓動VN Station(安裝VNConda後會在桌面自動創建快捷方式),輸入上一步的賬號密碼登錄

  4. 點擊底部的VN Trader按鈕,選擇運行目錄(默認在系統用戶目錄即可)後,在對話框中勾選CTP接口以及CtaStrategy應用,點擊右下方的啓動按鈕,開始你的交易!!!

  5. 在VN Trader的運行過程中請勿關閉VN Station(會自動退出)

  6. 如選擇了VNConda以外的安裝方式(不推薦新手),可以在任意目錄下創建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

def main():
    """啓動VN Trader"""
    qapp = create_qapp()

    event_engine = EventEngine()
    main_engine = MainEngine(event_engine)
    
    main_engine.add_gateway(CtpGateway)
    main_engine.add_app(CtaStrategyApp)

    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()

    qapp.exec()

if __name__ == "__main__":
    main()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章