作为量化开源框架,vn.py的一大好处在于自由度高,用户可以基于开放的源代码来专门实现自己特定的功能。对于常用的量化系统配置,VN Trader提供了全局配置工具方便用户直接在图形界面上进行修改。
进入VN Trader后,点击菜单栏上的【配置】按钮弹出【全局配置】窗口:
尽管参数看着挺多,但总体上可以分成以下5大类:
- GUI界面字体
- 日志输出
- 邮件通知
- 数据服务(RQData)
- 数据库
下面我们来对这5大类的配置进行详细说明。
GUI界面字体
- font.family:设置VN Trader整体的字体类型,除了默认的Arial,Courier New和System都是不错的选择。
font.size:设置VN Trader整体字体大小,需要根据自己显示器的实际分辨率效果进行修改,如下图中的15号字体。
日志输出
- 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后的效果:
日志文件则会根据启动VN Trader时的日期自动创建:
邮件通知
每天盘中自动化交易时,我们可能希望每有委托成交,能够收到实时的通知;或者若出现异常情况,如数据错误、连接断开等,也要通知一下。
vn.py内置了邮件引擎EmailEngine,只要进配置好邮箱的账号、密码、服务器等信息,后续即可调用MainEngine.send_email函数来非常方便的发送邮件通知。
在这里我们通过QQ邮箱进行演示:
- 在web上登录qq邮箱;
- 在登陆页面点击【设置】-> 【账户】;
- 下滑账户界面,找到【POP3/IMAP/SMTP服务】选项;
- 开启红色方框里面的2项服务,点击下方【生成授权码】;
- 记录下刚生成的授权码。
得到授权码后,回到VN Trader的邮件相关的配置:
- email.username:发送邮箱名,格式为xxxx@qq.com。
- email.password:即上面提到的授权码。
- email.sender:发送邮箱名,与email.username一致。
- email.receiver:接收邮箱的地址,如xxxx@outlook.com,或者也可以直接使用email.sender(自己发送邮件给自己)。
配置完成后,重启VN Trader,点击菜单栏【帮助】->【测试邮件】发送测试邮件,若能顺利收到,则说明邮件设置成功。
绑定微信
比起在手机上装邮箱客户端,使用微信来接受实时的消息通知,无疑要方便得多,而且只需要准备一个QQ邮箱:
- 打开手机微信,在【设置】->【账号与安全】->【更多安全设置】中绑定接受邮件的QQ号;
- 然后在【设置】->【通用】->【辅助功能】中开启QQ邮箱提醒服务;
最后将VN Trader的全局配置中email.receiver改成该QQ号对应的QQ邮箱即可实施在手机端接收vn.py监控消息了。
数据服务(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会自动创建。
- 其他字段留空即可。
MySQL
- database.driver:修改为mysql。
- database.database:需要先通过MySQL的客户端工具,创建一个新的数据库,数据库名称填入到这里的字段中(如vnpy_database)。注意:与MongoDB不同,若留空会报错。
- database.user和database.password可以在安装MySQL时候得到。
- database.host:同样一般使用localhost。
- database.port:MySQL的默认端口为3306;
PostgreSQL
和MySQL配置几乎一模一样,只需要将端口database.port改为5432:
2019年vn.py核心团队的最后一期小班课报名进行中!
两天共计10小时的密集提高课程
8套高端CTA策略源代码分享
DoubleChannel
KeltnerBandit
RsiMomentum
SuperTurtle
TrendThrust
Cinco
Cuatro
SuperCombo
动态风险仓位管理模型
策略内嵌复杂算法交易
详情请戳:第四期vn.py小班课上线:CTA策略开发!
了解更多知识,请关注vn.py社区公众号。