Interactive Brokers ~米国株証券会社~

MENU  [トップページ]  [ウィザードとは]  [投資哲学]  [運用成績]  [投資用ツール]  [InteractiveBrokers]

注意
このページは米国証券会社「Interactive Brokers」についての情報をまとめたものです。
手数料が安い等の特徴があり、これらの情報を公開する価値があると考えて作成しました。
ただ、これらの情報は管理人が個人的に情報収集をした結果なので、間違っている所もあるかもしれません。
あくまでも参考情報としてご利用下さい。
また、ここでは「米国株」というアセットの観点で見ている為、FXや先物の場合だとまた評価が変わってくると思います。

米国株について 取引は全てドルベースで行われている。
米国時間9:30~16:00までマーケットは空いている。(サマータイムに注意)
ただし、プレマーケット(時間外取引、PTSみたいなもん)と呼ばれる取引が9:30以前からされている。
取引所の仕組みは日本と全く異なり、ECNと呼ばれる複数の取引所からなるネットワークに発注する。
日本で例えるなら、ソフトバンク(9984)の買い注文を出したら、東証大証名証のどこで約定するかは事前にはわからない。
取引所毎に提示しているbid/askが異なる為、最も安く買える取引所で自動的に売買が成立する。
IBの特徴 手数料の安さ、APIの存在の2点が挙げられる。
また、この2つの特徴により日本人のユーザーも多く、日本語情報量が多いのも特徴である。
最近、日本法人を設立したようで、IBSJ(日本株専用)・IBLLC(日本株以外専用)の2種類を最初に選択する必要がある。
米国株を取引したい場合はIBLLCで開設しなければならない。
手数料 IBの米国株手数料には2種類ある。bundledとunbundled。
これはもう誰が何と言おうとunbundledがオススメ。
理由の説明の前にECNの仕組みから説明しなければならない。

米国株の注文には大きく2つに分けて考えられている。
「流動性を提供する注文」と「流動性を削る注文」の2つ。よりわかりやすく言うと、指値と成行である。
指値の注文がある事で、板の厚みが形成され、巨額な注文も安心して執行できるようになる。
したがってECNでは流動性を増す為に、指値の注文を出した人にはリベート(報酬)が与えられる事になっている。
成行注文を出した人から取った手数料の一部を、指値で出していた人に還元するという仕組みがある。
もちろん指値で出してもそれが約定しなければ1円も貰えない。

というように取引所レベルでは注文種別によって細かく料金体系が異なっており、
場合によっては手数料が取られるどころか報酬が貰える仕組みになっている。
IBのunbundled手数料体系はそういったリベートの仕組みを取り入れていて、
上手く注文をコントロールする事でIBに支払う手数料を取引所からのリベートで上回る事も可能になっている。
ちなみにbundled手数料ではそういったリベートの仕組みは無く、一律で1株当たり固定額が取られる。
成行注文しか使わないならどちらの手数料体系もそう変わらないが、指値を使う可能性があるならunbundledが断然良い。

また、IBにはECNに注文する「SMART注文」と、取引所を指定する「Direct注文」がある。
Directの場合はunbundled手数料は適用されずリベートが貰えない上に、キャンセル手数料がかかる。
SMARTの場合は執行取引所が指定出来ない代わりに、unbundledが適用され、キャンセル手数料はかからない。
unbundledの恩恵を受ける為にはSMART注文を行わなければならない。

ただ、SMART注文で出した指値が約定し、リベートが貰えたとしても、
その額は実際に執行された取引所によって異なる事に注意しなければならない。
NASDAQは1株当たり0.002ドルのリベートだが、NYSEは0.0013ドルしかない。
取引する銘柄がどこに上場しているかによって、どの取引所で約定するかの確率は変わってくる。
ちなみに、自分の場合、
[IBに払う手数料・取引所に払う手数料(or貰うリベート)・その他雑費(クリアリングフィー・レギュレーションフィー)]
等をトータルすると、成行だと1株当たり約0.005ドルの所が、指値だと約0.001~0.002程度までは減らせる。
NYSE銘柄が多い為、リベートだけでIBの手数料を上回る事は出来ない感じではある。
NASDAQを中心にし、一定以上取引すればほぼトントンくらいまでは持っていけるかもしれない。

