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

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

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

概要

昨日の内容で、KABU+のCSVをBacktraderで読み込むことができた。

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

今回はそのコードを解説していく。

CSVファイルの読み込み

    def start(self):
(中略)
        if self.p.headers and self.p.header_names:
            _csv_reader = csv.reader([self.f.readline()])
            self._csv_headers = next(_csv_reader)

元々のコードでは読み込んだヘッダは、どこにも格納せずに捨てていた。一方こちらではそれを self._csv_headers に格納して、後から再利用できるようにした。

_loadline メソッド

    def _loadline(self, linetokens):
(中略)
        dttxt = self._fetch_value(linetokens, self.DATE)
(中略)
        o = float(self._fetch_value(linetokens, self.OPEN))
        h = float(self._fetch_value(linetokens, self.HIGH))
        l = float(self._fetch_value(linetokens, self.LOW))
        rawc = float(self._fetch_value(linetokens, self.CLOSE))

_fetch_value() メソッドを定義して、 list 型の linetokens から、値を取り出すように変更した。 _fetch_value() メソッドでは、与えられたキー (例: self.DATE )に対応するインデックス番号をCSVのヘッダと対応させて割り出し、 list からインデックス番号で値を取り出すようにした。

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