私はTrading Toolboxを使用して、IB TWS
への接続を確立しています。一般に、APIは正常に動作し、コードはリアルタイムデータを取得して注文を実行するなどの目的を実行します。MATLAB Trading Toolbox:forループでIBコードがスタックするのはなぜですか?
私が今やりたいこと(複数の戦略を介して実行するために)for
-loopに私のコードブロックを実行しますが、できるだけ早く私はfor
ループ内のコードを実行しようとすると、コードがに表示されています無限ループに詰まることがあります。これは、MATLAB
(さらにCTRL
+ c
でも、この場合はトリックは行いません)。
マイコマンドウィンドウは、その後急速に
として
Cannot unregister 'xxx'
、XXXは、tickPrice
、tickData
など
IB
機能、種々のある等
IB
エラーメッセージを表示します奇妙なことは、私が手動でコードを強調表示して実行すると(F9)、すべてが魅力のように機能します。
私の研究からは、接続が処理される方法と関係があるように見えます。ib
ib
接続をfor
ループの先頭(その内側)に開き、それを閉じ、ループの終わり(ループ内も)を閉じます。
"close"コマンドの後に1〜2秒間実行を一時停止しようとしましたが、接続を正しく閉じるのに十分な時間を確保しますが、効果はありません。
誰でも私にここで助けてもらえますか、この問題に取り組む方法についてのアイデアはありますか?
既にお気づきかもしれませんが、そのStackOverflowはMCVEベースの質問を使用することをお勧めします。あなたの問題には、問題の根本的な原因を確認するためにコードを再現する必要があります。 MCVEなしでは、空気からの答えを「見つける」ことは困難ですが、問題の分離と回帰的なコードユニットのテストは、単に結果につながります。あなたの観察された問題の良い&すぐにアドバイスを見つけることを願っています。 MCVEはこれらの両方の方向で多くのことを助けます。 ** – user3666197
インタラクティブブローカーの利用規約は、「集中的な」再接続をブロックするためのポリシー上の制限を課す可能性があります。通常、ブローカ側の接続通信ゲートウェイゲートキーパーは、接続の頻繁なセットアップ/クローズ/再確立を好まない。これは、通信ゲートウェイに高い処理オーバーヘッドをもたらし、クライアント側のソフトウェアコンポーネントの誤った動作を通知する可能性があるからである。 **単に「裸の足で蛇をむかつけてはいけません」**(なぜ「獅子の洞窟に足を踏み入れるだろう」というのですか?) – user3666197