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