その他注意点。
指値と言えども、ASK以上の価格で買い注文を出せば成行注文と流動性を削るという観点で同等の為、
リベートは貰えず手数料を支払わなければならない。
また、IBでは1注文当たり最低0.7ドルの手数料を取る事になっている。
unbundled手数料体系は月の取引量によって1株当たり手数料が変わってくるが、
1株当たり手数料が0.0035ドルの時には200株以上、0.002ドルの時には350株以上約定しないと
IBへ支払う手数料が多くなってしまう事に注意しなければならない。
(ちなみにTWSで見えているbid/askの株数は100で割った数字なので、10とあったら1000株並んでるという意味である)
(不確定だが、指値を訂正した場合は別注文とみなされているように思える。注意すべき。)
また、MOO注文(Market on Open : 寄成)や、MOC注文(Market on Close : 引成)は
もちろん流動性を削る注文なので、手数料が高くなる。
API(Java) まず、IBが提供しているAPIの種類が2つある。「IB API」と「FIX CTCI」の2つ。
メッセージ処理速度[IBAPI:50message/sec、FIX:150message/sec]
機能[IBAPI:発注+株価データ受信、FIX:発注のみ]
利用料金[IBAPI:無料、FIX:月額100ドル]
後者はプロ用で、所謂FIXプロトコルでのやり取りが出来るが、個人にはデメリットが多い。
IBAPIを選択するのが無難である。

IBAPIの仕組み。
[IBのサーバー]-[クライアントPC上のTWS]-[APIを使った自作システム]
となる。
TWS(TraderWorkstation)は、GUIを抜かしたIBGatewayというソフトウェアとも置き換えられる。
ただ、API経由で発注した注文が正しく出ているかどうかや、手動で決済したい場合などを考えると
TWSを起動しておいて状況を見ながら開発していくというのが良いと思われる。
[TWS]-[自作システム]間はプロセス間通信(Socket)で、IPとポートを指定出来る為、別PCでも問題無く動作する。
自分はTWSはWindows上で動作させ、自作システムはLinux上で計算させている。

APIを利用する言語には、Java(Socket)・C++(Socket)・VB(ActiveX)・Excel(DDE)等がある。
自分はJavaしか使っていないので、JavaAPIの仕組みを解説する。
(IB自身もJavaを推奨している。動作速度・クロスプラットフォームな観点で。)

基本的にはサンプルコードを見ながら開発していけばJavaプログラマーなら遅かれ早かれ実装出来る。
簡単なクラス構成を説明すると、EClientSocketが接続を担当するクラス。
データのリクエストや発注もこのクラスで行う。
ただ、その結果は非同期で返ってくる。
その為のデリゲートクラスがEWrapperである。
要するに、EWrapper内でデータ受信時の挙動を実装し、
それをEClientSocketに渡すというごく普通のマルチスレッドプログラミングになる。
非同期通信の為、接続の維持やデータ構造へのアクセスをスレッドセーフにする事などが落とし穴になる。
開発をする際には十分注意をする事。

ちなみに、株をLongする場合は普通に買い、Shortする場合は注文株数をマイナスで出すだけ。
特別なフラグ等は特に必要ない。
ポジションを10株持ってる時に-10株の注文を出せば単なる決済になり、
ポジションが0株の時に-10株の注文を出せば自然にShort(空売り)で出してくれる。

その他に、データの受信数上限が存在する。
基本的には100銘柄しか同時受信出来ない。
同時受信銘柄数を100以上にするには2つの方法がある。
1. [IBへ支払う月額手数料(ドル)/8]を100以上にする方法。
2. [総資産(ドル)/10000]を100以上にする方法。
このどちらかの数字の大きい方が同時受信銘柄数の上限になる。(両方100に満たなければ100が上限)
1番目は結構取引をしていないと無理だし、2番目は1億円以上もってないとダメ。
結局、開発を始める段階では100以上に増やすのは諦めた方が良いという事になる。
また、この100銘柄という上限はTWSレベルで管理していて、TWS上で10銘柄のデータを登録して見ていたら
APIでは90銘柄しか受信出来ない事になる。
(ただし、TWSの表示画面に無いor最小化している等であれば、TWSでは受信していない事になる。
API使う時はTWSの最小化推奨。)
複数のSocketを使ってTWSに接続しても、全体の合計で100銘柄になる為意味が無い。
500銘柄とかのデータを受信したい時は100銘柄ずつ登録し直してスナップショットとして取るしかない。
そして銘柄再登録を繰り返してると接続が切れやすい。色々注意しながら開発をしなければならない。

