作为量化开源框架,vn.py的一大好处在于自由度高,用户可以基于开放的源代码来专门实现自己特定的功能。对于常用的量化系统配置,VN Trader提供了全局配置工具方便用户直接在图形界面上进行修改。

 

进入VN Trader后,点击菜单栏上的【配置】按钮弹出【全局配置】窗口:

 

description
 

尽管参数看着挺多,但总体上可以分成以下5大类:

 

  • GUI界面字体
  • 日志输出
  • 邮件通知
  • 数据服务(RQData)
  • 数据库

 

下面我们来对这5大类的配置进行详细说明。

 

 

GUI界面字体

 

  • font.family:设置VN Trader整体的字体类型,除了默认的Arial,Courier New和System都是不错的选择。
  • font.size:设置VN Trader整体字体大小,需要根据自己显示器的实际分辨率效果进行修改,如下图中的15号字体。

     

description

 

 

日志输出

 

  • log.active:控制是否要启动LogEngine,默认为True。如果修改为False则后续几项设置都会失效,VN Trader在运行时无日志输出或是日志文件生成(可以降低部分系统延时)。
  • log.level:控制日志输出的级别,日志从轻到严重可以分成DEBUG、INFO、WARNING、ERROR、CRITICAL五个级别,分别对应10、20、30、40、50的整数值。数值低于设置值,它的日志信息将会被忽略。比如设置log.level=50,类似登录日志这种INFO级别不会输出到日志文件;若修改log.level=10,就会保存到日志文件中。如果需要全面的了解运行情况,可以选择设置为10,即除了DEBUG级别的日志信息都会输出。
  • log.console:console指的是终端,如Windows系统上的cmd和Powershell,以及Linux上的Terminal。当设置为True时,通过终端运行脚本来启动VN Trader,日志信息会输出在终端中;如果通过VN Station来直接启动VN Trader,则无console输出。
  • log.file:该参数用于控制是否要将日志输出到文件中,建议设置为True,否则无法记录生成的日志。

 

VN Trader的日志文件,默认位于运行时目录的.vntrader\log目录下,完整路径为:

 

C:\users\administrator.vntrader\log

 

其中administrator为当前Windows系统的登录用户名。

 

综合来说,如果想要记录更多的VN Trader系统运行细节信息,建议将level等级调低获取更多的信息,下面是开启Log.console和Log.File后的效果:

 
description

 

日志文件则会根据启动VN Trader时的日期自动创建:

 
description

 
 

邮件通知

 

每天盘中自动化交易时,我们可能希望每有委托成交,能够收到实时的通知;或者若出现异常情况,如数据错误、连接断开等,也要通知一下。

 

vn.py内置了邮件引擎EmailEngine,只要进配置好邮箱的账号、密码、服务器等信息,后续即可调用MainEngine.send_email函数来非常方便的发送邮件通知。

 

在这里我们通过QQ邮箱进行演示:

 

  1. 在web上登录qq邮箱;
  2. 在登陆页面点击【设置】-> 【账户】;
  3. 下滑账户界面,找到【POP3/IMAP/SMTP服务】选项;
  4. 开启红色方框里面的2项服务,点击下方【生成授权码】;
  5. 记录下刚生成的授权码。

 

description
 

得到授权码后,回到VN Trader的邮件相关的配置:
 

  • email.username:发送邮箱名,格式为xxxx@qq.com。
  • email.password:即上面提到的授权码。
  • email.sender:发送邮箱名,与email.username一致。
  • email.receiver:接收邮箱的地址,如xxxx@outlook.com,或者也可以直接使用email.sender(自己发送邮件给自己)。

 

配置完成后,重启VN Trader,点击菜单栏【帮助】->【测试邮件】发送测试邮件,若能顺利收到,则说明邮件设置成功。

 
 

绑定微信

 

比起在手机上装邮箱客户端,使用微信来接受实时的消息通知,无疑要方便得多,而且只需要准备一个QQ邮箱:
 

  1. 打开手机微信,在【设置】->【账号与安全】->【更多安全设置】中绑定接受邮件的QQ号;
  2. 然后在【设置】->【通用】->【辅助功能】中开启QQ邮箱提醒服务;
  3. 最后将VN Trader的全局配置中email.receiver改成该QQ号对应的QQ邮箱即可实施在手机端接收vn.py监控消息了。

     

description

 
 

数据服务(RQData)

 

RQData是目前国内期货和股票数据方面,性价最高的三方数据提供商之一。购买RQData后(或者申请试用账号),会获得了其license文件,只需将其中的内容填入以下字段即可:

 

  • rqdata.username:米筐登录账号;
  • rqdata.password:RQData的license。

     

(注意这里的username和password不是米筐官网登录用的账号和密码!)

 
 

数据库

 

vn.py目前支持4个常用数据库:

 

  • SQLite(默认)
  • MySQL
  • PostgreSQL
  • MongoDB

 

其中SQLite为vn.py的默认数据库,它的优势主要表现在2点:
 

  • 非常的轻量并且对外部依赖非常小;
  • 相比于mongodb或者mysql这种关系型数据库,不需要复杂的配置就能达到不错的性能要求。

 

当然,其他数据库在特定的场景下也都有着自己的优势,如:更快的加载速度、支持多用户同时访问等。改为使用其他数据库,首先需要准备完该数据库的服务器以及图形客户端,然后在VN Trader全局配置进行相关的全局配置。

 
 

SQLite

 
vn.py默认数据库,不需要修改任何配置。在第一次启动VN Trader时,程序会自动在用户目录下的.vntrader文件夹中生成database.db文件,后续所有相关的历史行情数据都会放在该文件中。

 

MongoDB

 

基础的配置只需要配置连接的数据库名称、主机名和端口号,至于用户登录信息和授权信息,可以留空。

 

  • database.driver:修改为mongodb。
  • database.host:使用数据库一般连接的都是localhost(即本机)。
  • database.port:默认使用的端口号是27017。
  • database.database:可以自行填入数据库的名称,即“mongodb”;也可以不填,MongoDB会自动创建。
  • 其他字段留空即可。

 

 
description

 

MySQL

 

  • database.driver:修改为mysql。
  • database.database:需要先通过MySQL的客户端工具,创建一个新的数据库,数据库名称填入到这里的字段中(如vnpy_database)。注意:与MongoDB不同,若留空会报错。
  • database.user和database.password可以在安装MySQL时候得到。
  • database.host:同样一般使用localhost。
  • database.port:MySQL的默认端口为3306;

 

description

 

PostgreSQL

 

和MySQL配置几乎一模一样,只需要将端口database.port改为5432:

 
description

 

2019年vn.py核心团队的最后一期小班课报名进行中!

两天共计10小时的密集提高课程

8套高端CTA策略源代码分享

DoubleChannel

KeltnerBandit

RsiMomentum

SuperTurtle

TrendThrust

Cinco

Cuatro

SuperCombo

动态风险仓位管理模型

策略内嵌复杂算法交易

详情请戳:第四期vn.py小班课上线:CTA策略开发!

 
了解更多知识,请关注vn.py社区公众号。
description