VeighNa增加按交易数统计回测结果
现在VeighNa交易是按日进行统计回测的,但是在之前的v1版本,是同时支持按日和按照交易数统计回测结果。通过借用之前版本的代码,可以获得按交易数统计回测结果,下图示例,其中红框的都是按交易统计获得数据,比如交易胜率就是盈利交易次数比总交易次数:代码改动,在cta_strategy.backtesting新增TradingResult类中,这里如果输入费率如果大于0.1,则费率按手数计算,小于按照
为回测加入按手数计算交易手续费用
现在VeighNa自带的回测引擎,只提供了按比率计算交易费用的功能。在国内期货中,有很多品种是按照手数计算费用,比如郑期所所有品种,大连和上海的部分品种。这里为回测加入按手数计算交易费用,比较常用做法是在加入一个新枚举(ENUM)参数“费率类型”,包括 按手数 按比率,然后在计算费率时候按照费率类型,来计算。改动比较多。这里倒是有个简单方法,通常按照比率都是在万几,而一手收费在几元。比如螺纹钢是万
VNPY利用邮件引擎,把参数优化结果作为附件发送给预定邮箱
一个简单的引用,分成两步,第一步增强邮件引擎,使得可以发送附件邮件,第二部在回测widget的里面加入一个新方法,在优化完成适合被调用。下面代码是加入EmailEngine,新增一个add_attch, 增强send_email,不是很优雅,不过不会对已有用到send_email的不会又太大影响。 def add_attch(self,msg
基于投入资金的CTA策略开平仓管理
VeighNa的默认的CTA策略开平仓管理是按照手数fixedSize管理,确定固定手数的时候往往要自己心里对应的策略投入资金,而且因为合约价格的变动和保证金率的改动,同样手数对应的资金量也不是统一的。而大多数时候,对于策略绩效和benchmark的对比,都是基于投入资金(Nominal Amount)来讲的,而且当策略数量很多时,也需要通过投入资金来做整体仓位管理,而不是粗略的手数估算。最后一个
使用metabase做分析报表工具分析整体策略绩效
之前使用vnpy自带的回测代码,和一些python自开发,可以分析单个策略绩效。但是如果对于多个策略和合约投资,想从多个维度,可以灵活的按照自定义特性来分析,还是需要一些专业工具。 一开始想使用一些python相关的,比如QuantStats,是一个非常好的策略绩效分析库,但是功能其实类似与vnpy自带,可以针对单个策略做全面分析,但是缺乏多维度,组合分析。 后来觉得还是使用专
使用向导界面 丰富细节的移仓助手
vntrader 自带的移仓助手相当不错,不过细节少了些。我结合实际使用,使用向导界面,在丰富了一些细节,在原理代码上做了一个新版移仓助手。第一页界面输入移仓合约后,跳出需要移仓的策略。这里可以通过打勾选择需要移仓的策略,如果策略不用移仓可以取消。这里增加了一些错误判断,比如目标合约不能是带移仓合约。第二页界面下一步后进入第二页界面,上面是统计策略持仓和账户实际持仓;如果不一致,则会报错;当然如果
利用保存的成交订单,生成实盘交易分析报表
利用之前文章写的保存成交order,借鉴vnpy已有的回测分析报表,生成一个实盘交易分析报表。截图如下。这里有个统计按钮,点击输出统计界面因为我的代码改动不少,直接拿来用估计不合适,只做参考。首先要自行修改database的代码,新增按照strategy名称,和时间段读取保存到数据的order,按照时许正向返回。读取出来是一个order的队列,下面代码可以放在cta_engine.py, 是把开仓
在·VNPY中按照CTA策略实例记录交易条目和损益
这个是一个常见需求,按照策略实例记录交易条目和损益。整体的损益可以通过第三方行情软件来分析,如果有多个CTA策略实例(策略-品种-参数组合实例),如何对每个策略实例记录交易条目和损益情况。下面代码是在vntrader 2.6 级别的实例代码,并不完全,因为改动比较多,这个仅仅是一个思路的示例。先简单介绍下思路,记录分为3个部分,一个是新建触发停止单对象加入触发价,首单价和成交均价信息,二个把完成的