Ads by Google
新しい記事を書く事で広告が消せます。
Interactive Brokers についてのあれこれ Part9 JavaProgram 口座関連の情報取得
最近プライベートが忙しくめっきり為替に取り組める時間が減っております。が、一応ちまちま本を読み、コードを書くといったことは続けています。
で、今日は、TWSのAPIでの口座、ポジション関連の情報の取得方法です。
以前、Interactive Brokers についてのあれこれ Part7 JavaProgramで
みたいのことを書きましたが、今回もこのパターンに当てはまります。
EClientSocket#reqAccountUpdates(boolean subscribe, String acctCode)
を呼ぶと、下記の3メソッドが複数回コールバックされ、口座の状態、ポートフィリオの状態が通知されます。
EWrapper#updateAccountValue(String key, String value, String currency, String accountName)
↑口座情報が通知されます。情報多すぎでわかり難いです。
EWrapper#updatePortfolio(Contract contract, int position, double marketPrice, double marketValue, double averageCost, double unrealizedPNL, double realizedPNL, String accountName)
↑ポートフィリオ情報が通知されます。ポジションを持ってない場合は呼ばれません。
EWrapper#updateAccountTime(String timeStamp)
↑更新時間が帰ってくるだけです。すごくシンプルです。
reqAccountUpdatesの呼び出し時の注意点ですが、まず、通常の個人口座の場合、
EClientSocket#reqAccountUpdates(boolean subscribe, String acctCode)
の「acctCode」は空文字("")を指定するようです。TWSにログインするときにアカウント情報を与えているので、API的に指定しなおす必要はないようです(指定するとお前の口座はマルチアカウント口座じゃないだろ見たいなエラーが出ます)。
で、あと、subscribeに「true」を指定すると持っているポジションの価格が変更される度に通知が来るのですが、注文の発注前に残高チェックのためにAPIを使用しようとしているので、私は「false」を指定しています。
↑ 2007/11/21 追記・修正
完全に読み間違えていました。subscribeを「true」でアカウント情報取得開始、「false」でアカウント情報取得終了でした。falseのみを指定していると動きません。
「true」で呼び出して、必要な情報がそろったら、「false」を呼び出し止めるといった感じになります。あと、「true」で呼び出したときの情報の更新頻度ですが、値動きがあるたびにリアルタイムで更新されるわけではないようです。trueのままほかっておいた所、3分おきに呼び出されていました(秒単位のトレードの場合大丈夫なのか・・・?)。
エラーなく呼び出せた場合、updateAccountValue、updatePortfolioによって情報が通知されます。
で、通知される情報の内容ですが、下記Windowの情報にあたる情報が通知されるようです。

updatePortfolioメソッドでは、上記のWindowのPortfolio欄(一番下の表)の情報が、1行1メソッド呼び出しの形で通知されます(上記の例だと「GBP.JPY」「EUR.USD」で二回呼び出し)。
一方、updateAccountValueでは、上記のWindowのPortfolioの情報以外すべてが通知されるようです。しかも、1行1メソッド呼び出しではなく、1セル1メソッド呼び出しの呼び出しのようです。よって、山のようにメソッドが呼び出され、正直どの情報が参照すべき情報かすぐわからず非常に悩ましいです。
個人的には、下記の情報をみとけばいいかとおもっております。
key=AvailableFunds,currency=JPY
↑取引可能額(ポジションを新規に持つ額があるか?)
key=CashBalance,currency=BASE,
↑キャッシュの価値総額(一日の許容範囲を超えて損をしていないか?)
私としては、はやくTWSネタを終わらせて、もうちょっと面白そうなMetaTraderにいきたいのですが、まだまだTWSの方に時間を取られそうです。
できましたら、下記の協力お願いいたします。
お客さんにもっときてほしいのでちょっとは宣伝しようと思っております。
FC2 Blog Ranking
で、今日は、TWSのAPIでの口座、ポジション関連の情報の取得方法です。
以前、Interactive Brokers についてのあれこれ Part7 JavaProgramで
まず、基本的なTWSのJavaApiの考え方ですが、
・同期的に使用する命令用のメソッド (EClientSocketのメソッド)
・非同期(コールバック)で呼ばれる回答受け取り用のメソッド (EWrapperのメソッド)
の二系統に分かれます。
みたいのことを書きましたが、今回もこのパターンに当てはまります。
EClientSocket#reqAccountUpdates(boolean subscribe, String acctCode)
を呼ぶと、下記の3メソッドが複数回コールバックされ、口座の状態、ポートフィリオの状態が通知されます。
EWrapper#updateAccountValue(String key, String value, String currency, String accountName)
↑口座情報が通知されます。情報多すぎでわかり難いです。
EWrapper#updatePortfolio(Contract contract, int position, double marketPrice, double marketValue, double averageCost, double unrealizedPNL, double realizedPNL, String accountName)
↑ポートフィリオ情報が通知されます。ポジションを持ってない場合は呼ばれません。
EWrapper#updateAccountTime(String timeStamp)
↑更新時間が帰ってくるだけです。すごくシンプルです。
reqAccountUpdatesの呼び出し時の注意点ですが、まず、通常の個人口座の場合、
EClientSocket#reqAccountUpdates(boolean subscribe, String acctCode)
の「acctCode」は空文字("")を指定するようです。TWSにログインするときにアカウント情報を与えているので、API的に指定しなおす必要はないようです(指定するとお前の口座はマルチアカウント口座じゃないだろ見たいなエラーが出ます)。
↑ 2007/11/21 追記・修正
完全に読み間違えていました。subscribeを「true」でアカウント情報取得開始、「false」でアカウント情報取得終了でした。falseのみを指定していると動きません。
「true」で呼び出して、必要な情報がそろったら、「false」を呼び出し止めるといった感じになります。あと、「true」で呼び出したときの情報の更新頻度ですが、値動きがあるたびにリアルタイムで更新されるわけではないようです。trueのままほかっておいた所、3分おきに呼び出されていました(秒単位のトレードの場合大丈夫なのか・・・?)。
エラーなく呼び出せた場合、updateAccountValue、updatePortfolioによって情報が通知されます。
で、通知される情報の内容ですが、下記Windowの情報にあたる情報が通知されるようです。

