VeighNa量化社区
你的开源社区量化交易平台
Member
离线
13 帖子
声望: 0

没太理解文档中的解释:
“在于组合策略中需要对多合约同时下单交易,在回测时无法判断某一段K线内部每个合约委托成交的先后时间顺序,因此无法提供on_order和on_trade获取委托成交推送,而只能在每次on_bars回调时通过get_pos和get_order来进行相关的状态查询。”
为何需要判断委托成交的先后顺序??有没有大神给解释清楚一点?给个具体的例子?

我发现只要vt_symbols中有郑商所的合约就会有KeyError.
比如回测自带的PairTradingStrategy, 如果合约是['FG99.CZCE', 'RB99.SHFE'],会产生如下错误
试了其他几个交易所的组合没有这个问题,有没有朋友遇到同样问题?
description

简单的双均线策略,一个用ctastrategy模板写一个用portfoliostrategy写,但回测时都只用一个合约,应该得到完全一致的结果。
但是calculate_results()回来的统计结果并不一样

多合约引擎跑出来的是这样

description

单合约是这样

description

起始时间均为2019-5-1 -- 2020-5-1。注意两个结果中的turnover其实是一样的,但是在日期上错位了。请问这是不是两个引擎之一的编写有bug?

比如我要写一个基于5min bar的双合约策略。按照我对pair_trading_strategy示例的理解,要自己在on_bars()里面合成5min bar:

def on_bars(self, bars: Dict[str, BarData]):
    if (leg1_bar.datetime.minute + 1) % 5:
            return
    #合成5min bar
    #基于5min bar的策略逻辑
  1. 合成5min bar的部分相当于BarGenerator的update_bar()函数?这么理解正确么?
  2. 这样做实盘也可以么?还是在on_tick中也要做相应变动?

vn station回测app里可以直接点击下载数据。请问如果用脚本或notebook做回测该如何从rqdata下载数据?谢谢!

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】