Exchange should return fee dict for dry-run orders

This commit is contained in:
Matthias 2020-04-30 19:56:48 +02:00
parent a867d40eac
commit 2e4dc6c253

View File

@ -472,26 +472,31 @@ class Exchange:
'pair': pair, 'pair': pair,
'price': rate, 'price': rate,
'amount': _amount, 'amount': _amount,
"cost": _amount * rate, 'cost': _amount * rate,
'type': ordertype, 'type': ordertype,
'side': side, 'side': side,
'remaining': _amount, 'remaining': _amount,
'datetime': arrow.utcnow().isoformat(), 'datetime': arrow.utcnow().isoformat(),
'status': "closed" if ordertype == "market" else "open", 'status': "closed" if ordertype == "market" else "open",
'fee': None, 'fee': None,
"info": {} 'info': {}
} }
self._store_dry_order(dry_order) self._store_dry_order(dry_order, pair)
# Copy order and close it - so the returned order is open unless it's a market order # Copy order and close it - so the returned order is open unless it's a market order
return dry_order return dry_order
def _store_dry_order(self, dry_order: Dict) -> None: def _store_dry_order(self, dry_order: Dict, pair: str) -> None:
closed_order = dry_order.copy() closed_order = dry_order.copy()
if closed_order["type"] in ["market", "limit"]: if closed_order['type'] in ["market", "limit"]:
closed_order.update({ closed_order.update({
"status": "closed", 'status': 'closed',
"filled": closed_order["amount"], 'filled': closed_order['amount'],
"remaining": 0 'remaining': 0,
'fee': {
'currency': self.get_pair_quote_currency(pair),
'cost': dry_order['amount'] * self.get_fee(pair),
'rate': self.get_fee(pair)
}
}) })
if closed_order["type"] in ["stop_loss_limit"]: if closed_order["type"] in ["stop_loss_limit"]:
closed_order["info"].update({"stopPrice": closed_order["price"]}) closed_order["info"].update({"stopPrice": closed_order["price"]})