updatePortfolioメソッドでは、上記のWindowのPortfolio欄(一番下の表)の情報が、1行1メソッド呼び出しの形で通知されます(上記の例だと「GBP.JPY」「EUR.USD」で二回呼び出し)。
一方、updateAccountValueでは、上記のWindowのPortfolioの情報以外すべてが通知されるようです。しかも、1行1メソッド呼び出しではなく、1セル1メソッド呼び出しの呼び出しのようです。よって、山のようにメソッドが呼び出され、正直どの情報が参照すべき情報かすぐわからず非常に悩ましいです。
個人的には、下記の情報をみとけばいいかとおもっております。
key=AvailableFunds,currency=JPY
↑取引可能額(ポジションを新規に持つ額があるか?)
key=CashBalance,currency=BASE,
↑キャッシュの価値総額(一日の許容範囲を超えて損をしていないか?)
私としては、はやくTWSネタを終わらせて、もうちょっと面白そうなMetaTraderにいきたいのですが、まだまだTWSの方に時間を取られそうです。
できましたら、下記の協力お願いいたします。
お客さんにもっときてほしいのでちょっとは宣伝しようと思っております。
書籍の紹介 魔術師たちの投資術 ★★★
「魔術師たちの投資術」のレビューです。
まだ、一回読んだだけですが、とりあえず読み終わりました。読んだレビューですが、為替のシステムトレーダに直接役に立つことは、限られています。実際の投資手法は、不動産、株の長期売買とうについて主に触れられいるためです。
が、じゃあ、役にたたないかというと、そんなことはありません。経済自立とは何なのか?自分がそれをえるためにいくら必要なのか?といった投資家として食べていく上での基礎知識的なことが記述されています(例えば、自分の資産を洗いだそううとか、負債をまずなくそうだとか、リスク、リターンの考え方とか、システムを信じると決めた以上全て従えとか)。
ただ、これらの内容は、洋書系の投資の書籍(金持ち父さんとか)なら、わりと触れられている内容なのでそれらの書籍読まれてない方にお奨めします(じゃないと、当たり前のことばかり書いてあるじゃんと思われると思います)。
よいパート(1章、4章、5章)はあるのですが、直接役に立たない部分もあるので★3(まあ、良書)としています。
ちなみに、評価は、下記のような基準で辛めで考えています。
★★★★★ 何もいわずに買って読んでみて。
(ほとんど付ける気はありません。年1冊出るか?ってレベルにするつもりです。
もしくは、具体的、かつ、短期単純な手段によりお金がもうかり
本代を回収できる場合にはつけます)
★★★★ とても買ってよかったと思う。強くお勧め。
★★★ コストパフォーマンス的には、買ってよかったと思う。
ただ、一部引っかかる内容もあり。
★★ 採算ライン。まあ、買って損はないが、人に薦めるかと言うと微妙。
レビュー読んで気が向いたら買ってください。
★ 私なら、買わないです。
ちなみに、「魔術師たちの心理学」も読んでいるのですが、正直こっちのほうがよさげな感じです。なは、心理学とありますが、心理≒投資であり、投資において乗り越えなければならない課題、おかしがちな過ちとうについて記述されています。
「二冊もかうのはな〜、どっちがいいかな〜」と思われている方は、心理学のほうから入るといいと思います。
![]() | 魔術師たちの投資術~経済的自立を勝ち取るための安全な戦略 (ウィザードブックシリーズ) (2005/02/26) バン・K・タープ、D・R・バートン・ジュニア 他 商品詳細を見る |
まだ、一回読んだだけですが、とりあえず読み終わりました。読んだレビューですが、為替のシステムトレーダに直接役に立つことは、限られています。実際の投資手法は、不動産、株の長期売買とうについて主に触れられいるためです。
が、じゃあ、役にたたないかというと、そんなことはありません。経済自立とは何なのか?自分がそれをえるためにいくら必要なのか?といった投資家として食べていく上での基礎知識的なことが記述されています(例えば、自分の資産を洗いだそううとか、負債をまずなくそうだとか、リスク、リターンの考え方とか、システムを信じると決めた以上全て従えとか)。
ただ、これらの内容は、洋書系の投資の書籍(金持ち父さんとか)なら、わりと触れられている内容なのでそれらの書籍読まれてない方にお奨めします(じゃないと、当たり前のことばかり書いてあるじゃんと思われると思います)。
よいパート(1章、4章、5章)はあるのですが、直接役に立たない部分もあるので★3(まあ、良書)としています。
ちなみに、評価は、下記のような基準で辛めで考えています。
★★★★★ 何もいわずに買って読んでみて。
(ほとんど付ける気はありません。年1冊出るか?ってレベルにするつもりです。
もしくは、具体的、かつ、短期単純な手段によりお金がもうかり
本代を回収できる場合にはつけます)
★★★★ とても買ってよかったと思う。強くお勧め。
★★★ コストパフォーマンス的には、買ってよかったと思う。
ただ、一部引っかかる内容もあり。
★★ 採算ライン。まあ、買って損はないが、人に薦めるかと言うと微妙。
レビュー読んで気が向いたら買ってください。
★ 私なら、買わないです。
ちなみに、「魔術師たちの心理学」も読んでいるのですが、正直こっちのほうがよさげな感じです。なは、心理学とありますが、心理≒投資であり、投資において乗り越えなければならない課題、おかしがちな過ちとうについて記述されています。
「二冊もかうのはな〜、どっちがいいかな〜」と思われている方は、心理学のほうから入るといいと思います。
書籍の紹介 魔術師たちのXXX
ここ一週間ほど更新が滞っていたのですが、その原因は、
裁量取引で激しくぼこられ
テンションが激しく下がっていたためです。
本当のシステムトレーダーを目指すなら、単純にシステムを作るだけでなく、その他にも心構えとか、色々必要ってことですね。
で、反省の意味もこめ、今ちまちまと読んでいる本の紹介です(まだ読み終わっていません)。
読み終わりましたら、評価記事でも書こうと思います。
ただ、一般的に名著といわれる部類だと思っていますし、まあ、値段もお手ごろなので、興味がわく方は買ってみるかといいかと思います。
ちなみに、為替に特化した本ではないです。「金持ち父さん」系の情報と、あと、システムトレードの各種戦略(為替ではなく、システムトレード全般の話より)の本になります。
まだ、パラ読み状態ですが、色々示唆に富んでいるとは思います。
裁量取引で激しくぼこられ
テンションが激しく下がっていたためです。
本当のシステムトレーダーを目指すなら、単純にシステムを作るだけでなく、その他にも心構えとか、色々必要ってことですね。
で、反省の意味もこめ、今ちまちまと読んでいる本の紹介です(まだ読み終わっていません)。
![]() | 魔術師たちの投資術~経済的自立を勝ち取るための安全な戦略 (ウィザードブックシリーズ) (2005/02/26) バン・K・タープ、D・R・バートン・ジュニア 他 商品詳細を見る |
![]() | 魔術師たちの心理学 ― トレードで生計を立てる秘訣と心構え (ウィザード・ブックシリーズ) (2002/02/28) バン・K・タープ、Van K Tharp 他 商品詳細を見る |
読み終わりましたら、評価記事でも書こうと思います。
ただ、一般的に名著といわれる部類だと思っていますし、まあ、値段もお手ごろなので、興味がわく方は買ってみるかといいかと思います。
ちなみに、為替に特化した本ではないです。「金持ち父さん」系の情報と、あと、システムトレードの各種戦略(為替ではなく、システムトレード全般の話より)の本になります。
まだ、パラ読み状態ですが、色々示唆に富んでいるとは思います。
Interactive Brokers についてのあれこれ Part8 時間関連の注文
TWS(Interactive Brokers のクライアント)は、鬼のように機能が多くてまだ使いこなせていません。
が、ちまちまと、覚えていこうとおもっております。
で、今日のお題は、時間をトリガーとした注文です。
GAT(Good After Time)
と
GTC(Good-Til-Canceled )
ですね。
GATは、指定した時間を経過した後、有効化される注文です。
たとえば、マーケットのオープンを条件に、指標の発表時間を条件にと
いった使い方ができるかと思います。
GTCは、その逆で、指定した時間内に実行されなかった場合、
キャンセルされる注文です。
たとえば、指値と組み合わせて、アジアセッション中にXXXまで
下がったら買うけど、ヨーロッパセッションに入ったら取り消すと
いった使い方ができるかと思います。
で、この機能を使う上での注意ですが、
デフォルトでは有効化されていません。
ってことで、下記画面で機能をONにしましょう。

