vn.py量化社区
By Traders, For Traders.
Member
加入于:
帖子: 29
声望: 0

最近在看vnpy的源码,自己在pycharm上也调试了一段时间,不得不说多线程程序调试好难。。
有几个问题:
1,ctp推送的行情是带有时间戳的,但是这个时间戳究竟是电脑上的实际时间,还是交易所推送过来的时间,因为通达信看盘软件里夜盘的时间其实是第二个交易日的日期
2,写了一段代码从通达信的lday文件中读取一分钟数据到csv文件,里面夜盘的时间也是第二个交易日的日期,文件截图如下。我在VNstation--数据管理--导入数据是可以正常导入的,但是我看了下策略初始化的时候load(10)里面的逻辑是获取当下时间减去10天作为起始日期导入10天的交易数据,以日期为索引顺序排序的,这样的话时间序列就会混乱,有没有办法能解决这个问题
3,TickData类是怎么样初始化的?我在ctp_gateway.py文件里找到一个函数(def onRtnDepthMarketData(self, data: dict):)是用于初始化TickData类的,但是没找到他是在什么时候被调用的
4,每一秒钟实例化的计时器对象Event(EVENT_TIMER),put到事件引擎的queue队列里的目的是干嘛用的,因为这个事件没有注册相关的方法,按照交易逻辑它只是不断的put到队列里面,好像并不会对交易产生什么影响

description

Member
avatar
加入于:
帖子: 736
声望: 35
  1. 是ctp推过来的时间用中国时区localize后加上了时区信息;
  2. 那只能自己处理一下数据再导入了;
  3. 这是个回调函数,不需要用户主动调用;
  4. 在ctp接口init_query函数里用来查询position和account了
Member
加入于:
帖子: 29
声望: 0

xiaohe wrote:

  1. 是ctp推过来的时间用中国时区localize后加上了时区信息;
  2. 那只能自己处理一下数据再导入了;
  3. 这是个回调函数,不需要用户主动调用;
  4. 在ctp接口init_query函数里用来查询position和account了

1,也就是所用来初始化策略所用的K线的时间就是中国的时间,既电脑上的时间(如果电脑时间准确的话),那行情记录记录的时间也是电脑上的时间,而不是第二个交易日的日期?
2,处理数据再导入其实是有难度的,因为要考虑到周末以及假期等非交易日,我的想法是重写load(10)的逻辑,导入数据库时不对行情进行排序,然后用取到的数据利用下标进行切片,从后往前数十个交易日
3,那这个回调函数实际是在哪里,在什么时候被调用的呢,看名字其实是知道他是回调函数,但是找遍项目我就是没找到他何时被调用的
4,谢谢

Member
avatar
加入于:
帖子: 736
声望: 35
  1. 是的;
  2. 可以自己尝试;
  3. 可参考https://www.vnpy.com/forum/topic/1011-ctpfeng-zhuang-guo-cheng-ji-lu-er?page=1#pid3704
© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3