报错找不到合约 ,试了各种办法,合约代码的书写方式和规则 上是一样的,不知道为什么,具体如下:
D329ethStrategy开始执行初始化
策略初始化
行情订阅失败,找不到合约EUR-USD-CASH.IDEALPRO
,no-ui,无界面模式下运行的
报错找不到合约 ,试了各种办法,合约代码的书写方式和规则 上是一样的,不知道为什么,具体如下:
D329ethStrategy开始执行初始化
策略初始化
行情订阅失败,找不到合约EUR-USD-CASH.IDEALPRO
,no-ui,无界面模式下运行的
具体合约 格式到底要怎么写?比如 CME交易所的白银,要怎么写?
使用命令行试图去获得当前 全部合约 get_all_contracts也是没有返回值的,没报错但返回为空,
from vnpy.app.script_trader import init_cli_trading
from vnpy.gateway.ib import IbGateway
from vnpy.trader.utility import load_json
setting = load_json("connect_ib.json")
engine = init_cli_trading([IbGateway])
engine.connect_gateway(setting, "IB")
engine.get_all_contracts(use_df=True)
炼数成金 wrote:
具体合约 格式到底要怎么写?比如 CME交易所的白银,要怎么写?
都试过了,主要是单个的也显示 找不到合约
IB接口与其他接口不同,请先参照接口文件示例的规则,先订阅再查询,才能查询到合约信息
现在是IB的已经可以在界面下查询 到合约 和行情,但使用无界面的却总报错说 找不到合约 ,试过了自定义的去订阅都不行,只有界面自带的可以但生产环境中linux系统
如果没有修改no_ui的代码的话,请附上图形界面订阅成功和无界面订阅报错的截图。
如果修改了no_ui的代码,请把no_ui的代码也贴一下
xiaohe wrote:
如果没有修改no_ui的代码的话,请附上图形界面订阅成功和无界面订阅报错的截图。
如果修改了no_ui的代码,请把no_ui的代码也贴一下
是这样的,我使用 get_all_contracts 来查询 所有合约 ,只显示了一个合约 spy-usd-stk,只有这一个品种可以正常交易 和使用,其他品种都显示 找不到合约 ,但是在有界面那边是可以都查到的,虽然 只能查单个的,
req1 = SubscribeRequest("EUR-USD-CASH",Exchange.IDEALPRO)
engine.main_engine.subscribe(req1,"IB")
xiaohe wrote:
如果没有修改no_ui的代码的话,请附上图形界面订阅成功和无界面订阅报错的截图。
如果修改了no_ui的代码,请把no_ui的代码也贴一下
找到原因了,就是,要想在no-ui下找到合约 之前,必须 先手工订阅一下那个合约 ,使用以下代码:
from vnpy.trader.constant import Exchange
from vnpy.trader.object import SubscribeRequest
from vnpy.app.script_trader import init_cli_trading
from vnpy.gateway.ib import IbGateway
from vnpy.trader.utility import load_json
setting = load_json("connect_ib.json")
engine = init_cli_trading([IbGateway])
engine.connect_gateway(setting, "IB")
engine.get_all_contracts(use_df=True)
engine.get_all_accounts(use_df=True)
req1 = SubscribeRequest("EUR-USD-CASH",Exchange.IDEALPRO)
engine.main_engine.subscribe(req1,"IB")
使用以上代码是可以查到,查到了之后,再使用 no-ui的脚本运行就不报‘找不到合约 ’错误了,但问题是如何实现全自动的呢,不能所有需要的品种都手工先查询一遍
ib和别的接口不同,需要订阅合约才能找到合约信息