で、次に使用方法ですが、下記の期限設定用のタブを使用します。

GATの場合は、単純にGood After Timeの欄に日付を入れるだけです。
MKTの注文とかとくみあわせると、ちゃんと効いていることが実感できるでしょう。
GTCの場合は、注文期限の欄をGTCに変更し、
下の有効期限の欄に設定を行います。
時間を絡めた戦略というのは、結構色々あると思います
それらが、プログラムレスでできるのは、うれしいですね。
まあ、ここのページに来ている人はがりがり書きそうな人が多い気もしますが、、、、
できましたら、下記の協力お願いいたします。
お客さんにもっときてほしいのでちょっとは宣伝しようと思っております。
FC2 Blog Ranking
が、ちまちまと、覚えていこうとおもっております。
で、今日のお題は、時間をトリガーとした注文です。
GAT(Good After Time)
と
GTC(Good-Til-Canceled )
ですね。
GATは、指定した時間を経過した後、有効化される注文です。
たとえば、マーケットのオープンを条件に、指標の発表時間を条件にと
いった使い方ができるかと思います。
GTCは、その逆で、指定した時間内に実行されなかった場合、
キャンセルされる注文です。
たとえば、指値と組み合わせて、アジアセッション中にXXXまで
下がったら買うけど、ヨーロッパセッションに入ったら取り消すと
いった使い方ができるかと思います。
で、この機能を使う上での注意ですが、
デフォルトでは有効化されていません。
ってことで、下記画面で機能をONにしましょう。

