安装vnpy2.0后,无法订阅大商所和郑商所的标准套利合约,如SPD SR905&SR909,在交易面板输入代码回车没有反应,在合约查询中也查询不到相关合约。但是我在交易面板输入完相关信息,点委托按钮后,是可以进行委托下单的,就是没法标准套利合约订阅行情。
我用的行情、交易CTP服务器地址是从快期上查询来的,在快期上可以看到标准套利合约行情,也可以交易。
之前在vnpy1.x版本中是可以订阅套利合约行情的的,为什么在vnpy2.0就不行了呢?
安装vnpy2.0后,无法订阅大商所和郑商所的标准套利合约,如SPD SR905&SR909,在交易面板输入代码回车没有反应,在合约查询中也查询不到相关合约。但是我在交易面板输入完相关信息,点委托按钮后,是可以进行委托下单的,就是没法标准套利合约订阅行情。
我用的行情、交易CTP服务器地址是从快期上查询来的,在快期上可以看到标准套利合约行情,也可以交易。
之前在vnpy1.x版本中是可以订阅套利合约行情的的,为什么在vnpy2.0就不行了呢?
查了下代码是我们之前的版本过滤掉了套利合约,会在下个版本中修复。
请问管理员大大,方便说下是在哪里做了过滤么?我想在1.8.1的版本里订阅标准套利合约,不知道如何修改哦
2.0.6是在onRspQryInstrument里面做的过滤,1.8.1就不确定了
再冒昧请问群主大大,是在onRspQryInstrument的哪里做了限制么?我编程基础薄弱,研究了好久也没看出来`def onRspQryInstrument(self, data: dict, error: dict, reqid: int, last: bool):
"""
Callback of instrument query.
"""
product = PRODUCT_CTP2VT.get(data["ProductClass"], None)
if product:
contract = ContractData(
symbol=data["InstrumentID"],
exchange=EXCHANGE_CTP2VT[data["ExchangeID"]],
name=data["InstrumentName"],
product=product,
size=data["VolumeMultiple"],
pricetick=data["PriceTick"],
gateway_name=self.gateway_name
)
# For option only
if contract.product == Product.OPTION:
contract.option_underlying = data["UnderlyingInstrID"],
contract.option_type = OPTIONTYPE_CTP2VT.get(data["OptionsType"], None),
contract.option_strike = data["StrikePrice"],
contract.option_expiry = datetime.strptime(data["ExpireDate"], "%Y%m%d"),
self.gateway.on_contract(contract)
symbol_exchange_map[contract.symbol] = contract.exchange
symbol_name_map[contract.symbol] = contract.name
symbol_size_map[contract.symbol] = contract.size
if last:
self.gateway.write_log("合约信息查询成功")
for data in self.order_data:
self.onRtnOrder(data)
self.order_data.clear()
for data in self.trade_data:
self.onRtnTrade(data)
self.trade_data.clear()`
主要的限制过滤代码是这个两行:
product = PRODUCT_CTP2VT.get(data["ProductClass"], None)
if product:
如果这个ProductClass的字段,在PRODUCT_CTP2VT中没有定义,就会自动过滤掉了
谢谢版主大大,我已将过滤去除,可是在行情列表里无法正常显示SP m2001&m2005的最新价及开高低收等数据,只有买卖盘数据是正常的,左边交易部分的最新价看着是1.79啥的数据,不知是何原因,望大大赐教。ps:我是早1.9.X的版本下做的
因为套利合约就没有OHLCV的数据
非常感谢大大回复,原来是这个原因,连最新价都没有么?那么是否可以用CTA策略模板去交易套利合约呢?
现在版本已经没有套利合约过滤了