From 0a06834ed536967ec34849947e478e297b5c5447 Mon Sep 17 00:00:00 2001 From: Azimkin <112006710+Azimkin@users.noreply.github.com> Date: Tue, 22 Sep 2026 11:57:04 +0200 Subject: [PATCH] Fix Bybit linear open orders query --- src/llm_trade_bot/bybit_gateway.py | 5 ++++- tests/test_bybit_gateway.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 tests/test_bybit_gateway.py diff --git a/src/llm_trade_bot/bybit_gateway.py b/src/llm_trade_bot/bybit_gateway.py index 06359d1..caca155 100644 --- a/src/llm_trade_bot/bybit_gateway.py +++ b/src/llm_trade_bot/bybit_gateway.py @@ -74,7 +74,10 @@ class BybitGateway: categories = [category] if category else list(self.scanner.categories) result: list[dict[str, Any]] = [] for item_category in categories: - response = await self._call(self._http.get_open_orders, category=item_category, limit=50) + parameters: dict[str, Any] = {"category": item_category, "limit": 50} + if item_category == "linear": + parameters["settleCoin"] = self.config.settle_coin + response = await self._call(self._http.get_open_orders, **parameters) for order in _result(response).get("list", []): order = dict(order) order.setdefault("category", item_category) diff --git a/tests/test_bybit_gateway.py b/tests/test_bybit_gateway.py new file mode 100644 index 0000000..5e33273 --- /dev/null +++ b/tests/test_bybit_gateway.py @@ -0,0 +1,28 @@ +from __future__ import annotations + +from typing import Any + +from llm_trade_bot.bybit_gateway import BybitGateway +from llm_trade_bot.config import BybitConfig, ScannerConfig + + +class FakeBybitHTTP: + def __init__(self) -> None: + self.open_order_requests: list[dict[str, Any]] = [] + + def get_open_orders(self, **parameters: Any) -> dict[str, Any]: + self.open_order_requests.append(parameters) + return {"retCode": 0, "result": {"list": []}} + + +async def test_open_orders_scopes_linear_requests_by_settle_coin() -> None: + gateway = BybitGateway(BybitConfig("key", "secret", "USDC"), ScannerConfig()) + http = FakeBybitHTTP() + gateway._http = http # type: ignore[assignment] + + await gateway.open_orders() + + assert http.open_order_requests == [ + {"category": "spot", "limit": 50}, + {"category": "linear", "limit": 50, "settleCoin": "USDC"}, + ]