TWSは何もしないと自動でシャットダウンしてしまう。
IBControllerというソフトウェアで自動シャットダウンを回避出来る。
使い方等は検索して貰うとして、是非導入した方が良い。

APIを通じてヒストリカルデータも受信できるが、色々な制約がある。
・15秒以内の同一条件(銘柄、データ種類、期間)のリクエストは禁止。
・2秒以内の同一の銘柄を6つ以上リクエストする事は禁止。
・10分以内に60以上のリクエストは禁止。
・1年以上は遡れない
大量のデータを取ろうとした時にネックになるのは特に3つ目である。
計算すると、継続的に取るには10秒に1回のペースでしかリクエスト出来ない。
また、1度のリクエストでも、遡れる期間が違ってくる。
・1分足 : 6日
・1時間足 : 34日 or 4週 or 1ヶ月
・日足 : 60日 or 12ヶ月 or 52週 or 1年
したがって、500銘柄の1分足を過去1年分取得しようとすると、
500銘柄*(250日/6日)=21000リクエスト、21000リクエスト*10秒=58時間
かかる事がわかる。
更に、1日に1回TWS経由でデータが取れない時間帯が存在する。
自分の場合は日本時間で12:55~13:25の30分間。(アカウントやサマータイムによって前後するかも)
この時間帯になるとリクエストが全てエラーを返す。(そのエラーも非同期の為扱いが面倒)
このような、色々な制約を考えながらヒストリカルデータを収集しなければならない。
口座開設・口座管理料 口座開設手順は検索して他の情報を参考にすれば大体大丈夫のはず。
IB日本法人がIBLLCの口座開設を仲介するようになってから、住所確認等はIB日本法人が行ってる模様。
でもなんだかその辺りも手探り感があって、時期によって細かいやり方は変わってるみたい。
質問・問い合わせ等はIB日本法人が電話(日本語)で受け付けてるみたいだから、どうしても困ったら直接聞いてみるのが良い。
口座開設申請から、入金やその受付も含めて実際に完全に開設されるまで1ヶ月程度。

口座管理料は毎月10ドル。
でも手数料やマーケットデータを購読した分は、差し引いてくれる。
そのマーケットデータも10ドル。
マーケットデータは手数料を30ドル払うと無料になる。
まとめると、
手数料0ドル、データ購読無しの場合、口座管理料のみで毎月10ドル。
手数料0ドル、データ購読有り(10ドル)の場合、口座管理料が無料になり、合計10ドル。
手数料20ドル、データ購読有り(10ドル)の場合、口座管理料が無料になり、合計30ドル。
手数料30ドル、データ購読有り(10ドル)の場合、口座管理料とデータ購読料が無料になり、合計30ドル。
と言う事になる。
とりあえず、何も取引しなくても最低10ドルは取られるので、データ購読は最初からしといて良い。
取引をするなら、手数料20ドルと手数料30ドルなら支払合計は変わらないので、30ドル以上の手数料を払った方が得。
口座種類・証拠金・金利 口座種類はCashとRegTMarginとPortfolioMarginがある。
Cashは現金口座で信用取引(レバレッジ、空売り等)が出来ない。
RegTMarginは所謂普通の信用口座。レバ3~4倍まで掛けれて、空売りも出来る。
PortfolioMarginは信用口座のグレードアップ版。オプション等と組み合わせると証拠金を減らすことが出来る。
ただし、PortfolioMargin口座を開くには10万ドル相当以上の残高が必要。

RegTでも、自己資本の範囲でしか取引しなければCashと同様の運用が出来る為、基本的にはRegTがオススメ。
(逆にCashは本当にその現金の範囲でしか取引出来ない為、
約定可能性のある価格や手数料等を必要以上に気にしなければならない)
PortfolioMarginは、株同士でのリスク相殺は出来ない為、株しかやらない人にとっては関係ない。
個別株と、個別株オプションを組み合わせたり、先物と先物オプションを組み合わせたりして運用する人にとっては、
PortfolioMargin口座の方が証拠金が断然少なくなるのでオススメ。
よって、株だけならRegT。オプションやるならPM。

証拠金について。
デイトレの場合、まず25000ドル相当以上の証拠金が無いと、日中回転が出来ない。
25000ドル未満の場合、4営業日に1回転までしか出来ないというように法律で定められている。
したがって、とりあえず25000ドル以上の証拠金を入れておく必要がある。
その代わり25000ドル以上あれば、日本と違って信用取引でも日中何回転しても良い。
また、信用取引でレバを掛ける場合、Longの場合は25%、Shortの場合は30%の証拠金が必要。
ただしそれもデイトレの中だけで、オーバーナイトする場合にはそれぞれ50%の証拠金が必要となる。
要するに、デイトレであればレバ3~4倍で何回転でも出来るが、引け時点までにはある程度ポジションを調整して
レバ2倍以内に抑えておかなければならない。
ちなみにザラバ中だろうが、証拠金が足りなければリアルタイムにロスカットが入る可能性がある事に注意。

