コバのシステムトレード構築日記(Dukascopy他)

IB証券/DukascopyとのAPI接続ナレッジや、トレステなど

IB証券:API接続検証その3「まずはどんな感じでデータが取れるのかを確認」

イメージをつかむために、サンプルデモプログラムを動かすのが一番。

VB用と、C#用が何もせずに exe実行すれば動くので、見た目の解り易さで C#のプログラムを起動します。

ソースを展開したディレクトリ、(私の場合は ドライブDに展開した)

D:\TWS API\samples\CSharp\IBSampleApp\bin\Release

に、IBSampleApp.exe があるので実行。こんな感じ。

f:id:koba_tradestation:20170114101416j:plain

実際に動かすには、口座開設と1万ドル以上もしくは同等の任意の通貨での入金し、承認されて、データ情報を受け取る金融商品をアクティベートしてからになるので、ゼロから手続きすると半月ぐらいはかかると思います。

ドル円を、15分足で、midpoint中間値で、履歴データを表示させるとこんな画面になります。

f:id:koba_tradestation:20170114101809j:plain

VisualStudio2015 CommunityEditionとか入手して、ソリューションファイルを読み込んでデザインを変えて再構築したりしても楽しいかもしれません。

☆ソリューションファイルは、絶対パスで記述されているので、エディタなどで自分の環境に合わせてディレクトリパスなどを書き換えないと動きません。

 

IB証券:API接続検証その2「必要な前提知識と資料など」

IB証券接続プログラムを作成するにあたって、前提となる知識を箇条書き。

足りない場合には学習して取得するしかないと思います。

Java or C# or VB or C++ or Pythonのプログラミング能力

オブジェクト指向の理解

・英語の読解力

 

 1つ目はサンプルコードが上記のいずれかであるため。それ以外に Swiftやらpythonやらで対応したい場合は自力でクラスライブラリなりを作る労力が必要ですが不可能ではないと思います。2つ目は Javaのサンプルコードを読む限り、3階層ぐらいのオブジェクトの継承と Interface実装を伴うので解っていないとコード読むことができないと思います。3つ目は、まぁ資料が英語しかないので仕方ないです。

(追記)驚きです。この記事を書いていたらオンラインヘルプに Pythonが追加されていました。たぶん昨日までなかったと思う。。

 

資料のリンクなど:

 これらは、特に口座開設していなくてもアクセスできると思うので、とりあえず見てみて手に負えそうであればトライしてみる判断になると思います。

・オンラインヘルプ:各言語ごとにヘルプが別れているのでGoodです

TWS API v9.72: Trader Workstation API

APIガイド(言語別):Getting Started Guidesの列の下のほうに言語ごとのPDF。

Traders University | Interactive Brokers オンラインヘルプだけではなくこちらも目を通さないと、たぶんプログラム動かないと思います。ちょっと嵌まりました。

 

・サンプルプログラムソースコード:上記のオンラインヘルプの introductionにリンクがありますが、各言語ごとのデモプログラムとソースが入手できます。

Interactive Brokers - API Software

IB証券:API接続検証その1「サンプルと仮検証」

3連休、いかがお過ごしでしょうか。

急なドル安で、初めてFXにポジション持ってみました。

なんぴんダブルを2回繰り返してちょろっと微益を稼いで、小心者なので金曜夜中は決済したので117円までの戻しでリターンはとれませんでしたが、まぁいい感じでした。

 

IB証券、サンプルソースがダウンロード出来るので、自前の Javaプログラムに組み込むべく、検証開始しました。とりあえずどんな感じでデータがとれるのか、C#向けにコンパイル済みの exeが含まれていたのでちょろっと動かしたところ、

・Forexは92通貨ペアでBid/Ask + 中間値Midpointが、最も高頻度な1secは無理ですが 30sec足で 2005/10/01頃までHigh/Lowを含めて取得出来そうです。(USD/JPYのみチェック)

日本株も同様で、Price, High, Low, Volume,VWAPの値が同じく30秒足で取れそうです。(7201日産/6758ソニーでのみチェック)

 

