diff --git a/freqtrade/rpc/api_server.py b/freqtrade/rpc/api_server.py index e158df0be..d47def4a6 100644 --- a/freqtrade/rpc/api_server.py +++ b/freqtrade/rpc/api_server.py @@ -123,9 +123,10 @@ class ApiServer(RPC): methods=['GET', 'POST']) app.add_url_rule('/whitelist', 'whitelist', view_func=self._whitelist, methods=['GET']) + app.add_url_rule('/forcebuy', 'forcebuy', view_func=self._forcebuy, methods=['POST']) + app.add_url_rule('/forcesell', 'forcesell', view_func=self._forcesell, methods=['POST']) + # TODO: Implement the following - # forcebuy - # forcesell # help (?) def run(self): @@ -325,3 +326,23 @@ class ApiServer(RPC): add = request.json.get("blacklist", None) if request.method == 'POST' else None results = self._rpc_blacklist(add) return self.rest_dump(results) + + @safe_rpc + def _forcebuy(self): + """ + Handler for /forcebuy. + """ + asset = request.json.get("pair") + price = request.json.get("price", None) + trade = self._rpc_forcebuy(asset, price) + # TODO: Returns a trade, we need to jsonify that. + return self.rest_dump(trade) + + @safe_rpc + def _forcesell(self): + """ + Handler for /forcesell. + """ + tradeid = request.json.get("tradeid") + results = self._rpc_forcesell(tradeid) + return self.rest_dump(results) diff --git a/scripts/rest_client.py b/scripts/rest_client.py index 4830d43b8..81c4b66cc 100755 --- a/scripts/rest_client.py +++ b/scripts/rest_client.py @@ -167,6 +167,27 @@ class FtRestClient(): else: return self._post("blacklist", data={"blacklist": args}) + def forcebuy(self, pair, price=None): + """ + Buy an asset + :param pair: Pair to buy (ETH/BTC) + :param price: Optional - price to buy + :returns: json object of the trade + """ + data = {"pair": pair, + "price": price + } + return self._post("forcebuy", data=data) + + def forcesell(self, tradeid): + """ + Force-sell a trade + :param tradeid: Id of the trade (can be received via status command) + :returns: json object + """ + + return self._post("forcesell", data={"tradeid": tradeid}) + def add_arguments(): parser = argparse.ArgumentParser()