VN.PY在2015年以前是属于一个外汇交易公司内部使用的框架,随着该公司员工的离职,也将公司产品重新包装之后发布到GITHUB上。VN.PY不仅包括了国内的股票、期货还封装了多个其他市场的框架。
主要偏重于全面,目前得到了很多量化初学者的关注。
VN.PY现在迎来了新的伙伴VirtualApi,通过VirtualApi对原生CTP接口的仿真和模拟,使得VNPY的回测更加简单易用。

可以这样说, VirtualApi对VNPY的回测功能方面是一次极大的升级和提高。

支持以下策略的TICK级回测

一、VN.PY模式匹配系统回测
识别价格的运行模式,然后按照其指定方向开仓。可以辅助使用各种技术指标,比如MACD,BOLL,double top等。

二、VN.PY突破系统回测
如果如果有一些明显的波动,价格就会突破(向上或者向下)。突破系统通常监控价格的正常波动幅度,在价格突破正常幅度的时候开仓。

比如期货交易中著名的4周规则就是使用这种方法,在价格高于最近4周的最高价格或者低于最近4周的最低价格的时候买入,在达到盈利目标或止损条件后卖出。

三、VN.PY趋势跟随交易系统回测
这是在高频交易被曝光前最流行也是最热门的交易系统类型。最早的趋势跟随交易策略成形于20世纪早期,主要利用移动平均线进行买入、持有、卖出。
趋势系统主要有摆动系统、当日交易系统、动能系统或者其他较快节奏的交易系统。**止损往往伴随着各种趋势交易系统,因为趋势交易系统的理念就是不断亏小钱以捕捉几次赢大钱的机会。因此,作为趋势交易投资者,你必须具有承受这些风险的能力,并且有足够多的资金去抵消这些交易损耗。
之后,由于有了计算机生成的开仓以及平仓信号,当今的趋势跟随系统更为完善和成熟。但是,无论怎样现代化,趋势跟随系统都会在某些市场情况下失效。众所周知,没有任何策略能够战胜所有市场。

趋势跟随系统盈利的假设是股票或者期货市场正在形成一个较强的上升或者下降趋势。通常意义下,我们认为较强的上升或者下降趋势是指价格沿着大于35度角的上升或者下降通道运行,并且回撤较小。比如在上升趋势中,调整幅度较小并且获利平仓盘不明显。

从历史数据来看,市场在30%—35%的时间内时处于趋势行情中。在趋势行情中,通常有某些因素导致投资者更为贪婪(在上升趋势中)或者更为恐惧(在下降趋势中)。投资者的这些极端情感和行为往往导致市场价格快速变化。趋势跟随系统就是利用这样的优势,往往能够在较短的时间内获得丰厚的利润。

为抓行情大趋势,交易研究者开发出了相应的趋势跟随系统。这些趋势跟随系统是很受交易者欢迎的,因为每一个交易者都希望简单、快速地赚到钱。那么趋势交易的劣势是什么呢?作为一个趋势交易者,你需要在趋势性强的市场或者是带有一定速度的投机市场中进行交易,振荡行情或者是无趋势的市场将会是这些交易者的噩梦。

如上所述,趋势交易系统的最大制约因素就是它只能应用于市场出现趋势时,尽管目前来看市场大概只有30%的时间处于趋势状态。如果交易者尝试将趋势系统应用于快速振荡行情中,那么他们一定会连续亏损直至退出。假设交易者不能认识到市场是否适合趋势交易,那么他们将会损失大量的金钱和时间。

四、VN.PY反趋势交易系统回测
是与市场的主流趋势、长期趋势相反交易的系统。**通常认为,最佳判定主流趋势的方法是利用周K线而不是利用日K线。反趋势顾名思义就是相反方向的策略。反趋势系统存在的历史已经超过几十年,但并未在中小投资者中流行开来,它被冷落是由于投资者的本性所导致的。

反趋势交易是在较短的时间周期或者中级时间周期做与主流趋势相反的交易。本质上,是在市场进入超卖或者超买状况下持有相反的头寸。

五、VN.PY缺口关闭系统回测
市场经常会出现跳空缺口,缺口迟早会被回补的,因此可以在缺口的反方向开仓。不同周期的缺口都存在交易机会的。

典型的交易规则是这样的,当价格低于前一个收盘价2%的时候买入;当价格上涨到前一个收盘价的时候或者在当天收盘的时候卖出。

六、VN.PY期差(spread)交易回测
2个合约价差偏离比较大的时候,可以买入一个并且卖出另一个,期望之后能回归正常的偏离值。典型的交易规则是这样的。以纳斯达克100和标准普尔500(SPY)为例,当和SPY偏离的比率比其10日平均值高于2个标准差的时候,买入,卖出SPY。2个标准差是常态分布的90%,因此其不会经常发生。
交易两个价格价格有一定联动性的品种在一定时期内的差价。**当两者偏离正常的价格关系的时候,可以开仓来预期其会回归正常关系。例如道琼斯指数和标准普尔指数通常有相同的趋势,或者是两个邻近国家的货币通常有相同的趋势。

七、VN.PY波动性系统回测
交易一系列价格发生的波动性,通常会拿其移动平均值作为标的。一个波动性交易的例子是交易和其移动品均值。

典型的交易规则是这样的,当价格低于其10日平均值1.5个标准差分的时候,买入。当价格回归到平均,目标利润达到或者止损位达到的时候卖出。

当然对高频交易是不适合的。

《Quicklib程序化交易框架www.quicklib.cn》
http://www.mdshare.cn/comm/topic/2750/
《开户中国期货低佣金开户》
《mdshare财经数据接口包》
《某python量化交易框架性能评测》
《QuicklibTrade A股行情接口,Level2接口》
python量化交易
《优秀量化资源导航》
《TradeApi A股程序化交易接口》
《酷操盘手期货跟单软件》