オーバーナイトする際に、各通貨でマイナス(借金)の箇所があれば、その分金利がかかる。
金利はUSDで年率1.7%程度。
逆に言えば、オーバーナイトをしなければデイトレでいくらレバをかけて運用しても金利はかからない。
税金 海外証券会社なので、特定口座等は無く、日本での確定申告が必要。
日本の証券会社でいう一般口座とほぼ同じ手続きで良い。
ただ、事前にIBに米国非居住者用の免税書類(W-8BEN)を提出しておかなければならない。
W-8BENの提出はIBの場合全てオンラインで済む。
ただ、有効期限が3年とかいう噂があるのでそれも注意。
これを提出しないと源泉徴収で30%取られるのでもっと注意。
ただ、配当に関してはW-8BENを提出していても源泉徴収されるみたいなので、
中長期投資をする人は詳しく調べた方が良い。

株なので申告分離課税。今なら軽減税率10%が適用される・・・と思う。
もしかしたら軽減税率は適用されないかもしれないのでちゃんと確認しなければならない。
入出金・両替・通貨 IBへの入金先は、日本のシティ銀行本店。
ただし、日本の大手の店舗型銀行ではシティ銀行へのオンライン振込には対応していない。
オンライン振込に対応してるのは、主にネット専業銀行。
住信SBI銀行、ジャパンネット銀行、新生銀行などならオンライン振込が可能。

入金した後は、ドルに両替をする。
(ここでいう両替には、FX投資的な観点は含まない。
円のまま持つ方がドルで持つよりも良いという投資的判断の元、両替しないという手はある。)
オーバーナイトする場合だと確実に両替しておいた方が良い。
デイトレしかしない場合でも、負ける場合を考えて少しは両替をしておいた方が良い。

日本円で入れて、ドルに両替しなくても、信用口座の場合は米国株を購入出来る。
余力は円でもドルでも同じで、キャッシュの3~4倍まで。
ただ、日本円のまま米国株を購入するとドルが足りないので、購入金額分のドルを一時的に借金する事になる。
1ドル=100円として、300万円入金してたとする。ドルに両替はせず、円のままで持つ。
この状態で100万円(=1万ドル)分株を買った場合、1万ドルを借金する事になり、口座内の内訳は、
[300万円、-1万ドル、1万ドル分の株]となる。
また、IBの場合、持ちこした借金(マイナスの通貨)に対して金利がかかるので、
上記のまま持ちこすと1万ドルの借金に対して金利がかかってしまう。

金利がかかる事を避けるために、株を買う前にFXを利用して両替を行う。
300万円入金した後にやることは、USDJPYを3万ドル買うだけ。
口座内の内訳は[0円、3万ドル、3万USDJPY]となる。FXのポジションは無視する。
この状態で1万ドルの株を買うと、[0円、2万ドル、1万ドル分の株、3万USDJPY]となり、マイナスの通貨は無い。
これで持ち越しても金利がかかることは無くなる。

オーバーナイトをせず、完全にデイトレで終始する場合でも、米国株を売買する以上損益は全てドルで計算される。
したがって、デイトレで負けた場合はドルがマイナスになり、
日本円は十分あってもドルを借金したままオーバーナイトすることで金利がかかってしまう。
ある程度の量はドルに両替しておいて損は無いと思われる。

また、IBでいう両替は単なるレバ1倍のFXと全く同じである。
その場合、25000ドル以上の両替だとIDEALPROというスプレッドが小さい市場で執行可能である。
このあたりのシミュレーションはデモ口座で全て出来るので、本番で失敗しないように色々と試すと良い。
空売りの仕組み アップティックルールは現在は無い。
しかし、いつまた導入されるかわからない為、その辺りの市場動向は気にしておく必要がある。

基本的にショートは全銘柄可能。
日本のような、「貸借銘柄」といったラベルは無い。
逆日歩も無い。ロングとの違いは証拠金だけ。
しかし、貸株の可能株数という概念があり、貸株が足りなくなればザラバ中でも急に売れなくなったりする。
実際には、注文を出してみないとわからない。
ただ、APIやTWSでShortableというデータが取得出来、それによってほんの少しだけ判断が出来る。

