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