• Stars
    star
    23,482
  • Rank 917 (Top 0.02 %)
  • Language
    Python
  • License
    MIT License
  • Created over 9 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

基于Python的开源量化交易平台开发框架

VeighNa - By Traders, For Traders.

💬 Want to read this in english ? Go here

VeighNa是一套基于Python的开源量化交易系统开发框架,在开源社区持续不断的贡献下一步步成长为多功能量化交易平台,自发布以来已经积累了众多来自金融机构或相关领域的用户,包括私募基金、证券公司、期货公司等。

🚀 🚀 🚀 面向专业交易员的【VeighNa Elite量化终端】已经正式发布,针对专业交易员群体在海量策略并发、智能移仓换月、算法拆单执行、多账户交易支持等方面的需求提供了完善支持。了解更详细的信息请扫描下方二维码关注后,点击菜单栏的【社区交流 -> Elite会员服务】即可

在使用VeighNa进行二次开发(策略、模块等)的过程中有任何疑问,请查看VeighNa项目文档,如果无法解决请前往官方社区论坛的【提问求助】板块寻求帮助,也欢迎在【经验分享】板块分享你的使用心得!

针对VeighNa的金融机构用户,创建了一个专门的【VeighNa机构用户群】(QQ群号:676499931),主要分享机构应用方面相关的问题,如:银行间市场接入、资管O32系统、分布式部署等内容。请注意本群只对金融机构用户开放,加群时请注明:姓名-机构-部门。

