こちらはインタラクティブブローカーズのAPI情報、Dmitry's TWS API FAQを日本語に訳したものです。元のウェブページの量が多すぎて閲覧しにくい&元サイトを翻訳にかけるとPCが固まるため、備忘録用に章ごとに分けて保存しています。
目次
このFAQについて
目的
TWS API を学び、より良く 、より使いやすく/理解しやすくしましょう。
このドキュメントはTWS API を学習するためのDmitry の個人的な試みであり、その内容の 99.9% は TWS API グループhttps://groups.io/g/twsapi からのものです。いくつかの質問と回答をトピックごとにグループ化した FAQ の形式で構造化してみました。
範囲
データ フロー、TWS API の特定の機能のトリック、制限事項、回避策、その他の一般レベルの情報に関する一般的な Q/A をすべて収集しようとしました。下位レベルの側面 (言語固有) では、主に C++ / Java 関連のトピックを集めましたが、Windows ソケット、ActiveX、CSharp、VB、または Excel 用の DDE などのトピックはあまり保存しませんでした。不足しているトピックを追加したいですか? ぜひご参加いただき、ご自身で追加してください。🙂
2014 年 12 月に、私は 2010 年 2 月 5 日前後のメッセージから始まるすべての履歴を掘り下げ (読み通し) 始めました。この FAQ は、すべての重要なトピックを追跡するための継続的な試みです。
免責事項
この FAQ はTWS API グループの議論のほんの一部を表しており 、決してそれを置き換えることを意図したものではありません。オンライン グループ アーカイブでさらに多くの回答を検索してください (ここで見つかるものよりも多くの回答があります)。
最新の IB API ドキュメントへのリンク
[A] by ジョシュ
2017 年 5 月 3 日水曜日:
新しいドキュメントはhttp://interactivebrokers.github.io/tws-api/にあります。
ところで。
ジョシュ
-また-
- - 転送メッセージ - -
日付: 2017 年 5 月 18 日(木) 17:29:38
送信者: jbeacomib < notification@github.com >
返信先: InteractiveBrokers/tws-api
宛先: InteractiveBrokers/tws-api < tws-api@noreply.github.com >
件名: gh tws-api] github コンテンツに関連する古い IB ドキュメント (#493)
最も頻繁に更新されるドキュメント
TWS のビルドと API バージョンに関する最新情報
Web サイト (API バージョン 9.72、9.73) にあるものは、
[Github]( http://interactivebrokers.github.io/tws-api/ )
古いドキュメントは、バージョン 9.71 用に作成されました。
TWS の API と以前のビルド。現在は更新されていません
Github ドキュメント サイトに置き換えられました。の
新しいドキュメントでは、最大 32 の API アプリケーションが正しいとされています。
TWS または IB ゲートウェイの 1 つのインスタンスに接続できるようになりました。
ただし、実際にはこの制限に到達することはほとんどありません。
通常、より小さい値でオーバーヘッドを削減する方が効率的です。
接続されているクライアントの数。
TWSアプリ関連
[Q] TWSリアルアカウントログインのセキュリティコードをオフにするにはどうすればよいですか?
2020 年 7 月 9 日に追加
オンラインアカウント管理にこれに関する設定があります。これに従ってください:
オンラインアカウント→設定→ユーザー設定→セキュアログインシステム→セキュアログインデバイスのオプトアウト→「アカウント管理にログインするときのみセキュアログインデバイスを使用したい」のボックスにチェックを入れます。
次に「続行」を押します。いくつかの免責事項フォームが表示されますので、ご了承ください。
後で気が変わった場合は、同じ手順を使用して 2FA を再度有効にすることができます。
これがお役に立てば幸いです。
[Q] TWSでマーケットデータ回線は何回線契約していますか?
2020 年 5 月 23 日に追加
キーボードで Ctrl-Alt-= を同時に押すと、TWS は使用されている行数を示すポップアップ ウィンドウを表示します。
以下も参照してください。
https://ibkr.info/article/3292
[Q] ファイルからティッカーをインポートするにはどうすればよいですか?
[A] についてはここで議論されています (オンラインで表示/返信 (#43800) )
https://www.interactivebrokers.com/en/software/tws/usersguidebook/getstarted/import_tickers_from_a_file.htm 上記のリンクが機能しなくなった場合に備えて、IB の Web サイトからコピー&ペーストした記事を以下に示します。
ファイルからティッカーをインポートする カンマ区切りの .csv ファイルまたは .txt ファイルからインポートした市場データを取引ページに入力できます。ワードプロセッサ プログラムを使用してリストを作成し、.txt ファイル拡張子を付けてファイルを保存するか、MS Excel で .csv ファイルとして保存します。 インポートするティッカーシンボルのファイルを作成するには
DES、基礎、セクタイプ、エクスチェンジ、最終取引日、ストライク、プット/コール、乗数 SYM、シンボル、交換 コン、コニッド、エクスチェンジ DES 回線タイプには情報または情報のプレースホルダーが必要ですが、ストライク、プット/コール、および乗数フィールドはオプションです。最終取引日の形式は YYYYMM または YYYYMMDD です。すべてのエントリは大文字で囲む必要があります。オプション契約 XYZ の例は次のようになります。 DES、XYZ、OPT、ISE、201509、75、コール、 このラインタイプのシンボル XYZ の株式商品は次のようになります。 DES、XYZ、STK、スマート、、、、 ここで、カンマは株式に対して定義していないフィールドのプレースホルダーです。 株式に SYM 明細タイプを使用すると、次のようになります。 SYM、XYZ、スマート CON タイプを使用すると、たとえば、conid でコントラクトをすばやく入力できます。 CON、12348765、スマート ファイルをクラシック TWS にインポートするには
ファイルを Mosaic ウォッチリストにインポートするには 1. ウォッチリストを右クリックし、[インポート/エクスポート]、[契約のインポート] の順に選択します。 2. [参照] ボタンを使用して、インポートするファイルを見つけます。 3. 「OK」をクリックします。 既存のページに入力されたインポートされた契約は、アクティブな取引ページまたはウォッチリストの下部に表示されます。 |
[A] by ジョシュ ローカルシンボルをウォッチリストの行に直接入力すると、そのオプションに固有のものであるため、そのシンボルがすぐに表示されます。 例: 'AAPL 200221C00322500' (正しい間隔であることを確認してください) Option Symbology Initiative (OSI) 標準: https://ibkr.info/article/972 |
[Q] 公式サーバーリセット時間へのリンクはありますか?
[A] by ジョシュ
https://www.interactivebrokers.com/en/index.php?f=2225
[Q]トレーダー ワークステーション (TWS) に影響を与える接続の問題を確認して解決する方法
[A] by ジョシュ
https://ibkb.interactivebrokers.com/article/2807
(念のため、上記のリンクからの引用をここに保存しておきます;)
背景:
トレーダー ワークステーション (TWS) ソフトウェアが適切に動作するには、当社のゲートウェイと市場データ サーバーに接続する必要があります。ローカル ネットワークまたはインターネット サービス プロバイダー ネットワークに影響を及ぼす接続の問題は、TWS 機能に悪影響を与える可能性があります。この記事では、自動接続テスト Web ページを使用して接続をテストする方法を説明します。
自動化された「IB 接続テスト」Web ページを使用して接続をテストするにはどうすればよいですか?
1) このリンクをクリックします: http://www.interactivebrokers.com/cgi-bin/conn_test.pl
2) すべてのテストが完了し、結果が表示されるまでお待ちください。すべてのテストの結果として「成功」が表示された場合、現時点では IB サーバーへの接続は信頼できます。追加の接続のトラブルシューティングや構成は必要ありません。
3) 1 つ以上のテストの結果として「不合格」が表示された場合は、リンク「不合格」自体をクリックして「IB ネットワーク トラブルシューティング ガイド」を表示してください。このセクションは、手動テストを実施して失敗の原因を特定するのに役立ちます。
企業環境およびプロキシ サーバー ユーザー向けの注意: マシンがプロキシ サーバー経由でインターネットにアクセスしている場合、自動化された「接続テスト」ページは誤解を招く結果を返す可能性があります。これは通常、企業ネットワークに接続している場合に発生します。このような場合は、ネットワーク管理者または IT チームに連絡し、IB 自動「接続テスト」Web ページ自体の上部にある表に示されている宛先サーバーへの手動接続テストを実行するよう依頼してください。 。手動接続テストは、宛先 TCP ポート 4000 および 4001 を使用して実行する必要があります。サーバー リストを別の形式で取得したい場合、またはファイアウォール/IP 管理ルールを設定する必要がある場合は、このページを転送できます。
(引用終わり)
[Q] 異なるマシン上で 2 つの TWS を実行する (同じアカウントにアクセスする) にはどうすればよいですか?
この質問は github ib-controller プロジェクトに投稿されました。
こんにちは!
「誰かが別の場所からこのユーザー名でログインしている」というシナリオに対処する設定を追加できる可能性はありますか?
IB の「素晴らしい」モンスターでは 2 つの場所からログインできないため、TWS API が注文を送信しないことがわかっているときに携帯電話からログインしてポートフォリオを確認できるようにしたいと考えています。
タイムアウト後にボタンをクリックすると思います。
どう考えているか教えてください!
ありがとう
ゲオルギオス
2016 年 8 月 16 日に追加
[A] ベン・アレックス著
1 つのオプションは、アカウントの 2 番目のユーザー名です。詳細については、http://ibkb.interactivebrokers.com/node/1004をご覧ください。
[Q] インストールされている API のバージョンを正しく戻すにはどうすればよいですか? 別名 API のダウングレード
2015 年 5 月 29 日に追加
[A] リチャード L キング著 (ここにあります)
さて、 9.72 ベータ版をアンインストールした後、以前の ActiveX API バージョンを動作させることができなかった理由がわかりました。
TWS API をインストールすると、インストール プロセスによって TwsSocketClient.dll というライブラリが Windows システム フォルダーに配置されます。このライブラリのファイル バージョン番号は API バージョンと同じであり、ActiveX コントロール (Tws.ocx) は実際にはこのライブラリのラッパーであるため、ActiveX API を実行するには、Tws.ocx と TwsSocketClient.dll が同じバージョンである必要があります。適切に動作することが保証されています。
この問題は、API をアンインストールしても TwsSocketClient.dll が削除されないために発生します。以前のバージョンの API をインストールしようとすると、既存の TwsSocketClient.dll は置き換えられません。これは、インストールされるバージョン番号がすでに存在するバージョン番号よりも低いためと考えられます。そのため、インストールされているバージョンが ActiveX コントロールが期待するものと一致しないため、まったく機能しません。
したがって、解決策は、以前の API バージョンをインストールする前に、TwsSocketClient.dll を手動で削除するだけです。
rholowczak さん、この情報を ActiveX チュートリアルに含めると役立つでしょうか? おそらくほとんどの人は以前の API バージョンに戻すことはありませんが、たとえば、ベータ版を試していて、サポートされている最新のバージョンに戻したい場合には、戻したいと思うかもしれません。
[A2] by newguy@videotron.ca
2015 年 5 月 30 日に追加
それは実際にIBによって文書化されています。
Windows での TWS API ソフトウェアのアンインストールと再インストール
Windows での TWS API ソフトウェアのアンインストールと再インストール ナビゲーション付きトピックを開く 現在地: 概要 > Windows でのアンインストールと再インストール Windows での TWS API ソフトウェアのアンインストールと再インストール | |||||
[Q] TWS Java VM のパフォーマンスを最適化するにはどうすればよいですか? 別名「最新かつ最高の」JVM サーバー設定
2015 年 4 月 27 日に追加
[A] FutureScalper (ここで見つかります)
Richard L King の IBController を使用する必要があります。
改善するためにできる最も重要なことは、
パフォーマンスは Java Server VM を使用することです。高いパフォーマンスを持っています
リアルタイム分析を行うマルチスレッドの Swing ベースの GUI アプリケーション
注文処理など。たとえサーバー VM であっても、サーバー VM を使用して実行されます。
「クライアント」アプリケーション。また、サーバー VM を使用して TWS も実行します。これにより、
幅広いチューニング オプションとグローバル最適化機能
スループットが 2 倍または 3 倍になります。
JDK をインストールするだけでサーバー VM を取得できます。
jvm.dll を JRE 領域または使用できるものに移動します。
「java -server -version」コマンドを実行してインストールを確認します。
繰り返しますが、TWS 自体をサーバー VM で実行することも非常に重要です。
高いパフォーマンスのために重要です。
これはスタンドアロン TWS を実行するために使用するコマンド ラインの例です。
Windows 上の Java Server VM の下。さまざまなオプションは技術的なものであり、
変更の予定。
c:\WINDOWS\system32\java.exe -server -dsa -Xbatch -Xss192k -Xms200m -Xmx200m
-Xnoclassgc -XX:+ForceTimeHighResolution -XX:-TieredCompilation
-XX:+RelaxAccessControlCheck -XX:MaxInlineSize=64000
-XX:-DontCompileHugeMethods -XX:CompileThreshold=250 -XX:CICompilerCount=1
-XX:+UseConcMarkSoupGC -XX:MaxGCPauseMillis=150 -XX:+DisableExplicitGC
-XX:ThreadStackSize=192 -XX:+AggressiveOpts -cp
jts.jar;pluginsupport.jar;jcommon-1.0.0.jar;jfreechart-1.0.0.jar;jhall.jar;other.jar;riskfeed.jar;rss.jar
jclient/LoginFrame \jts
サーバー VM は「巨大な」メソッドをコンパイルし、コードを「インライン化」します。
標準のクライアント VM では不可能なグローバル最適化を実行します。
パフォーマンスとスケーラビリティは多くのアプリケーションにとって重要です。
[Q] TWS アプリケーションを 24 時間 365 日自動的に実行させるにはどうすればよいですか?
[A] Richard L King の IBController を使用する必要があります。
URL: https://github.com/ib-controller/ib-controller
最新バージョンは
https://github.com/ib-controller/ib-controller/releases/latestからダウンロードできます。
(引用-1)
1 つの可能性は、IBController を使用することです。これは、
TWS は、さまざまなウィンドウ イベントをインターセプトし、自動的に処理します。
IBController は、ログオンをオプトアウトした場合にのみログオンを処理できることに注意してください。
セキュリティデバイススキーム。
IBController は、このフォーラムの「ファイル」セクションの「自動」の下にあります。
ログインコード。
リチャード
(引用終了-1)
(引用-2)
IBController は、Interactive Brokers Trader Workstation (TWS) を「ハンズフリー」モードで実行できるようにするために作成された Java アプリケーションです。これにより、
無人自動取引システムの作成が可能になります。IBController は、
ログイン ダイアログにログイン資格情報を入力することにより、TWS ログインを自動化します
。また、プログラム取引活動中に TWS が表示するダイアログ ボックスも処理します
。
(引用終了-2)
リンク: http://sourceforge.net/projects/ibcontroller/files/
IBController ユーザーからのいくつかのランダムなメモ:
—————————————————————————————————————————————-
マイク・スミスmikesmithv@gmail.com
MaxPerSize パラメータを 128M から 255M など、より大きな値に変更してみてください。この数が小さすぎると、さまざまな奇妙な症状が発生する可能性があります。新しいクラスをロードするのに十分なスペースがない場合、以前にロードされたクラスがアンロードされ、奇妙な現象が発生する可能性があります。プログラマーは、静的クラス変数が、アプリケーションが起動されている限り残る「グローバル変数」であると想定することがありますが、クラスがアンロードされる場合はそうではありません。
少し前まで、TWS はデフォルトの MaxPerSize を使用していましたが、IBController で起動する場合はそれだけでは不十分でした。IBController によって追加のクラスがロードされるため、IBController 起動コマンドに -XX:MaxPermSize=128M を追加する必要がありました。IB の Web サイトを見ると、TWS の起動コマンドには通常の TWS 起動のためだけに XX:MaxPermSize=128M が含まれています。そのため、TWS にさらに多くのクラスを追加したため、標準リリースに向けてその数を増やす必要があったようです。したがって、IBController で起動するには、より大きな数が必要になるのは当然です。
私はもう IBController を使用していない ので、これはすべて IBController に関する私の過去の経験に基づいています。 現在、私は週に 1 回再起動するゲートウェイを使用し、1 回のログインで 1 週間ずっと実行させています。 つまり、これはすべて「理論上」であり、私の直接の経験ではありません。それが理にかなっているといいのですが。
ディスカッションも参照してください:
最適なメモリ設定
https://groups.io/g/twsapi/topic/4047139
—————————————————————————————————————————————-
[Q] ヘッドレス Ubuntu 16.04 LTS で IBController (3.2.0) + TWS (ビルド 956) をセットアップして 2 つのアカウント (ペーパー + リアル) を 10 分で実行するにはどうすればよいですか?
[A] https://dimon.ca/how-to-setup-ibcontroller-and-tws-on-headless-ubuntu-to-run-two-accounts/
2016 年 6 月 13 日に追加
注: まず、IBController は現在、事実上 IBC に取って代わられることに注意してください。この変更の理由については、こちらをご覧ください。おそらく IBC への切り替えを検討する必要があります。
[Q] DockerでIBCを設定する方法
[A] by dvasdekis < notification@github.com > GitHub で表示
2020 年 7 月 19 日に追加
ここで、 IB Gateway v978.2c および IBC v3.8.2 を使用して更新された Docker コンテナーを保守しています。独立したソリューションを維持する代わりに、自由にリンクしてください。
[Q] TWS API の最新バージョンはどこで入手できますか?
[A] http://interactivebrokers.github.io/
[Q] TWS接続をリセットするにはどうすればよいですか?
[A]
Ctrl-Alt-R でアカウント サーバー接続をリセットします
Ctrl-Alt-F は市場データ接続をリセットします
[Q] TWS のどのバージョンを使用すればよいですか?
[A] by Ruediger Meier sweet_f_a@gmx.de
実際、試してみるためだけに、すべての TWS バージョンを並行してインストールします
気分が良いときはいつでもそれを出します。
本番環境でも使用しているデフォルトは安定バージョンです
936.9リットル。
知らない人のために説明すると、IB は安定した最新バージョンを提供します。の
現在の安定した TWS はバグ修正アップデートのみを提供しますが、新機能は提供されません。それは
なぜマイナーバージョン番号 (文字) がこれほど大きいのか。
[Q] 紙のアカウントをリセットするにはどうすればよいですか?
2021 年 1 月 25 日に追加
IB からのこれはうまくいきました: 紙のアカウントの資本を、元の値とは異なる値に、実稼働アカウントの価値の 5 倍までリセットできます。リセットリクエストを翌営業日に有効にするには、東部標準時16:00までに入力する必要があることに注意してください。 紙の残高をリセットするには、以下の手順に従ってください。 1. ログイン画面のトグルをクリックして、ペーパー取引クライアント ポータルにログインします。 2. [設定]、[アカウント設定]の順に選択します。 3. 「Paper Trading Account Reset」の横にある「Configure」(歯車)アイコンをクリックします。 4. 表示されるドロップダウン メニューからリセット金額を選択し、[続行] をクリックします。 |
[A2 (注文 – 「2017年以前」頃)] エリック・J・ホルトマン著
「取引アクセス」で「紙取引口座のリセット」を選択します。
- または -
紙のアカウント管理にログインします(通常のアカウントにはログインしないでください)
https://www.interactivebrokers.com/sso/Login
画面左側 - 「取引アクセス」 - その下 - 「ペーパー取引」
アカウントのリセット」
翌営業日まで反映されません。
ジム・コヴィントン著
[Q] API バージョンは、ログに表示されるクライアント/サーバーのバージョンにどのようにマッピングされますか?
[A] IBサポート(電話)
クライアント側:
API 9.67 —> クライアント バージョン 59 TwsApiC++.9.67_3.zip
API 9.70リリース日: 2013 年 10 月 —> クライアント バージョン62
API 9.71リリース日: 2014 年 8 月 6 日—> クライアント バージョン 63
サーバ側:
ビルド946 —マップ先—> TWS ソケット サーバー バージョン71
[Q] 接続が適切に閉じられなかった後、クライアントは同じクライアント ID を使用して TWS に再接続できません。
[A] ドミトリー著
https://groups.io/g/twsapi/topic/4047690
そしてハイジャックされたスレッドでの議論に続きました 😉
同じトピックがここでも議論されました。
https://groups.io/g/twsapi/message/37644
基本的には、クライアントが TWS への接続を突然閉じると、クライアントは同じクライアント ID を使用して再接続できないことがよくあります。TWS を再起動するか、TWS アプリ側で自動的に解放されるまで待つ必要があります (最大約 1 時間)。
[Q] ib プライマリ HOST を変更するにはどうすればよいですか? (新しい地域への移動)
ニューヨーク 4 でボックスを受け取ったところですが、 ログインウィンドウで地域をアメリカとして選択したにもかかわらず、私の IB アカウントはまだアジア – hdc1.ibllc.comに接続しています… IB を米国東部 ( ndc1.ibllc.com)に強制的に接続するために変更できる設定はありますか? |
[A] エフゲニー・アンドレーエフ e.andreyev07@gmail.comオンラインで表示/返信 (#45559)
2020 年 10 月 3 日に追加
いいえ、登録時にアカウントに割り当てられた IB サーバーを新しい場所に移動することを (IB サポートから) 明示的に要求する必要があります。これは週末に行われます。 |
[Q] TWSの接続時間は遅いですか?
[A] JR < TwsApiOnGroupsIo@reinold.org >オンラインで表示/返信 (#46681)
2021 年 3 月 3 日に追加
同じ問題を抱えている人の数はほぼゼロであると思われるため、IB が問題を抱えている可能性は低いと思われますが、不可能ではありません。そこで、API 接続の問題をトラブルシューティングする必要がある場合に確認する 3 つの事項について簡単に説明します。 [1] 古い API 接続: 私たちはかつて、TWS に接続し、TWS が IB と通信するのに必要な単純な操作を実行し、その後切断する単純な「TWS は生きていて、実際に IB に接続されていますか」というモニターを作成しました。モニターは自動的かつ頻繁に開始されましたが、何らかの理由で古い (完全に閉じられていない) API 接続が蓄積されました。「データ」をクリックして TWS の接続リストを取得すると、過去のスクリプト実行による古い API 接続が表示されますか? 私の場合、TWS が API 接続の最大数から遠く離れていた場合でも、これらにより接続リクエストの遅延が発生しました。 [2] DNS 逆引き: サーバーのネットワークをチェックしたとのことですが、DNSもチェックしましたか?
いくつかのライブラリ関数は予期せず「逆 DNS ルックアップ」を実行し、失敗した DNS ルックアップが成功するかタイムアウトになるまで、呼び出し元 (この場合、TWS への受信 API リクエストを処理する Java JVM のスレッド) を長期間ブロックする可能性があります。インターネット サービス プロバイダーが DNS 逆引き参照で不安定性を抱えている場合、それ以外の場合は完全に正常なサーバーの操作が 20 ~ 30 秒間ランダムにフリーズする可能性があります。 [3] あなたのエントロピーレベルはどうですか? これは少し無理がありますが、ある種の Linux システムを実行している場合に発生する症状に当てはまります。そして、ダラスのデータセンターにあるサーバーでそれを理解するのに数週間かかりました(ただし、これはダラスやテキサスに特有のものではありません) 強力な SSL 暗号化が機能するために、Linux カーネルは「真にランダムなイベント」を収集し、Java JVM (および sshd、httpd などの他のプログラム) が /dev/urandom デバイス経由でアクセスするエントロピーのバッファーを構築します。また、毎回必要となるのはほんのわずかなバイトだけですが、バッファーが少ないか空のときに /dev/urandom を開いたり読み取ったりすると、十分なエントロピーが収集されるまで呼び出し元がブロックされます。また、Java JVM は、ネットワーク関連のさまざまな操作が行われるときに、/dev/urandom を頻繁に開きます。 これについては「man urandom」で確認でき、サーバーのエントロピーレベルは「cat /proc/sys/kernel/random/entropy_avail」で確認できます。 お役に立てれば。 |
0 件のコメント :
コメントを投稿