昨日の振り返りと今日の内容
昨日はリアルタイムトレードを行う助けとなるドキュメントの紹介をし始めた。今日はその続きをしていく。
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年まで遡って埋められる。
- データ切断され、復旧後:切断前の最新のデータからの差分に限ることで、必要最小限のデータのみをダウンロードする。
さて、明日以降も同様に調査を進める。