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

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

Backtrader で KABU+ のデータを読めるようにする その3

昨日は、どの辺で転けているかの特定を行った。

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

具体的には、

h = float(linetokens[next(i)])

で転けている。

/usr/local/lib/python3.6/dist-packages/backtrader/feeds/yahoo.py in _loadline(self, linetokens)
    132         self.lines.datetime[0] = dtnum
    133         o = float(linetokens[next(i)])
--> 134         h = float(linetokens[next(i)])
    135         l = float(linetokens[next(i)])
    136         c = float(linetokens[next(i)])

ValueError: could not convert string to float: 'SGホールディングス'

この時、 SGホールディングス という strfloat に変換しようとして失敗した、というのがこのエラーの趣旨である。

ソースを見る限りでは、 linetokens に添字でインデックスを与えると読み込めるようである。 list または tuple のようなオブジェクトである事が推測できる。

また、添字は L136の i = itertools.count(0)で 初期化され、next(i) で1ずつ増えているようである。

この辺の代入処理をカラム名とインデックス番号とを見ながら適切に扱えば、o h l c への代入は良さそうだ。

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