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

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

データを範囲で読み込んで使用できるようにした

github.com

値を範囲でサーバに要求し、得られたレスポンスをパースしてデータとして使用できるようにした。一部後述の通り動いていない部分があったが、値の要求〜応答部分は一旦できたため、マージした。

TODO

グラフのプロットに失敗

グラフのプロットを行う際、 time_and_sales_deliver_feed.TimeAndSalesDeliverData のインスタンスが渡っていることで RuntimeError が起こっているので、適切な値を渡すように変更する。

下記は、 main.py の実行結果のうち、エラーの抜粋。

Traceback (most recent call last):
  File "stock-trading-system/src/main.py", line 129, in <module>
    cerebro.plot(b)
  File "stock-trading-system/.venv/src/backtrader/backtrader/cerebro.py", line 989, in plot
    rfig = plotter.plot(strat, figid=si * 100,
  File "stock-trading-system/.venv/lib/python3.10/site-packages/backtrader_plotting/bokeh/bokeh.py", line 516, in plot
    self._blueprint_strategy(obj, start, end, tradingdomain, **kwargs)
  File "stock-trading-system/.venv/lib/python3.10/site-packages/backtrader_plotting/bokeh/bokeh.py", line 228, in _blueprint_strategy
    figureenv.plot(master)
  File "stock-trading-system/.venv/lib/python3.10/site-packages/backtrader_plotting/bokeh/figure.py", line 180, in plot
    self.plot_data(obj)
  File "stock-trading-system/.venv/lib/python3.10/site-packages/backtrader_plotting/bokeh/figure.py", line 253, in plot_data
    title = sanitize_source_name(labelizer.label(data))
  File "stock-trading-system/.venv/lib/python3.10/site-packages/backtrader_plotting/bokeh/labelizer.py", line 84, in label
    primary = _label_datafeed(obj)
  File "stock-trading-system/.venv/lib/python3.10/site-packages/backtrader_plotting/bokeh/labelizer.py", line 52, in _label_datafeed
    raise RuntimeError(f'Unexpected data type: {data.__class__}')
RuntimeError: Unexpected data type: <class 'time_and_sales_deliver_feed.TimeAndSalesDeliverData'>

データのreverseが必要

日時降順になっていると、期待通りの動作をしないため、reverseが必要。

下記は main.py の実行結果の抜粋。価格情報は伏せてある。

[DEBUG] 2021-11-02T12:34:33, [Close] = 50xxx.00
[INFO] 2021-11-02T12:34:33, BUY CREATE, 50xxx.00
[DEBUG] 2021-11-02T12:34:33, [Close] = 50xxx.00
[DEBUG] 2021-11-01T12:34:58, [Close] = 50xxx.00
[DEBUG] 2021-11-01T12:34:57, [Close] = 50xxx.00

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