Merge pull request #10023 from freqtrade/feat/lock_api

Add lock post endpoint
This commit is contained in:
Matthias
2024-03-31 14:05:05 +02:00
committed by GitHub
9 changed files with 79 additions and 18 deletions

View File

@@ -7,7 +7,7 @@ so it can be used as a standalone script, and can be installed independently.
import json
import logging
from typing import Optional
from typing import Any, Dict, List, Optional, Union
from urllib.parse import urlencode, urlparse, urlunparse
import requests
@@ -16,6 +16,9 @@ from requests.exceptions import ConnectionError
logger = logging.getLogger("ft_rest_client")
ParamsT = Optional[Dict[str, Any]]
PostDataT = Optional[Union[Dict[str, Any], List[Dict[str, Any]]]]
class FtRestClient:
@@ -58,13 +61,13 @@ class FtRestClient:
except ConnectionError:
logger.warning("Connection error")
def _get(self, apipath, params: Optional[dict] = None):
def _get(self, apipath, params: ParamsT = None):
return self._call("GET", apipath, params=params)
def _delete(self, apipath, params: Optional[dict] = None):
def _delete(self, apipath, params: ParamsT = None):
return self._call("DELETE", apipath, params=params)
def _post(self, apipath, params: Optional[dict] = None, data: Optional[dict] = None):
def _post(self, apipath, params: ParamsT = None, data: PostDataT = None):
return self._call("POST", apipath, params=params, data=data)
def start(self):
@@ -148,6 +151,25 @@ class FtRestClient:
"""
return self._delete(f"locks/{lock_id}")
def lock_add(self, pair: str, until: str, side: str = '*', reason: str = ''):
"""Lock pair
:param pair: Pair to lock
:param until: Lock until this date (format "2024-03-30 16:00:00Z")
:param side: Side to lock (long, short, *)
:param reason: Reason for the lock
:return: json object
"""
data = [
{
"pair": pair,
"until": until,
"side": side,
"reason": reason
}
]
return self._post("locks", data=data)
def daily(self, days=None):
"""Return the profits for each day, and amount of trades.

View File

@@ -61,6 +61,7 @@ def test_FtRestClient_call_invalid(caplog):
('exits', []),
('mix_tags', []),
('locks', []),
('lock_add', ["XRP/USDT", '2024-01-01 20:00:00Z', '*', 'rand']),
('delete_lock', [2]),
('daily', []),
('daily', [15]),