various adjustement from PR discussion

This commit is contained in:
Ork Blutt 2020-04-06 11:00:31 +02:00
parent 8555c5b211
commit 6256025c73
4 changed files with 26 additions and 42 deletions

View File

@ -188,7 +188,7 @@ class Trade(_DECL_BASE):
fee_close = Column(Float, nullable=False, default=0.0)
open_rate = Column(Float)
open_rate_requested = Column(Float)
# open_trade_price - calcuated via _calc_open_trade_price
# open_trade_price - calculated via _calc_open_trade_price
open_trade_price = Column(Float)
close_rate = Column(Float)
close_rate_requested = Column(Float)
@ -233,6 +233,9 @@ class Trade(_DECL_BASE):
return {
'trade_id': self.id,
'pair': self.pair,
'is_open': self.is_open,
'fee_open': self.fee_open,
'fee_close': self.fee_close,
'open_date_hum': arrow.get(self.open_date).humanize(),
'open_date': self.open_date.strftime("%Y-%m-%d %H:%M:%S"),
'close_date_hum': (arrow.get(self.close_date).humanize()
@ -240,14 +243,24 @@ class Trade(_DECL_BASE):
'close_date': (self.close_date.strftime("%Y-%m-%d %H:%M:%S")
if self.close_date else None),
'open_rate': self.open_rate,
'open_rate_requested': self.open_rate_requested,
'open_trade_price': self.open_trade_price,
'close_rate': self.close_rate,
'close_rate_requested': self.close_rate_requested,
'amount': round(self.amount, 8),
'stake_amount': round(self.stake_amount, 8),
'close_profit': self.close_profit,
'sell_reason': self.sell_reason,
'stop_loss': self.stop_loss,
'stop_loss_pct': (self.stop_loss_pct * 100) if self.stop_loss_pct else None,
'initial_stop_loss': self.initial_stop_loss,
'initial_stop_loss_pct': (self.initial_stop_loss_pct * 100
if self.initial_stop_loss_pct else None),
'min_rate': self.min_rate,
'max_rate': self.max_rate,
'strategy': self.strategy,
'ticker_interval': self.ticker_interval,
'open_order_id': self.open_order_id,
}
def adjust_min_max_rates(self, current_price: float) -> None:

View File

@ -367,9 +367,8 @@ class ApiServer(RPC):
Returns the X last trades in json format
"""
last_trades_number = request.args.get('last_trades_number', 0)
last_trades_number = int(last_trades_number)
results = self._rpc_trade_history(last_trades_number)
limit = int(request.args.get('limit', 0))
results = self._rpc_trade_history(limit)
return self.rest_dump(results)
@require_login

View File

@ -227,50 +227,21 @@ class RPC:
]
def _rpc_trade_history(
self, last_trades_number: int) -> Dict[str, List[Dict[str, Any]]]:
self, limit: int) -> Dict[str, List[Dict[str, Any]]]:
""" Returns the X last trades """
if last_trades_number > 0:
trades = Trade.get_trades().order_by(Trade.id.desc()).limit(last_trades_number)
if limit > 0:
trades = Trade.get_trades().order_by(Trade.id.desc()).limit(limit)
else:
trades = Trade.get_trades().order_by(Trade.id.desc()).all()
output = []
for trade in trades:
output.append({
'id': trade.id,
'pair': trade.pair,
'exchange': trade.exchange,
'is_open': trade.is_open if trade.is_open is not None else 0,
'open_rate': trade.open_rate,
'close_rate': trade.close_rate,
'fee_open': trade.fee_open,
'fee_close': trade.fee_close,
'open_rate_requested': trade.open_rate_requested,
'open_trade_price': trade.open_trade_price,
'close_rate_requested': trade.close_rate_requested,
'close_profit': trade.close_profit,
'close_profit_abs': trade.close_profit_abs,
'stake_amount': trade.stake_amount,
'amount': trade.amount,
'open_date': trade.open_date,
'close_date': trade.close_date,
'open_order_id': trade.open_order_id,
'stop_loss': trade.stop_loss,
'stop_loss_pct': trade.stop_loss_pct,
'initial_stop_loss': trade.initial_stop_loss,
'initial_stop_loss_pct': trade.initial_stop_loss_pct,
'stoploss_order_id': trade.stoploss_order_id,
'stoploss_last_update': trade.stoploss_last_update,
'max_rate': trade.max_rate,
'min_rate': trade.min_rate,
'sell_reason': trade.sell_reason,
'strategy': trade.strategy,
'ticker_interval': trade.ticker_interval,
})
output.append(trade.to_json())
return {
"trades": output
"trades": output,
"trades_count": len(output)
}
def _rpc_trade_statistics(

View File

@ -156,12 +156,13 @@ class FtRestClient():
"""
return self._get("show_config")
def history(self, number=None):
"""Return the amount of open trades.
def history(self, limit=None):
"""Return trades history.
:param limit: Limits trades to the X last trades . No limit to get all the trades.
:return: json object
"""
return self._get("trades", params={"last_trades_number": number} if number else 0)
return self._get("trades", params={"limit": limit} if limit else 0)
def whitelist(self):
"""Show the current whitelist.