【发布时间】:2016-05-11 09:33:12
【问题描述】:
我正在使用交易工具箱建立与 IB TWS 的连接。一般来说,API 工作正常,我的代码执行我的意图,例如检索实时数据和执行订单。
我现在想做的是在 for-循环中执行我的代码块(以运行多种策略),但是一旦我尝试在 @ 中执行代码987654323@ 循环,代码似乎陷入了无限循环,我只能通过关闭 MATLAB 来打破它(即使是 CTRL + c ,在这种情况下不会成功)。
然后我的命令窗口会快速显示IB 错误消息,例如
Cannot unregister 'xxx',
其中xxx是各种IB函数,如tickPrice、tickData等
奇怪的是,当我手动突出显示代码并运行它(使用 F9 )时,一切都像魅力一样。
根据我的研究,这似乎与处理 ib 连接的方式有关。我在for 循环的开头(在它内部)打开ib 连接,然后关闭它并在循环结束时(也在循环内部)。
我已经尝试在“关闭”命令后暂停执行 1-2 秒,以确保有足够的时间正确关闭连接,但没有任何效果。
任何人都可以在这里帮助我或者对如何解决这个问题有想法吗?
【问题讨论】:
-
您可能已经注意到,StackOverflow 鼓励使用基于 MCVE 的问题。您的问题需要重现代码,以确认问题的根本原因。如果没有 MCVE,很难从空中“找到”任何答案,但反之亦然,问题隔离和回归代码单元测试只会导致结果。希望您能很快找到针对您观察到的问题的良好建议。 MCVE 在这两个方面都有很大帮助。 无论如何,享受成为这个伟大知识社区的积极贡献者吧!
-
事实上,盈透证券的条款和条件可能会对阻止“密集”重新连接构成政策限制。通常,代理端连接通信网关看门人不喜欢频繁建立/关闭/重新建立连接,因为这可能会在通信网关上引入高处理开销,并且还可能表明客户端软件组件的某些错误行为。 简单地说,“不要光脚拍蛇”(为什么会“走进狮子窝”,不是吗?)
标签: matlab for-loop algorithmic-trading