Shortableをリクエストして返ってくるデータは1,2,3の3種類。
1:空売り出来ない。
2:空売り出来るかもしれない。
3:少なくとも1000株以上は空売り出来る。
これらの情報を使って、大体の判断をする事が出来る。

NYSE及びNASDAQの大型株上位1000銘柄くらいは、ザラバ中は大体3のステータスが返ってくる。
余程大きな注文を出さなければ困る事は無いと思われる。
寄り・引けの仕組み ECNとしての寄りと、主市場の寄りがある。
例えば、GE(General Electric)の主市場はNYSEである。
しかし、GE自体はECNで取引されていて、NYSE以外の取引所でも売買出来る。
したがって、9:30で各取引所がオープンした後に、ECNで最初に売買が成立した価格が始値となる。
この、ECNとしての始値が世間一般で言う始値という扱いになり、
YahooFinanceやGoogleFinance等でのopenとして扱われる。
しかし、この始値は、NYSEにおいて売買成立したものとは限らない。
というかむしろ殆どの場合は異なるといっても良い。
ECNへ発注したと言っても、寄付におけるNYSEの影響は大きく、ボリュームは桁が2つ違う場合が殆どである。
(ECNの始値は100~200株、NYSEは10000株以上)
また、IBを通じてSMART注文を投げると、NYSEで寄りついた後でないと執行されない。
そのNYSEの寄り付きは、数秒後の事もあれば、数分後、10~20分後の事もある。
したがって、過去データにおける始値と、実際に約定する始値にはかなりの乖離が発生する事に注意しなければならない。

引けは過去データとあまり乖離は生じない。
なぜなら16:00丁度のデータは主市場の引け注文で確実に発生し、
ECNの引け値=主市場の引け値となるからである。
注文種類 Time in Forceと、Typeの組み合わせについて。
Time in Forceで良く使うのは基本的に2つ。「GTC」と「DAY」。
GTCはユーザーがキャンセルするまでずっと出しておく。
DAYは1日が終わったら勝手にキャンセルされる。
Typeにも基本的に2つ。「MKT」と「LMT」。
それぞれ、成行と指値である。

寄付注文は少し特殊な指定をする。
Time in Forceの方に「OPG」と指定する。
そして、TypeをMKTかLMTにする事で、MOO(Market on Open)か、LOO(Limit on Open)を出せる。

引け注文も特殊である。
Time in Forceは「GTC」でも「DAY」でも良い。
Typeに「MOC」か「LOC」を指定する。
すると、MOC(Market on Close)かLOC(Limit on Close)を出せる。

その他にもVWAP等の注文方法がある。
しかし手数料等が高くなる為あまりお勧めしない。
基本的には自分でプログラムを組んで、基本の注文種類を組み合わせながら自動発注するのが最も良い。
株価データ IBから取得出来るヒストリカルデータは注意が必要。
特に9:30と16:00を含むデータについて。
例えばIBで日足のヒストリカルデータを取得すると、
9:30以上16:00未満の範囲で約定したデータから生成したオリジナルデータを送ってくる。
YahooFinance等のデータとどこが違うのかというと、9:30と16:00の扱いが異なる。

ECNの始値がYahoo的には始値となるが、ECNとしての始値も、実際に約定するのは数秒遅れる。
具体的に言うと、9:30:00~9:30:03までは未だプレマーケット扱いで、
9:30:04にECNとしての始値が決定される、ということがある。
そうすると、最初の数秒間のデータがIBのヒストリカルデータには入っていて、Yahooには入っていない事になる。

引けはもう少し単純で、IBには16:00丁度のデータが入っていないのである。
15:59:59までのデータで生成している為、引け値が変わってくる。
このあたりの仕様を頭に入れつつデータを扱わないと、後で他のデータソースとのズレが発生してしまうので注意が必要である。
ADR IBではADR(米国預託証書)も他の銘柄と同様に売買出来る。
ただ、ADRによっては保管料が別途取られる事がある。
(恐らくオーバーナイトした場合だけだと思うが、詳細は不明)
配当をちゃんと支払うADRでは、保管料は配当から差し引かれる為気にする必要は無い。
トップページに戻る

このページはリンクフリーです。
上記の内容は断りなく変更・削除する事があります。
Copyright © All Rights Reserved. www.marketwizards.jp