Remove some humanize occurances
This commit is contained in:
@@ -7,7 +7,6 @@ from datetime import date, datetime, timedelta, timezone
|
|||||||
from math import isnan
|
from math import isnan
|
||||||
from typing import Any, Dict, Generator, List, Optional, Sequence, Tuple, Union
|
from typing import Any, Dict, Generator, List, Optional, Sequence, Tuple, Union
|
||||||
|
|
||||||
import arrow
|
|
||||||
import psutil
|
import psutil
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
from dateutil.tz import tzlocal
|
from dateutil.tz import tzlocal
|
||||||
@@ -32,7 +31,7 @@ from freqtrade.persistence.models import PairLock
|
|||||||
from freqtrade.plugins.pairlist.pairlist_helpers import expand_pairlist
|
from freqtrade.plugins.pairlist.pairlist_helpers import expand_pairlist
|
||||||
from freqtrade.rpc.fiat_convert import CryptoToFiatConverter
|
from freqtrade.rpc.fiat_convert import CryptoToFiatConverter
|
||||||
from freqtrade.rpc.rpc_types import RPCSendMsg
|
from freqtrade.rpc.rpc_types import RPCSendMsg
|
||||||
from freqtrade.util import dt_now, shorten_date
|
from freqtrade.util import dt_humanize, dt_now, shorten_date
|
||||||
from freqtrade.wallets import PositionWallet, Wallet
|
from freqtrade.wallets import PositionWallet, Wallet
|
||||||
|
|
||||||
|
|
||||||
@@ -293,7 +292,7 @@ class RPC:
|
|||||||
and open_order.ft_order_side == trade.entry_side) else '')
|
and open_order.ft_order_side == trade.entry_side) else '')
|
||||||
+ ('**' if (open_order and
|
+ ('**' if (open_order and
|
||||||
open_order.ft_order_side == trade.exit_side is not None) else ''),
|
open_order.ft_order_side == trade.exit_side is not None) else ''),
|
||||||
shorten_date(arrow.get(trade.open_date).humanize(only_distance=True)),
|
shorten_date(dt_humanize(trade.open_date, only_distance=True)),
|
||||||
profit_str
|
profit_str
|
||||||
]
|
]
|
||||||
if self._config.get('position_adjustment_enable', False):
|
if self._config.get('position_adjustment_enable', False):
|
||||||
@@ -565,10 +564,10 @@ class RPC:
|
|||||||
'trade_count': len(trades),
|
'trade_count': len(trades),
|
||||||
'closed_trade_count': len([t for t in trades if not t.is_open]),
|
'closed_trade_count': len([t for t in trades if not t.is_open]),
|
||||||
'first_trade_date': first_date.strftime(DATETIME_PRINT_FORMAT) if first_date else '',
|
'first_trade_date': first_date.strftime(DATETIME_PRINT_FORMAT) if first_date else '',
|
||||||
'first_trade_humanized': arrow.get(first_date).humanize() if first_date else '',
|
'first_trade_humanized': dt_humanize(first_date) if first_date else '',
|
||||||
'first_trade_timestamp': int(first_date.timestamp() * 1000) if first_date else 0,
|
'first_trade_timestamp': int(first_date.timestamp() * 1000) if first_date else 0,
|
||||||
'latest_trade_date': last_date.strftime(DATETIME_PRINT_FORMAT) if last_date else '',
|
'latest_trade_date': last_date.strftime(DATETIME_PRINT_FORMAT) if last_date else '',
|
||||||
'latest_trade_humanized': arrow.get(last_date).humanize() if last_date else '',
|
'latest_trade_humanized': dt_humanize(last_date) if last_date else '',
|
||||||
'latest_trade_timestamp': int(last_date.timestamp() * 1000) if last_date else 0,
|
'latest_trade_timestamp': int(last_date.timestamp() * 1000) if last_date else 0,
|
||||||
'avg_duration': str(timedelta(seconds=sum(durations) / num)).split('.')[0],
|
'avg_duration': str(timedelta(seconds=sum(durations) / num)).split('.')[0],
|
||||||
'best_pair': best_pair[0] if best_pair else '',
|
'best_pair': best_pair[0] if best_pair else '',
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ from freqtrade.misc import chunks, plural, round_coin_value
|
|||||||
from freqtrade.persistence import Trade
|
from freqtrade.persistence import Trade
|
||||||
from freqtrade.rpc import RPC, RPCException, RPCHandler
|
from freqtrade.rpc import RPC, RPCException, RPCHandler
|
||||||
from freqtrade.rpc.rpc_types import RPCSendMsg
|
from freqtrade.rpc.rpc_types import RPCSendMsg
|
||||||
|
from freqtrade.util import dt_humanize
|
||||||
|
|
||||||
|
|
||||||
MAX_MESSAGE_LENGTH = MessageLimit.MAX_TEXT_LENGTH
|
MAX_MESSAGE_LENGTH = MessageLimit.MAX_TEXT_LENGTH
|
||||||
@@ -528,7 +529,6 @@ class Telegram(RPCHandler):
|
|||||||
order_nr += 1
|
order_nr += 1
|
||||||
wording = 'Entry' if order['ft_is_entry'] else 'Exit'
|
wording = 'Entry' if order['ft_is_entry'] else 'Exit'
|
||||||
|
|
||||||
cur_entry_datetime = arrow.get(order["order_filled_date"])
|
|
||||||
cur_entry_amount = order["filled"] or order["amount"]
|
cur_entry_amount = order["filled"] or order["amount"]
|
||||||
cur_entry_average = order["safe_price"]
|
cur_entry_average = order["safe_price"]
|
||||||
lines.append(" ")
|
lines.append(" ")
|
||||||
@@ -559,22 +559,14 @@ class Telegram(RPCHandler):
|
|||||||
|
|
||||||
lines.append(f"*{wording} #{order_nr}:* at {minus_on_entry:.2%} avg Profit")
|
lines.append(f"*{wording} #{order_nr}:* at {minus_on_entry:.2%} avg Profit")
|
||||||
if is_open:
|
if is_open:
|
||||||
lines.append("({})".format(cur_entry_datetime
|
lines.append("({})".format(dt_humanize(order["order_filled_date"],
|
||||||
.humanize(granularity=["day", "hour", "minute"])))
|
granularity=["day", "hour", "minute"])))
|
||||||
lines.append(f"*Amount:* {cur_entry_amount} "
|
lines.append(f"*Amount:* {cur_entry_amount} "
|
||||||
f"({round_coin_value(order['cost'], quote_currency)})")
|
f"({round_coin_value(order['cost'], quote_currency)})")
|
||||||
lines.append(f"*Average {wording} Price:* {cur_entry_average} "
|
lines.append(f"*Average {wording} Price:* {cur_entry_average} "
|
||||||
f"({price_to_1st_entry:.2%} from 1st entry Rate)")
|
f"({price_to_1st_entry:.2%} from 1st entry Rate)")
|
||||||
lines.append(f"*Order filled:* {order['order_filled_date']}")
|
lines.append(f"*Order filled:* {order['order_filled_date']}")
|
||||||
|
|
||||||
# TODO: is this really useful?
|
|
||||||
# dur_entry = cur_entry_datetime - arrow.get(
|
|
||||||
# filled_orders[x - 1]["order_filled_date"])
|
|
||||||
# days = dur_entry.days
|
|
||||||
# hours, remainder = divmod(dur_entry.seconds, 3600)
|
|
||||||
# minutes, seconds = divmod(remainder, 60)
|
|
||||||
# lines.append(
|
|
||||||
# f"({days}d {hours}h {minutes}m {seconds}s from previous {wording.lower()})")
|
|
||||||
lines_detail.append("\n".join(lines))
|
lines_detail.append("\n".join(lines))
|
||||||
|
|
||||||
return lines_detail
|
return lines_detail
|
||||||
@@ -610,7 +602,7 @@ class Telegram(RPCHandler):
|
|||||||
position_adjust = self._config.get('position_adjustment_enable', False)
|
position_adjust = self._config.get('position_adjustment_enable', False)
|
||||||
max_entries = self._config.get('max_entry_position_adjustment', -1)
|
max_entries = self._config.get('max_entry_position_adjustment', -1)
|
||||||
for r in results:
|
for r in results:
|
||||||
r['open_date_hum'] = arrow.get(r['open_date']).humanize()
|
r['open_date_hum'] = dt_humanize(r['open_date'])
|
||||||
r['num_entries'] = len([o for o in r['orders'] if o['ft_is_entry']])
|
r['num_entries'] = len([o for o in r['orders'] if o['ft_is_entry']])
|
||||||
r['num_exits'] = len([o for o in r['orders'] if not o['ft_is_entry']
|
r['num_exits'] = len([o for o in r['orders'] if not o['ft_is_entry']
|
||||||
and not o['ft_order_side'] == 'stoploss'])
|
and not o['ft_order_side'] == 'stoploss'])
|
||||||
@@ -1219,7 +1211,7 @@ class Telegram(RPCHandler):
|
|||||||
nrecent
|
nrecent
|
||||||
)
|
)
|
||||||
trades_tab = tabulate(
|
trades_tab = tabulate(
|
||||||
[[arrow.get(trade['close_date']).humanize(),
|
[[dt_humanize(trade['close_date']),
|
||||||
trade['pair'] + " (#" + str(trade['trade_id']) + ")",
|
trade['pair'] + " (#" + str(trade['trade_id']) + ")",
|
||||||
f"{(trade['close_profit']):.2%} ({trade['close_profit_abs']})"]
|
f"{(trade['close_profit']):.2%} ({trade['close_profit_abs']})"]
|
||||||
for trade in trades['trades']],
|
for trade in trades['trades']],
|
||||||
|
|||||||
Reference in New Issue
Block a user