west

Results 15 issues of west

在服务器更新合约服务后,对应修改

集合竞价下单阶段下单,当撮合成交完成的那一笔行情导致撤单,此时撤单失败,只能等到该委托单成交之后才能处理新的调仓请求

避免因各个交易所之间的时间差导致一个交易所收盘时其他交易所的所有合约无法下单

如果在可交易时间段内,已订阅了未下市合约(则sim的 _current_datetime已更新到当前时间内),此时下单一个 trading_time 包含这段时间的已下市合约,就会被sim判定为 “在可交易时间段内”,然后撮合成交。 一个案例:在可交易时间段内下一个已经下市的期权合约(其标的合约未下市),sim中需要订阅其标的合约,则在收到标的合约第一条行情时 _current_datetime 更新到当前标的的行情时间,导致判定此期权在可交易时间段内而成交。

应该改为: int(秒级时间戳* 1e6)*1000

在收到某个交易时段的最后一笔行情时判断交易时间段,按照当前判断交易时间时的 “ 在行情时间上增加n毫秒” 的方案则无法正确判断。目前各测试了每个交易所的一个合约,只有郑商所是无小数情况

如: 在真实本地时间为13:27分启动程序,获取一个不活跃合约,其最后一笔行情时间为11:09,按照当前判断下单时间是否在交易时段的方案,会允许成交;如果程序等待21分钟之后,再发出委托单,此时真实时间为13:48,此时sim.py中估计的交易所时间则为11:30,造成不能成交的结果。 原因是从启动程序开始,获取的第一笔行情时间和实际交易时间有误差。暂时没有较好改进方案,暂时考虑之后由服务器返回实际交易时间。

原有规则:“ 如果即没有订阅 tick, 也没有订阅 k线或订阅的 k线周期大于分钟线, 则 TqBacktest 会自动订阅分钟线来生成 quote ” 新规则:如果即没有订阅 tick, 也没有订阅 k线, 则 TqBacktest 会自动订阅分钟线来生成 quote;如果订阅了 k线,则无论其周期是多少,按照这个K线来生成quote