株のシステムトレードをしよう - 1から始める株自動取引システムの作り方

株式をコンピュータに売買させる仕組みを少しずつ作っていきます。できあがってから公開ではなく、書いたら途中でも記事として即掲載して、後から固定ページにして体裁を整える方式で進めていきます。

技術メモ:リアルタイムトレード(ライブトレード) その2

昨日の振り返りと今日の内容

昨日はリアルタイムトレードを行う助けとなるドキュメントの紹介をし始めた。今日はその続きをしていく。

how-to-make-stock-trading-system.dogwood008.com

Store Model を使用する場合のコードは下記のようになる。 backtrader の公式ドキュメントより(閲覧日:2021年1月24日)引用。

import backtrader as bt

ibstore = bt.stores.IBStore(host='127.0.0.1', port=7496, clientId=35)
data = ibstore.getdata(dataname='EUR.USD-CASH-IDEALPRO')

backtrader.stores.IBStore の紹介

以下、 IB とは Interactive Broker を指す。

IBStore.getbroker(*args, **kwargs) というメソッドで backtrader.broker.MetaBroker を継承したクラスのインスタンスを返す。

また、同様に IBStore.getdata(*args, **kwargs) というメソッドで、 backtrader.feeds.MetaAbstractDataBase を継承したクラスのインスタンスを返す。

backtrader.feeds.IBData の紹介

次のようなデータを提供する。

  • 過去データのダウンロードリクエスト
  • tickPrice イベント( IBData の reqMktData メソッドを呼び出すことで提供される)
    • CASH製品に使用される1、とある。自分で broker を作成するなら、無視して良いかもしれない。
  • tickString イベント (別名 RTVolume 、同様に IB の reqMktData メソッドを呼び出すことで提供される)
    • OHLCV2データを IB から約250ミリ秒毎または、無取引ならそれ以上の間隔で、スナップショットを受信する。
  • RealTimeBars イベント(同様に IB の reqRealTimeBars メソッドを呼び出すことで提供される)
    • 5秒毎に過去の5秒のバーを受け取る。間隔は IB によって固定されている。
  • Backfilling 、埋め戻し
    • リアルタイムトレードの開始時:その時点までの空白期間をデフォルトで最大1年まで遡って埋められる。
    • データ切断され、復旧後:切断前の最新のデータからの差分に限ることで、必要最小限のデータのみをダウンロードする。

さて、明日以降も同様に調査を進める。


  1. TWS APIのv 9.70 時点では実験的機能であり、他のタイプは提供されていないとある。

  2. Open, High, Low, Close, Volumeデータ。すなわち、始値、高値、安値、終値、取引量である。

(C) 2020 dogwood008 禁無断転載 不許複製 Reprinting, reproducing are prohibited.