功能特点

  1. 多功能量化交易平台(trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用。

  2. 覆盖国内外所拥有的下述交易品种的交易接口(gateway):

    • 国内市场

      • CTP(ctp):国内期货、期权

      • CTP Mini(mini):国内期货、期权

      • CTP证券(sopt):ETF期权

      • 飞马(femas):国内期货

      • 恒生UFT(uft):国内期货、ETF期权

      • 易盛(esunny):国内期货、黄金TD

      • 顶点飞创(sec):ETF期权

      • 顶点HTS(hts):ETF期权

      • 中泰XTP(xtp):国内证券(A股)、ETF期权

      • 华鑫奇点(tora):国内证券(A股)、ETF期权

      • 国泰君安(hft):国内证券(A股、两融)

      • 东证OST(ost):国内证券(A股)

      • 东方财富EMT(emt):国内证券(A股)

      • 飞鼠(sgit):黄金TD、国内期货

      • 金仕达黄金(ksgold):黄金TD

      • 融航(rohon):期货资管

      • 杰宜斯(jees):期货资管

      • 中汇亿达(comstar):银行间市场

      • 掘金(gm):国内证券(仿真)

      • 恒生云UF(uf):国内证券(仿真)

      • TTS(tts):国内期货(仿真)

      • 火象(hx):国内期货(仿真)

    • 海外市场

      • Interactive Brokers(ib):海外证券、期货、期权、贵金属等

      • 易盛9.0外盘(tap):海外期货

      • 直达期货(da):海外期货

    • 特殊应用

      • RQData行情(rqdata):跨市场(股票、指数、ETF、期货)实时行情

      • RPC服务(rpc):跨进程通讯接口,用于分布式架构

  3. 覆盖下述各类量化策略的交易应用(app):

    • cta_strategy:CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略)

    • cta_backtester:CTA策略回测模块,无需使用Jupyter Notebook,直接使用图形界面进行策略回测分析、参数优化等相关工作

    • spread_trading:价差交易模块,支持自定义价差,实时计算价差行情和持仓,支持价差算法交易以及自动价差策略两种模式

    • option_master:期权交易模块,针对国内期权市场设计,支持多种期权定价模型、隐含波动率曲面计算、希腊值风险跟踪等功能

    • portfolio_strategy:组合策略模块,面向同时交易多合约的量化策略(Alpha、期权套利等),提供历史数据回测和实盘自动交易功能

    • algo_trading:算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、Iceberg、BestLimit等

    • script_trader:脚本策略模块,面向多标的类量化策略和计算任务设计,同时也可以在命令行中实现REPL指令形式的交易,不支持回测功能

    • paper_account:本地仿真模块,纯本地化实现的仿真模拟交易功能,基于交易接口获取的实时行情进行委托撮合,提供委托成交推送以及持仓记录

    • chart_wizard:K线图表模块,基于RQData数据服务(期货)或者交易接口获取历史数据,并结合Tick推送显示实时行情变化

    • portfolio_manager:交易组合管理模块,以独立的策略交易组合(子账户)为基础,提供委托成交记录管理、交易仓位自动跟踪以及每日盈亏实时统计功能

    • rpc_service:RPC服务模块,允许将某一进程启动为服务端,作为统一的行情和交易路由通道,允许多客户端同时连接,实现多进程分布式系统

    • data_manager:历史数据管理模块,通过树形目录查看数据库中已有的数据概况,选择任意时间段数据查看字段细节,支持CSV文件的数据导入和导出

    • data_recorder:行情记录模块,基于图形界面进行配置,根据需求实时录制Tick或者K线行情到数据库中,用于策略回测或者实盘初始化

    • excel_rtd:Excel RTD(Real Time Data)实时数据服务,基于pyxll模块实现在Excel中获取各类数据(行情、合约、持仓等)的实时推送更新

    • risk_manager:风险管理模块,提供包括交易流控、下单数量、活动委托、撤单总数等规则的统计和限制,有效实现前端风控功能

    • web_trader:Web服务模块,针对B-S架构需求设计,实现了提供主动函数调用(REST)和被动数据推送(Websocket)的Web服务器

  4. Python交易API接口封装(api),提供上述交易接口的底层对接实现。

    • REST Client(rest):基于协程异步IO的高性能REST API客户端,采用事件消息循环的编程模型,支持高并发实时交易请求发送

    • Websocket Client(websocket):基于协程异步IO的高性能Websocket API客户端,支持和REST Client共用事件循环并发运行

  5. 简洁易用的事件驱动引擎(event),作为事件驱动型交易程序的核心。

  6. 对接各类数据库的适配器接口(database):

    • SQL类

      • SQLite(sqlite):轻量级单文件数据库,无需安装和配置数据服务程序,VeighNa的默认选项,适合入门新手用户

      • MySQL(mysql):主流的开源关系型数据库,文档资料极为丰富,且可替换其他NewSQL兼容实现(如TiDB)

      • PostgreSQL(postgresql):特性更为丰富的开源关系型数据库,支持通过扩展插件来新增功能,只推荐熟手使用

    • NoSQL类

      • DolphinDB(dolphindb):一款高性能分布式时序数据库,适用于对速度要求极高的低延时或实时性任务

      • Arctic(arctic):高性能金融时序数据库,采用了分块化储存、LZ4压缩等性能优化方案,以实现时序数据的高效读写

      • TDengine(taos):分布式、高性能、支持SQL的时序数据库,带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少研发和运维的复杂度

      • TimescaleDB(timescaledb):基于PostgreSQL开发的一款时序数据库,以插件化扩展的形式安装,支持自动按空间和时间对数据进行分区

      • MongoDB(mongodb):基于分布式文件储存(bson格式)的文档式数据库,内置的热数据内存缓存提供更快读写速度

      • InfluxDB(influxdb):针对TimeSeries Data专门设计的时序数据库,列式数据储存提供极高的读写效率和外围分析应用

      • LevelDB(leveldb):由Google推出的高性能Key/Value数据库,基于LSM算法实现进程内存储引擎,支持数十亿级别的海量数据

  7. 对接下述各类数据服务的适配器接口(datafeed):

    • 米筐RQData(rqdata):股票、期货、期权、基金、债券、黄金TD

    • 恒生UData(udata):股票、期货、期权

    • TuShare(tushare):股票、期货、期权、基金

    • 万得Wind(wind):股票、期货、基金、债券

    • 天软Tinysoft(tinysoft):股票、期货、基金、债券

    • 同花顺iFinD(ifind):股票、期货、基金、债券

    • 天勤TQSDK(tqsdk):期货

  8. 跨进程通讯标准组件(rpc),用于实现分布式部署的复杂交易系统。

  9. Python高性能K线图表(chart),支持大数据量图表显示以及实时数据更新功能。

  10. 社区论坛知乎专栏,内容包括VeighNa项目的开发教程和Python在量化交易领域的应用研究等内容。

  11. 官方交流群262656087(QQ),管理严格(定期清除长期潜水的成员),入群费将捐赠给VeighNa社区基金。

注:以上关于功能特点的说明为根据说明文档发布时情况罗列,后续可能存在更新或调整。若功能描述同实际存在出入,欢迎通过Issue联系进行调整。

