Open khanbekov opened 1 year ago
Предлагаю делать проверку на NoneType, чтобы избежать такой ошибки
price = Decimal(data["price"])
- скорее всего тут нет поля price
я очень часто вам советую делать вот так, это надо сделать привычкой:
if `price` in
price = Decimal(data["price"])
@khanbekov Что такое "ордера из быстрых торгов"?
price = Decimal(data["price"])
- скорее всего тут нет поляprice
я очень часто вам советую делать вот так, это надо сделать привычкой:
if `price` in price = Decimal(data["price"])
Да, новый код уже стараюсь писать так. На старый с рефакторингом пока не набрасываюсь, буду постепенно добавлять эти проверки
@khanbekov Что такое "ордера из быстрых торгов"?
На exmo есть такой тип торговли, как "быстрые торги". По сути, это упрощенный способ покупки активов. Полагаю, он использует маркет ордер
@khanbekov Правильно я понимаю, что у ордеров с быстрых торгов может не быть цены?
@khanbekov Правильно я понимаю, что у ордеров с быстрых торгов может не быть цены?
Точно не могу сказать, не знаю, какие сообщения приходят из быстрых торгов. Веронятно да, раз в сообщении не было цены.
@nomnoms12 Ошибка проявилась не только на ордерах из быстрых торгов, но и на обычных. Видимо, это касается и маркет ордеров
2022-09-30 12:53:21,749 [407131] DEBUG - flash_gate.exchange.exchanges - Order has been successfully created: {'client_order_id': None, 'symbol': 'BTC/USDT', 'type': 'market', 'side': 'buy', 'amount': 0.00128, 'price': 0, 'id': '31471811429', 'status': 'closed', 'filled': 0.00128, 'timestamp': 1664531601749000, 'info': {'result': True, 'error': '', 'order_id': '31471811429'}}
2022-09-30 12:53:21,756 [407131] DEBUG - websockets.client - < TEXT '{"ts":1664531601743,"event":"update","topic":"s...,"status":"executing"}}' [241 bytes]
2022-09-30 12:53:21,757 [407131] DEBUG - websockets.client - < TEXT '{"ts":1664531601743,"event":"update","topic":"s...e_quantity":"0.00195"}}' [322 bytes]
2022-09-30 12:53:21,757 [407131] DEBUG - websockets.client - < TEXT '{"ts":1664531601743,"event":"update","topic":"s...e_quantity":"0.00195"}}' [322 bytes]
2022-09-30 12:53:21,757 [407131] ERROR - flash_gate.gate.gate - 'price'
Traceback (most recent call last):
File "/home/ubuntu/flash-gate/flash_gate/gate/gate.py", line 418, in watch_orders
orders = await self.rock.watch_orders()
File "/home/ubuntu/.local/share/virtualenvs/flash-gate-lm98JxV3/lib/python3.10/site-packages/rock/exchanges/exmo/exmo.py", line 18, in wrapped
return await io(self, *args, **kwargs)
File "/home/ubuntu/.local/share/virtualenvs/flash-gate-lm98JxV3/lib/python3.10/site-packages/rock/exchanges/exmo/exmo.py", line 62, in watch_orders
orders = OrdersFormatter.format(event)
File "/home/ubuntu/.local/share/virtualenvs/flash-gate-lm98JxV3/lib/python3.10/site-packages/rock/exchanges/exmo/abc.py", line 12, in format
formatted = cls._from_update(event)
File "/home/ubuntu/.local/share/virtualenvs/flash-gate-lm98JxV3/lib/python3.10/site-packages/rock/exchanges/exmo/formatters.py", line 46, in _from_update
orders = [OrdersFormatter._order(event["ts"], event["data"])]
File "/home/ubuntu/.local/share/virtualenvs/flash-gate-lm98JxV3/lib/python3.10/site-packages/rock/exchanges/exmo/formatters.py", line 56, in _order
price = Decimal(data["price"])
KeyError: 'price'
Эта ошибка стала возникать очень часто, повышаю приоритет issue @nomnoms12
Иногда возникает ошибка, связанная с ордерами. Не могу приложить ордер, который получило ядро, скорее всего это ордер из быстрых торгов на exmo, который я использую для ручной балансировки. Критичная ошибка.
Полный traceback