nautechsystems / nautilus_trader

A high-performance algorithmic trading platform and event-driven backtester
https://nautilustrader.io
GNU Lesser General Public License v3.0
1.7k stars 398 forks source link

Fix Binance active_symbols type miss matching #1729

Closed DevRoss closed 1 week ago

DevRoss commented 1 week ago

Pull Request

fix bug for BinanceSymbol for live trading.

_get_cache_active_symbols adds BinanceSymbol to active_symbols, when instantiating BinanceSymbol, BinanceSymbol was passed in instead of str type, which caused an error at checking symbol by PyCondition.valid_string(symbol, "symbol")

TypeError(Argument 'argument' has incorrect type (expected str, got BinanceSymbol))
Traceback (most recent call last):
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/live/execution_client.py", line 467, in generate_mass_status
    reports = await asyncio.gather(
              ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/adapters/binance/common/execution.py", line 502, in generate_fill_reports
    response = await self._http_account.query_user_trades(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/adapters/binance/http/account.py", line 755, in query_user_trades
    symbol=BinanceSymbol(symbol),
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/adapters/binance/common/symbol.py", line 36, in __new__
    PyCondition.valid_string(symbol, "symbol")
TypeError(Argument 'argument' has incorrect type (expected str, got BinanceSymbol))
Traceback (most recent call last):
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/live/execution_client.py", line 467, in generate_mass_status
    reports = await asyncio.gather(
              ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/adapters/binance/common/execution.py", line 502, in generate_fill_reports
    response = await self._http_account.query_user_trades(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/adapters/binance/http/account.py", line 755, in query_user_trades
    symbol=BinanceSymbol(symbol),
           ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/ross/miniconda3/lib/python3.11/site-packages/nautilus_trader/adapters/binance/common/symbol.py", line 36, in __new__
    PyCondition.valid_string(symbol, "symbol")

Type of change

Delete options that are not relevant.

CLAassistant commented 1 week ago

CLA assistant check
All committers have signed the CLA.

cjdsellers commented 1 week ago

Hi @DevRoss

I can confirm this change is good and is the intended typing, many thanks for the contribution! :pray: