Feat: option for order_by_id

This commit is contained in:
David Arena
2025-04-11 23:53:27 +02:00
parent 6ba0eaf593
commit 49b119f1dc
2 changed files with 7 additions and 3 deletions

View File

@@ -200,9 +200,10 @@ def status(rpc: RPC = Depends(get_rpc)):
def trades( def trades(
limit: int = Query(500, ge=1, description="Maximum number of different trades to return data"), limit: int = Query(500, ge=1, description="Maximum number of different trades to return data"),
offset: int = Query(0, ge=0, description="Number of trades to skip for pagination"), offset: int = Query(0, ge=0, description="Number of trades to skip for pagination"),
order_by_id: bool = Query(True, description="Sort trades by id (default: True). If False, sorts by latest timestamp"),
rpc: RPC = Depends(get_rpc), rpc: RPC = Depends(get_rpc),
): ):
return rpc._rpc_trade_history(limit, offset=offset, order_by_id=True) return rpc._rpc_trade_history(limit, offset=offset, order_by_id=order_by_id)
@router.get("/trade/{tradeid}", response_model=OpenTradeSchema, tags=["info", "trading"]) @router.get("/trade/{tradeid}", response_model=OpenTradeSchema, tags=["info", "trading"])

View File

@@ -255,11 +255,12 @@ class FtRestClient:
""" """
return self._get("logs", params={"limit": limit} if limit else {}) return self._get("logs", params={"limit": limit} if limit else {})
def trades(self, limit=None, offset=None): def trades(self, limit=None, offset=None, order_by_id=True):
"""Return trades history, sorted by id """Return trades history, sorted by id (or by latest timestamp if order_by_id=False)
:param limit: Limits trades to the X last trades. Max 500 trades. :param limit: Limits trades to the X last trades. Max 500 trades.
:param offset: Offset by this amount of trades. :param offset: Offset by this amount of trades.
:param order_by_id: Sort trades by id (default: True). If False, sorts by latest timestamp.
:return: json object :return: json object
""" """
params = {} params = {}
@@ -267,6 +268,8 @@ class FtRestClient:
params["limit"] = limit params["limit"] = limit
if offset: if offset:
params["offset"] = offset params["offset"] = offset
if order_by_id:
params["order_by_id"] = True
return self._get("trades", params) return self._get("trades", params)
def list_open_trades_custom_data(self, key=None, limit=100, offset=0): def list_open_trades_custom_data(self, key=None, limit=100, offset=0):