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

安装vnpy2.0后,无法订阅大商所和郑商所的标准套利合约,如SPD SR905&SR909,在交易面板输入代码回车没有反应,在合约查询中也查询不到相关合约。但是我在交易面板输入完相关信息,点委托按钮后,是可以进行委托下单的,就是没法标准套利合约订阅行情。
我用的行情、交易CTP服务器地址是从快期上查询来的,在快期上可以看到标准套利合约行情,也可以交易。
之前在vnpy1.x版本中是可以订阅套利合约行情的的,为什么在vnpy2.0就不行了呢?

Administrator
avatar
加入于:
帖子: 1441
声望: 63

查了下代码是我们之前的版本过滤掉了套利合约,会在下个版本中修复。

Member
加入于:
帖子: 6
声望: 0

请问管理员大大,方便说下是在哪里做了过滤么?我想在1.8.1的版本里订阅标准套利合约,不知道如何修改哦

Administrator
avatar
加入于:
帖子: 1441
声望: 63

2.0.6是在onRspQryInstrument里面做的过滤,1.8.1就不确定了

Member
加入于:
帖子: 6
声望: 0

再冒昧请问群主大大,是在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()`
Administrator
avatar
加入于:
帖子: 1441
声望: 63

主要的限制过滤代码是这个两行:

product = PRODUCT_CTP2VT.get(data["ProductClass"], None)
    if product:

如果这个ProductClass的字段,在PRODUCT_CTP2VT中没有定义,就会自动过滤掉了

Member
加入于:
帖子: 6
声望: 0

谢谢版主大大,我已将过滤去除,可是在行情列表里无法正常显示SP m2001&m2005的最新价及开高低收等数据,只有买卖盘数据是正常的,左边交易部分的最新价看着是1.79啥的数据,不知是何原因,望大大赐教。ps:我是早1.9.X的版本下做的

description

description

Administrator
avatar
加入于:
帖子: 1441
声望: 63

因为套利合约就没有OHLCV的数据

Member
加入于:
帖子: 6
声望: 0

非常感谢大大回复,原来是这个原因,连最新价都没有么?那么是否可以用CTA策略模板去交易套利合约呢?

Administrator
avatar
加入于:
帖子: 1441
声望: 63

爱交易 wrote:

非常感谢大大回复,原来是这个原因,连最新价都没有么?那么是否可以用CTA策略模板去交易套利合约呢?

不建议这么做,价差本质是均值回归的,用CTA跑效果不见得好

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3