mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-14 04:03:55 +00:00
Add fetch_dry_run_order method
This commit is contained in:
parent
10cd89a99d
commit
67beda6c92
|
@ -591,6 +591,19 @@ class Exchange:
|
||||||
closed_order["info"].update({"stopPrice": closed_order["price"]})
|
closed_order["info"].update({"stopPrice": closed_order["price"]})
|
||||||
self._dry_run_open_orders[closed_order["id"]] = closed_order
|
self._dry_run_open_orders[closed_order["id"]] = closed_order
|
||||||
|
|
||||||
|
def fetch_dry_run_order(self, order_id) -> Dict[str, Any]:
|
||||||
|
"""
|
||||||
|
Return dry-run order
|
||||||
|
Only call if running in dry-run mode.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
order = self._dry_run_open_orders[order_id]
|
||||||
|
return order
|
||||||
|
except KeyError as e:
|
||||||
|
# Gracefully handle errors with dry-run orders.
|
||||||
|
raise InvalidOrderException(
|
||||||
|
f'Tried to get an invalid dry-run-order (id: {order_id}). Message: {e}') from e
|
||||||
|
|
||||||
def create_order(self, pair: str, ordertype: str, side: str, amount: float,
|
def create_order(self, pair: str, ordertype: str, side: str, amount: float,
|
||||||
rate: float, params: Dict = {}) -> Dict:
|
rate: float, params: Dict = {}) -> Dict:
|
||||||
try:
|
try:
|
||||||
|
@ -1066,11 +1079,12 @@ class Exchange:
|
||||||
@retrier
|
@retrier
|
||||||
def cancel_order(self, order_id: str, pair: str) -> Dict:
|
def cancel_order(self, order_id: str, pair: str) -> Dict:
|
||||||
if self._config['dry_run']:
|
if self._config['dry_run']:
|
||||||
order = self._dry_run_open_orders.get(order_id)
|
try:
|
||||||
if order:
|
order = self.fetch_dry_run_order(order_id)
|
||||||
|
|
||||||
order.update({'status': 'canceled', 'filled': 0.0, 'remaining': order['amount']})
|
order.update({'status': 'canceled', 'filled': 0.0, 'remaining': order['amount']})
|
||||||
return order
|
return order
|
||||||
else:
|
except InvalidOrderException:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -1144,13 +1158,7 @@ class Exchange:
|
||||||
@retrier(retries=API_FETCH_ORDER_RETRY_COUNT)
|
@retrier(retries=API_FETCH_ORDER_RETRY_COUNT)
|
||||||
def fetch_order(self, order_id: str, pair: str) -> Dict:
|
def fetch_order(self, order_id: str, pair: str) -> Dict:
|
||||||
if self._config['dry_run']:
|
if self._config['dry_run']:
|
||||||
try:
|
return self.fetch_dry_run_order(order_id)
|
||||||
order = self._dry_run_open_orders[order_id]
|
|
||||||
return order
|
|
||||||
except KeyError as e:
|
|
||||||
# Gracefully handle errors with dry-run orders.
|
|
||||||
raise InvalidOrderException(
|
|
||||||
f'Tried to get an invalid dry-run-order (id: {order_id}). Message: {e}') from e
|
|
||||||
try:
|
try:
|
||||||
return self._api.fetch_order(order_id, pair)
|
return self._api.fetch_order(order_id, pair)
|
||||||
except ccxt.OrderNotFound as e:
|
except ccxt.OrderNotFound as e:
|
||||||
|
|
|
@ -93,13 +93,8 @@ class Ftx(Exchange):
|
||||||
@retrier(retries=API_FETCH_ORDER_RETRY_COUNT)
|
@retrier(retries=API_FETCH_ORDER_RETRY_COUNT)
|
||||||
def fetch_stoploss_order(self, order_id: str, pair: str) -> Dict:
|
def fetch_stoploss_order(self, order_id: str, pair: str) -> Dict:
|
||||||
if self._config['dry_run']:
|
if self._config['dry_run']:
|
||||||
try:
|
return self.fetch_dry_run_order(order_id)
|
||||||
order = self._dry_run_open_orders[order_id]
|
|
||||||
return order
|
|
||||||
except KeyError as e:
|
|
||||||
# Gracefully handle errors with dry-run orders.
|
|
||||||
raise InvalidOrderException(
|
|
||||||
f'Tried to get an invalid dry-run-order (id: {order_id}). Message: {e}') from e
|
|
||||||
try:
|
try:
|
||||||
orders = self._api.fetch_orders(pair, None, params={'type': 'stop'})
|
orders = self._api.fetch_orders(pair, None, params={'type': 'stop'})
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user