环境准备

  • 推荐使用VeighNa团队为量化交易专门打造的Python发行版VeighNa Studio-3.7.0,集成内置了VeighNa框架以及VeighNa Station量化管理平台,无需手动安装
  • 支持的系统版本:Windows 10以上 / Windows Server 2016以上 / Ubuntu 20.04 LTS以上
  • 支持的Python版本:Python 3.7/ 3.8 / 3.9 / 3.10 64位(推荐使用Python 3.10

安装步骤

这里下载Release发布版本,解压后运行以下命令安装:

Windows

install.bat

Ubuntu

bash install.sh

Macos

bash install_osx.sh

注意:setup.cfg中列举了VeighNa框架安装所需的依赖库,requirements.txt中给出了这些依赖库的推荐安装版本。

使用指南

  1. SimNow注册CTP仿真账号,并在该页面获取经纪商代码以及交易行情服务器地址。

  2. VeighNa社区论坛注册获得VeighNa Station账号密码(论坛账号密码即是)

  3. 启动VeighNa Station(安装VeighNa Studio后会在桌面自动创建快捷方式),输入上一步的账号密码登录

  4. 点击底部的VeighNa Trader按钮,开始你的交易!!!

注意:

  • 在VeighNa Trader的运行过程中请勿关闭VeighNa Station(会自动退出)

脚本运行

除了基于VeighNa Station的图形化启动方式外,也可以在任意目录下创建run.py,写入以下示例代码:

from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp

from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp


def main():
    """Start VeighNa 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()

在该目录下打开CMD(按住Shift->点击鼠标右键->在此处打开命令窗口/PowerShell)后运行下列命令启动VeighNa Trader:

python run.py

贡献代码

VeighNa使用Github托管其源代码,如果希望贡献代码请使用github的PR(Pull Request)的流程:

  1. 创建 Issue - 对于较大的改动(如新功能,大型重构等)建议先开issue讨论一下,较小的improvement(如文档改进,bugfix等)直接发PR即可

  2. Fork VeighNa - 点击右上角Fork按钮

  3. Clone你自己的fork: git clone https://github.com/$userid/vnpy.git

    • 如果你的fork已经过时,需要手动sync:同步方法
  4. dev创建你自己的feature branch: git checkout -b $my_feature_branch dev

  5. 在$my_feature_branch上修改并将修改push到你的fork上

  6. 创建从你的fork的$my_feature_branch分支到主项目的dev分支的[Pull Request] - 在此点击compare across forks,选择需要的fork和branch创建PR

  7. 等待review, 需要继续改进,或者被Merge!

在提交代码的时候,请遵守以下规则,以提高代码质量:

  • 使用flake8检查你的代码,确保没有error和warning。在项目根目录下运行flake8即可。

其他内容

版权说明

MIT

More Repositories

1

vnpy.github.io

vn.py项目的网站
HTML
183
star
2

vnpy_ctastrategy

VeighNa框架的CTA策略模块
Python
96
star
3

vnpy_ctp

VeighNa框架的CTP交易接口
C++
96
star
4

vnpy_ctabacktester

VeighNa框架的CTA回测模块
Python
50
star
5

vnpy_webtrader

VeighNa框架的Web端管理服务器
Python
40
star
6

vnpy_portfoliostrategy

VeighNa框架的投资组合策略模块
Python
32
star
7

vnpy_tushare

VeighNa框架的Tushare数据服务接口
Python
31
star
8

vnpy_ib

VeighNa框架的InteractiveBrokers交易接口
Python
29
star
9

vnpy_optionmaster

VeighNa框架的期权波动率交易模块
Python
28
star
10

vnpy_rqdata

VeighNa框架的米筐RQData数据服务接口
Python
27
star
11

vnpy_spreadtrading

VeighNa框架的价差交易模块
Python
27
star
12

vnpy_algotrading

VeighNa框架的算法交易模块
Python
25
star
13

vnpy_ifind

VeighNa框架的同花顺iFinD数据服务接口
Python
21
star
14

vnpy_futu

VeighNa框架的富途证券交易接口
Python
21
star
15

vnpy_rest

VeighNa框架的REST API客户端
Python
18
star
16

vnpy_websocket

VeighNa框架的Websocket API客户端
Python
18
star
17

vnpy_datamanager

VeighNa框架的数据管理模块
Python
16
star
18

vnpy_hft

VeighNa框架的国泰君安统一交易网关接口
C++
16
star
19

vnpy_riskmanager

VeighNa框架的事前风控模块
Python
15
star
20

vnpy_portfoliomanager

VeighNa框架的交易组合管理模块
Python
15
star
21

vnpy_chartwizard

VeighNa框架的K线图表模块
Python
14
star
22

vnpy_tqsdk

VeighNa框架的天勤TQSDK数据服务接口
Python
14
star
23

vnpy_rpcservice

VeighNa框架的RPC服务应用和交易接口
Python
13
star
24

vnpy_scripttrader

VeighNa框架的脚本交易模块
Python
13
star
25

vnpy_xtp

VeighNa框架的XTP交易接口
C++
13
star
26

vnpy_lab

vn.py项目开发中的一些实验性代码
C++
12
star
27

vnpy_mysql

VeighNa框架的MySQL数据库接口
Python
12
star
28

vnpy_tora

VeighNa框架的华鑫奇点柜台接口
C++
12
star
29

vnpy_tts

VeighNa框架的TTS交易接口(模拟CTP环境)
C++
12
star
30

vnpy_dolphindb

VeighNa框架的DolphinDB数据库接口
Python
11
star
31

vnpy_paperaccount

VeighNa框架的本地仿真交易模块
Python
11
star
32

vnpy_leveldb

VeighNa框架的LevelDB数据库接口
Python
11
star
33

vnpy_arctic

VeighNa框架的Arctic数据库管理器
Python
10
star
34

vnpy_influxdb

VeighNa框架的InfluxDB数据库接口
Python
10
star
35

vnpy_ctptest

vn.py框架的CTP穿透式测试交易接口
C++
10
star
36

vnpy_datarecorder

VeighNa框架的行情录制模块
Python
10
star
37

vnpy_mongodb

VeighNa框架的MongoDB数据库接口
Python
10
star
38

vnpy_uft

VeighNa框架的恒生UFT接口
C++
9
star
39

vnpy_wind

VeighNa框架的万得Wind数据服务接口
Python
9
star
40

vnpy_postgresql

VeighNa框架的PostgreSQL数据库接口
Python
9
star
41

code_demo

源码解析小班课
Python
9
star
42

vnpy_excelrtd

VeighNa框架的Excel RTD应用模块
Python
8
star
43

vnpy_timescaledb

VeighNa框架的TimescaleDB数据库接口
Python
8
star
44

vnpy_rohon

VeighNa框架的融航资管交易接口
C++
8
star
45

vnpy_udata

VeighNa框架的恒生UData数据服务接口
Python
8
star
46

vnpy_mini

VeighNa框架的CTP MINI交易接口
C++
8
star
47

vnpy_taos

VeighNa框架的TDengine数据库接口
Python
8
star
48

vnpy_okex

vn.py框架的OKEX交易接口
Python
7
star
49

vnpy_emt

VeighNa框架的东财证券EMT极速柜台接口
C++
7
star
50

vnpy_uf

vn.py框架的恒生UFX交易接口
Python
7
star
51

vnpy_sqlite

VeighNa框架的SQLite数据库接口
Python
7
star
52

vnpy_ost

VeighNa框架的东方证券OST交易接口
C++
7
star
53

vnpy_jees

VeighNa框架的杰宜斯资管接口
C++
5
star
54

vnpy_sopt

VeighNa框架的CTP期权(ETF)交易接口
C++
5
star
55

new_demo

源码解析小班课代码演示
Python
5
star
56

vnpy_gm

VeighNa框架的掘金仿真交易接口
Python
5
star
57

vnpy_tap

VeighNa框架的易盛外盘交易接口
C++
5
star
58

vnpy_hx

VeighNa框架的火象仿真接口
Python
5
star
59

vnpy_da

VeighNa框架的直达期货交易接口
C++
5
star
60

vnpy_femas

VeighNa框架的飞马柜台交易接口
C++
5
star
61

vnpy_hxsec

华兴证券定制版VeighNa量化平台
Python
5
star
62

vnpy_tinysoft

VeighNa框架的天软数据服务接口
Python
5
star
63

vnpy_hts

VeighNa框架的顶点HTS交易接口
C++
4
star
64

vnpy_esunny

VeighNa框架的易盛交易接口
C++
4
star
65

vnpy_script

Python
4
star
66

vnpy_sqlserver

Python
4
star
67

vnpy_oracle

Python
4
star
68

vnpy_nsq

VeighNa框架的恒生NSQ极速行情接口
C++
4
star
69

vnpy_ksgold

VeighNa框架的金仕达黄金TD交易接口
C++
4
star
70

vnpy_binance

vn.py框架的币安交易接口
Python
3
star
71

vnpy_comstar

VeighNa框架的ComStar交易接口
Python
3
star
72

vnpy_ust

VeighNa框架的恒生UST极速柜台接口
C++
3
star
73

vnpy_sec

VeighNa框架的飞创ETF期权交易接口
C++
3
star
74

vnpy_sgit

VeighNa框架的飞鼠交易接口
C++
3
star
75

vnpy_xt

VeighNa框架的迅投数据服务接口
Python
3
star
76

vnpy_sopttest

VeighNa框架的CTP期权接口
C++
2
star
77

vnpy_coinbase

vn.py框架的Coinbase交易接口
Python
2
star
78

vnpy_dydx

vn.py框架的dYdX交易接口
Python
2
star
79

vnpy_ftx

vn.py框架的FTX交易接口
Python
2
star
80

vnpy_bybit

vn.py框架的Bybit交易接口
Python
2
star
81

veighna_strategy

Elite策略库
Jupyter Notebook
2
star
82

vnpy_bitfinex

vn.py框架的Bitfinex交易接口
Python
2
star
83

vnpy_nhtd

VeighNa框架的南华期货NHTD交易接口
C++
1
star
84

vnpy_huobi

vn.py框架的火币交易接口
Python
1
star