サンプルコードを解析しながら、データ取り込み出来るようになったらアウトライン概念からちゃんとまとめたいと思います。

IB証券に接続テストでお正月

とりあえず入金した。

ネイティブツールが使えるようにロックが外れた。

jarファイルが使われているのでフルJavaっぽいぬるっとした動きのUI。

微妙だけど、まぁこんなもんでしょうなあ。

 

30日の大納会相場が終われば、大発会と欧米市場が開くまでの短い正月休みというか、ふつうの週末期間しか無いけど、IB証券との接続してできれば簡単なアプリまで作ってみたいともくろみ中。

ここの更新が滞ってひと月近くあっという間、もう12月だ(汗)。

 

トランプ相場であれよあれよでうまく振舞えて2割ほど資産増。

バックエンドプログラム制御のHinemosジョブスケジューラ環境を仮想マシンから物理マシンに移行。

仮想マシン廃止したセカンダリDBサーバ4コアフル使用でバックアップ日次作業を短縮。

バックエンドプログラム処理用のサーバを追加し部屋が温くなり未だ暖房未使用。

スクレイピングプログラムのいくつかのバグとり。

自作システムのクライアントツールをC#で作成。

銘柄情報と日足の分析結果をいい感じで見られるようになった。

トレステとHyperSBIの両方を使うようになってきて画面不足。

トレーディング環境のディスプレイ支持ポール自作で2枚追加。

 

とまぁこんな感じで、シストレ的には書くようなネタでもないなあという感じでした。

今週は C#クライアント作っていて、それが終わったらトレステのロジック使った構成を再開するつもり。

 

 

特にネタなし:IB証券接続

TradeStationについてはELコーディングなど遠ざかってまして特にネタがない日々が1週間ほど続いています。

 

自作のJavaプログラムの不具合改修を続けています。

上場企業のHP丸ごととIR、TDNet、上場企業の財務情報、いくつかの通信社系ニュースのスクレイピング、日足の株価データ取得、日証金と信用残、そういったデータ取得プログラムを安定的に動かすための ジョブスケジューラ Hinemosの設定といった微調整を続けていました。

 現在のシステム構成の DBは、mariaDBを使っています。それ以外にもPDFなどの物理ファイルを自動で落としてきたIRデータ容量が 2TBで足りなくなってきたので、今週末は新しい6TB HDDへの移行作業になります。そのあとでまたトレステELの予定。平日ざら場中は毎分、引け後と寄り付き前は10分間隔でIR公開サイトのいくつかに自動アクセスしているので、ほぼ土日しか作業ができなかったりします。

 

  息抜き?に、InteractiveBrokers証券のアカウントで、ざっくり確認してみたところです。TSEからのマーケットデータ取得は月額300JPYで可能なようです。安いですなあ。どの程度の同時取得が可能なのかはこれから検証ですが、一番期待できそうな感じです。それ以外は Forexなどは口座維持者であれば無料、あとはなぜか韓国市場のマーケットデータが無料なようです。なんでしょう全く買う気になれないので、データ取得の検証用という感じかもしれません。UK, US市場などはそれぞれざっくり20$/月ぐらいかかるみたいなので、しばらくは見送りで、当面はTSEからの予定。

 

 まぁこんな感じの1週間です。

マルチチャートのレイアウトなど

EL使えば色々できますなあ。

先のお話の続きとして。

EL環境から MultiChartを開きます。

ツール、オプションでライン番号表示の前提で、

27行目にこんなのあります。(゜Д゜)
    int MAX_CHARTS(30),

数字変えてみましょう。掛布ファンだったので31は確認しました。

これ以上増やすとどうなるかは知りません。

32行目にこんなのあります。(^_^)

    int SPACE_BETWEEN_CHARTS(10),

8ぐらいにしとくとスクロールバーが出てきてもフルHDで横に9つ並びます。

37行目にこんなのあります。(^_^)

  string TIME_FORMAT_STRING( "%H:%M:%S" ),

1分足以上の表示だったら、:%Sを消しても良いかもしれません。