@@ -102,10 +102,62 @@ <h1>vn.py</h1>
102102 < div class ="row ">
103103 < div class ="col-sm-9 ">
104104
105+ < article >
106+ < h2 > < a href ="/trader-tutorial-3.html "> vn.trader使用教程系列3-策略算法</ a > </ h2 >
107+ < div class ="summary "> < p > 原创文章,转载请注明出处:用Python的交易员</ p >
108+ < h2 > 风控模块</ h2 >
109+ < p > < img alt ="enter image description here " src ="http://7x2w1m.com1.z0.glb.clouddn.com/%E9%A3%8E%E9%99%A9%E7%AE%A1%E7%90%86.JPG " /> </ p >
110+ < p > 点击菜单栏的功能->风险管理后,可以打开如上图所示的界面。风控模块主要提供的是针对高频策略和短周期CTA策略的事前风控功能,防止由于错误的算法逻辑导致类似光大乌龙指的事件(就算亏不了几十亿,一下子把账户亏掉一半也是很痛苦的...)。</ p >
111+ < p > < strong > 开关</ strong > </ p >
112+ < p > 工作状态按钮用于控制风控模块的运行状态。处于“运行中”状态时,每笔委托在发出前会执行模块中定义好的多个风控条件检查,全部符合条件(参考下文的详细介绍)才能正常通过,只要有一条不符合该委托都会被拒绝,并且会在日志中输出具体的风控信息。处于“未启动”状态时,则会忽略所有的风控检查,允许委托直接发出。</ p >
113+ < p > < strong > 流控</ strong > </ p >
114+ < p > 流控主要控制的是单位时间内允许发出的最大的委托笔数,图中所示的限制是每1秒允许最多发出4笔委托,如果发送第5笔就会被拒绝,从而防止某些成交触发的交易信号由于逻辑错误被重复触发,在1秒内发出几十笔的情况。</ p >
115+ < p > 清空流控计数按钮可以把当前的流控计数清0。</ p >
116+ < p > < strong > 单笔委托</ strong > </ p >
117+ < p > 单笔委托上限比较容易理解,控制的是每一笔委托允许的最大合约手数,防止由于逻辑或者参数设置错误导致开仓太多合约的风险。</ p >
118+ < p > < strong > 总成交</ strong > </ p >
119+ < p > 总成交上限控制的是每日允许的总成交的合约数量(不是成交笔数),针对的是无人值守的情况下,策略算法出现逻辑错误开始频繁的买卖(比如每秒开多1手,再平多1手,不断重复),导致在手续费和买卖价差上快速亏损的情况。</ p >
120+ < p > 清空总成交技术按钮可以把当前的总成交技术清0。</ p >
121+ < p > < strong > 活动订单</ strong > </ p >
122+ < p > 活动订单上限限制的是当前系统内所有的未成交和部分成交的委托数量 ...</ p >
123+ < a class ="btn btn-default btn-xs " href ="/trader-tutorial-3.html "> more ...</ a >
124+ </ div >
125+ </ article >
126+ < hr />
127+ < article >
128+ < h2 > < a href ="/trader-tutorial-2.html "> vn.trader使用教程系列2-基础交易</ a > </ h2 >
129+ < div class ="summary "> < p > 原创文章,转载请注明出处:用Python的交易员</ p >
130+ < h2 > 窗口组件</ h2 >
131+ < p > < img alt ="主窗口 " src ="http://7x2w1m.com1.z0.glb.clouddn.com/%E4%B8%BB%E7%AA%97%E5%8F%A3.JPG " /> </ p >
132+ < p > 双击vn.trader文件夹下的vtMain.py后,会看到以上的程序主窗口,无法双击的用户一般是Anaconda安装时的.py文件打开方式问题,右键vtMain.py后->打开方式->选择Anaconda文件夹下的python.exe后就可以打开。</ p >
133+ < p > 在上一篇教程中设置好CTP接口的帐号密码等信息后,点击菜单上的系统->连接CTP即可连接到CTP柜台。算法交易等相关的功能会涉及数据库相关的操作,点击系统->连接数据库后vn.trader会自动连接上MongoDB数据库(需要将MongoDB注册为系统服务)。</ p >
134+ < p > 窗口中间部分的组件均可以随意改变位置,也可以拖动变为顶层悬浮窗口,正常退出(点击右上方的X按钮)后会自动保存当前的窗口设置。最下方的状态栏显示了当前的CPU和内存使用率,便于监控当前的系统资源占用情况。</ p >
135+ < p > 各组件的功能如下:</ p >
136+ < ul >
137+ < li >
138+ < p > 交易:发送和撤销交易委托、订阅行情等(参考下一章节)</ p >
139+ </ li >
140+ < li >
141+ < p > 行情:显示行情Tick数据推送</ p >
142+ </ li >
143+ < li >
144+ < p > 委托:显示委托回报相关的数据推送(注意视乎接口不同,大部分失败的委托并不会显示)</ p >
145+ </ li >
146+ < li >
147+ < p > 成交:显示成交相关的数据推送</ p >
148+ </ li >
149+ < li >
150+ < p > 持仓:显示持仓查询的数据结果(采用轮询查询的方式,非实时)</ p >
151+ </ li >
152+ < li >
153+ < p > 资金:显示账户资金查询的数据结果(采用轮询查询的方式 ...</ p > </ li > </ ul >
154+ < a class ="btn btn-default btn-xs " href ="/trader-tutorial-2.html "> more ...</ a >
155+ </ div >
156+ </ article >
157+ < hr />
105158 < article >
106159 < h2 > < a href ="/trader-tutorial-1.html "> vn.trader使用教程系列1-安装和配置</ a > </ h2 >
107160 < div class ="summary "> < p > 原创文章,转载请注明出处:用Python的交易员</ p >
108- < h1 > vn.trader使用教程系列1-安装和配置</ h1 >
109161< p > 2016年已经快要过去一半,目前vn.py项目的交易平台vn.trader已经基本定型,在发布v1.0以前不再会有新的功能模块添加,接下来的时间将会主要集中精力在修复一些小bug方面,同时针对新用户推出这个《vn.trader使用教程系列》,帮助大家更快上手使用。</ p >
110162< h2 > 安装运行环境</ h2 >
111163< p > 和大多数商业软件的傻瓜式一路“下一步”的安装方法不同,vn.trader运行环境的安装需要用户自行操作的地方较多:Python运行时环境、各项插件、数据库等等。</ p >
@@ -121,7 +173,10 @@ <h2>安装运行环境</h2>
121173< p > 安装< a href ="http://www.mongodb.org/downloads#production "> MongoDB</ a > :下载Windows 64-bit 2008 R2+版本</ p >
122174</ li >
123175< li >
124- < p > 安装pymongo:在cmd中运行pip install ...</ p > </ li > </ ol >
176+ < p > 安装pymongo:在cmd中运行pip install pymongo</ p >
177+ </ li >
178+ < li >
179+ < p > 参考 ...</ p > </ li > </ ol >
125180 < a class ="btn btn-default btn-xs " href ="/trader-tutorial-1.html "> more ...</ a >
126181 </ div >
127182 </ article >
@@ -339,85 +394,6 @@ <h3>构造函数</h3>
339394 </ div >
340395 </ article >
341396 < hr />
342- < article >
343- < h2 > < a href ="/basic-tutorial-5.html "> Python量化交易平台开发教程系列5-底层接口对接</ a > </ h2 >
344- < div class ="summary "> < p > 原创文章,转载请注明出处:用Python的交易员</ p >
345- < h2 > 前言</ h2 >
346- < p > 从本篇教程开始,所有的开发都会在Python环境中进行(谢天谢地可以和C++说再见了)。</ p >
347- < p > < strong > 通常情况下,一个交易程序的架构会由以下三个部分组成:</ strong > </ p >
348- < ul >
349- < li >
350- < p > 底层接口:负责对接行情和交易API,将数据推送到系统核心中,以及发送指令(下单、数据请求等)</ p >
351- </ li >
352- < li >
353- < p > 中层引擎:用于整合程序中的各个组件(包括底层接口、数据库接口等等)到一个对象中,便于顶层UI调用</ p >
354- </ li >
355- < li >
356- < p > 顶层GUI:用于显示数据和调用中层引擎暴露的主动函数,实现各项具体功能</ p >
357- </ li >
358- </ ul >
359- < p > < img alt ="AlgoTrader架构 " src ="http://7x2w1m.com1.z0.glb.clouddn.com/%E6%95%99%E7%A8%8B5algotrader_%E6%9E%84%E6%9E%B6.png " /> </ p >
360- < p > < strong > 上面这张图展示的是国外的一款开源交易平台AlgoTrader的架构:</ strong > </ p >
361- < ul >
362- < li >
363- < p > 两边的Adapters代表的是底层接口(左边数据,右边交易)</ p >
364- </ li >
365- < li >
366- < p > 红色圆柱形中包括的是中层引擎架构,事件驱动方面使用了Esper复杂事件处理(CEP)引擎,同时内置了一些常用的功能引擎,如期权定价引擎、外汇对冲模块、投资组合管理模块等</ p >
367- </ li >
368- < li >
369- < p > 上方的Strategy1、2等代表的是顶层应用(算法策略、GUI界面等),通过调用中层引擎的功能来实现用户所需的业务</ p >
370- </ li >
371- </ ul >
372- < p > < strong > vn.py和AlgoTrader的比较:</ strong > </ p >
373- < p > 这里对两个项目做一个简单的比较。</ p >
374- < p > vn.py优势:</ p >
375- < ul >
376- < li >
377- < p > 语言易用:Java语言比Python啰嗦</ p >
378- </ li >
379- < li >
380- < p > 架构简洁 ...</ p > </ li > </ ul >
381- < a class ="btn btn-default btn-xs " href ="/basic-tutorial-5.html "> more ...</ a >
382- </ div >
383- </ article >
384- < hr />
385- < article >
386- < h2 > < a href ="/blog-20150420.html "> 2015/4/20 项目开发日志</ a > </ h2 >
387- < div class ="summary "> < h2 > 目前项目状态</ h2 >
388- < p > 差不多一个多月的时间,完成了CTP API的vn.ctp封装,以及用于展示如何使用vn.py框架开发的vn.demo,两者均已发布到github上。</ p >
389- < p > 接下来将会发布几篇和vn.demo相关的教程。</ p >
390- < h2 > vn.demo介绍</ h2 >
391- < p > 该demo主要用于展示如何使用vn.py框架开发交易平台,使用了vn.event和vn.lts模块。</ p >
392- < p > < img alt ="enter image description here " src ="http://7x2w1m.com1.z0.glb.clouddn.com/%E6%95%99%E7%A8%8B4vndemo.jpg " /> </ p >
393- < h2 > 如何使用</ h2 >
394- < p > 常规用户可以直接运行exe文件夹下的demoMain.exe。</ p >
395- < p > 对开发有兴趣的用户需要根据vnpy.org的教程3安装相关的开发环境,然后通过demoMain.py和demoMain.pyw(无cmd界面)运行。</ p >
396- < h2 > 实现功能</ h2 >
397- < p > demo的实现参考了盈佳和尔易的LTS交易平台,功能如下:</ p >
398- < ol >
399- < li >
400- < p > 行情、持仓、账户、成交、报单的监控</ p >
401- </ li >
402- < li >
403- < p > 平台的日志记录</ p >
404- </ li >
405- < li >
406- < p > 下单交易,实现了LTS提供的所有订单类型和交易类型</ p >
407- </ li >
408- < li >
409- < p > 双击报单监控中的单元格撤单,以及下单交易组件一键全撤</ p >
410- </ li >
411- </ ol >
412- < h2 > 文件说明</ h2 >
413- < ul >
414- < li > demoApi.py主要包含了程序的底层接口,对vn.lts中的API进行了简化封装</ li >
415- < li > demoEngine.py主要包含了程序的中间层,负责调用底层接口</ li >
416- < li > demoUi ...</ li > </ ul >
417- < a class ="btn btn-default btn-xs " href ="/blog-20150420.html "> more ...</ a >
418- </ div >
419- </ article >
420- < hr />
421397
422398 < ul class ="pagination ">
423399 < li class ="prev disabled "> < a href ="# "> «</ a > </ li >
0 commit comments