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

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

CommInfoBaseが毎回初期化される

github.com

backtrader/brokers/bbroker.py の1187行目、 comminfo に対し、 self.getcommissioninfo(data) の戻り値を代入している。

当初の予定では、ここで得られる backtrader.CommInfoBase のインスタンスに対し、「金利計算済み」かどうかのフラグを持たせようとしていた。これにより、バックテストで現在着目している日時に新規に建玉を作成したのか、それとも以前から保持している建玉に再注目しただけなのかを判別し、金利を同日に重複して引き落とさないようにすることを達成しようとしていた。

しかし、実際は1187行目で得られるインスタンスにそのような情報を保存させても、呼ばれる度に初期化されていたためできなかった。幸い、1189行目で comminfo.get_credit_interest(data, pos, dt0) として data (=backtrader.feed.DataBase) が呼ばれているので、ここで保持できないか試してみたい。

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