で、次に使用方法ですが、下記の期限設定用のタブを使用します。

GATの場合は、単純にGood After Timeの欄に日付を入れるだけです。
MKTの注文とかとくみあわせると、ちゃんと効いていることが実感できるでしょう。
GTCの場合は、注文期限の欄をGTCに変更し、
下の有効期限の欄に設定を行います。
時間を絡めた戦略というのは、結構色々あると思います
それらが、プログラムレスでできるのは、うれしいですね。
まあ、ここのページに来ている人はがりがり書きそうな人が多い気もしますが、、、、
できましたら、下記の協力お願いいたします。
お客さんにもっときてほしいのでちょっとは宣伝しようと思っております。
豆知識 Form ヤフーグループ:forex-bigwave
検証、裏づけは取っていないんですが、
自分が所属しているグループの掲示板で非常に気になる書き込みがあったので転記します。
●お題1 スワップがつかないブローカー?
前々から、スワップがつかないブローカがあるといううわさは聞いていたのですが、
大丈夫なのでしょうか?
いや、みんなが、上記のようなことやったらそのブローカ確実に潰れますよね。
世の中そんな悪知恵が働くばかりの人間じゃないということか、
もしくは、気づいていない落とし穴があるということでしょうか・・・・?
●お題2 課税を遅らせる方法!?
国内・海外で煩雑になるかどうかが決まるのではなく、円建てでトレードするのか
外貨でトレードするのかによって決まります。日本に支店がない海外のブローカー
であっても、円建て口座でトレードしている限り、申告の手間は国内ブローカーと
まったく同じです(くりっく365除く)。
面倒なのは外貨建てでトレードして、利益を円にコンバージョンしたときです。
この場合、円に替えた利益が課税額に達していれば、すべての取引(ポジション〜
クローズ)で、その日のTTレートを元に損益を計算して申告する必要があります。
外貨建てでスキャルピングやデイトレードをして儲かると、めまいがしそうです。
しかし別の側面もあります。外貨建てで運用している限り、日本では申告義務は発生しません(外貨建ての雑所得は申告できない)。これは言い換えると、フルコンパウンドで長期運用を考えている方は、円に替えるまで課税を先延ばしできるということになります。つまり利益が出たとしても税金に左右されず、本当の意味でフルコンパウンド運用ができるということになります。
いやはや、すごいネタに思えるんですが、どう思われますか?
これで、課税されずに本当の複利運用ができるってことですよね。
ただ、外貨のベースを何にするかは悩みどころですが、、、、
個人的には、中国の切り上げが今後あり、それにつられ、アジア通貨は
一時的に上昇するのかなとかってに妄想しております。
なので、今の現状だと、円建てで資産を持っているというのは、ありなんじゃないかと
と思っているのですが、税金との兼ね合いが悩ましいです。
できましたら、下記の協力お願いいたします。
お客さんにもっときてほしいのでちょっとは宣伝しようと思っております。
FC2 Blog Ranking
自分が所属しているグループの掲示板で非常に気になる書き込みがあったので転記します。
●お題1 スワップがつかないブローカー?
このブローカー(CrownForex)はスワップがつかないようです。ロングしてもショートしても
スワップはゼロ。他のブローカーでスワップポジションして、CrownForexで
反対のポジションを持てば、為替リスクなしでスワップが受け取れるなぁ
などと思ったり。
というわけで、ちょいと狸の皮算用。
原資:1,000,000円 (50万円×2)
レバレッジ:30
対象ペア:AUDJPY
1万通貨ポジションするのに必要な証拠金:35,667円
MC:30%(マイナス350,000円になった時点でアウト)
1万→3500pips/ST 162/day 59,130/yr
2万→1750pips/ST 324/day 118,260/yr
3万→1166pips/ST 486/day 177,390/yr
4万→875pips/ST 648/day 236,520/yr
5万→700pips/ST 810/day 295,650/yr
6万→583pips/ST 972/day 354,780/yr
7万→500pips/ST 1,134/day 413,910/yr
8万→437pips/ST 1,296/day 473,040/yr
※計算が合ってるかどうか自信ありません。
AUDJPYは値動きが激しいので、現実的にはレバレッジ30倍なら
それぞれ5万通貨ずつポジションするという感じでしょうか。それ以上だと
ストップにかかったときの資金移動がめんどくさそうです。
原資100万円に対して、スワップのみの年間最大リターンは30%弱。
前々から、スワップがつかないブローカがあるといううわさは聞いていたのですが、
大丈夫なのでしょうか?
いや、みんなが、上記のようなことやったらそのブローカ確実に潰れますよね。
世の中そんな悪知恵が働くばかりの人間じゃないということか、
もしくは、気づいていない落とし穴があるということでしょうか・・・・?
●お題2 課税を遅らせる方法!?
国内・海外で煩雑になるかどうかが決まるのではなく、円建てでトレードするのか
外貨でトレードするのかによって決まります。日本に支店がない海外のブローカー
であっても、円建て口座でトレードしている限り、申告の手間は国内ブローカーと
まったく同じです(くりっく365除く)。
面倒なのは外貨建てでトレードして、利益を円にコンバージョンしたときです。
この場合、円に替えた利益が課税額に達していれば、すべての取引(ポジション〜
クローズ)で、その日のTTレートを元に損益を計算して申告する必要があります。
外貨建てでスキャルピングやデイトレードをして儲かると、めまいがしそうです。
しかし別の側面もあります。外貨建てで運用している限り、日本では申告義務は発生しません(外貨建ての雑所得は申告できない)。これは言い換えると、フルコンパウンドで長期運用を考えている方は、円に替えるまで課税を先延ばしできるということになります。つまり利益が出たとしても税金に左右されず、本当の意味でフルコンパウンド運用ができるということになります。
いやはや、すごいネタに思えるんですが、どう思われますか?
これで、課税されずに本当の複利運用ができるってことですよね。
ただ、外貨のベースを何にするかは悩みどころですが、、、、
個人的には、中国の切り上げが今後あり、それにつられ、アジア通貨は
一時的に上昇するのかなとかってに妄想しております。
なので、今の現状だと、円建てで資産を持っているというのは、ありなんじゃないかと
と思っているのですが、税金との兼ね合いが悩ましいです。
できましたら、下記の協力お願いいたします。
お客さんにもっときてほしいのでちょっとは宣伝しようと思っております。



