Browse Source

Don't display interest rate if profit is zero

It will end up showing very small and actually wrong numbers like
5.38939837311e-11 % or even -1.48880395563e-11 % if it's newly funded
wallet with no coinjoins happened yet.
master
Kristaps Kaupe 8 years ago
parent
commit
c089063a79
  1. 41
      jmclient/jmclient/wallet_utils.py

41
jmclient/jmclient/wallet_utils.py

@ -727,25 +727,28 @@ def wallet_fetch_history(wallet, options):
now = jm_single().bc_interface.rpc('getblock', [bestblockhash])['time'] now = jm_single().bc_interface.rpc('getblock', [bestblockhash])['time']
print(' %s best block is %s' % (datetime.fromtimestamp(now) print(' %s best block is %s' % (datetime.fromtimestamp(now)
.strftime("%Y-%m-%d %H:%M"), bestblockhash)) .strftime("%Y-%m-%d %H:%M"), bestblockhash))
print('total profit = ' + str(float(balance - sum(deposits)) / float(100000000)) + ' BTC') total_profit = float(balance - sum(deposits)) / float(100000000)
try: print('total profit = ' + str(total_profit) + ' BTC')
# https://gist.github.com/chris-belcher/647da261ce718fc8ca10
import numpy as np if abs(total_profit) > 0:
from scipy.optimize import brentq try:
deposit_times = np.array(deposit_times) # https://gist.github.com/chris-belcher/647da261ce718fc8ca10
now -= deposit_times[0] import numpy as np
deposit_times -= deposit_times[0] from scipy.optimize import brentq
deposits = np.array(deposits) deposit_times = np.array(deposit_times)
def f(r, deposits, deposit_times, now, final_balance): now -= deposit_times[0]
return np.sum(np.exp((now - deposit_times) / 60.0 / 60 / 24 / deposit_times -= deposit_times[0]
365)**r * deposits) - final_balance deposits = np.array(deposits)
r = brentq(f, a=1, b=-1, args=(deposits, deposit_times, now, balance)) def f(r, deposits, deposit_times, now, final_balance):
print('continuously compounded equivalent annual interest rate = ' + return np.sum(np.exp((now - deposit_times) / 60.0 / 60 / 24 /
str(r * 100) + ' %') 365)**r * deposits) - final_balance
print('(as if yield generator was a bank account)') r = brentq(f, a=1, b=-1, args=(deposits, deposit_times, now, balance))
except ImportError: print('continuously compounded equivalent annual interest rate = ' +
print('scipy not installed, unable to predict accumulation rate') str(r * 100) + ' %')
print('to add it to this virtualenv, use `pip2 install scipy`') print('(as if yield generator was a bank account)')
except ImportError:
print('scipy not installed, unable to predict accumulation rate')
print('to add it to this virtualenv, use `pip2 install scipy`')
total_wallet_balance = sum(wallet.get_balance_by_mixdepth().values()) total_wallet_balance = sum(wallet.get_balance_by_mixdepth().values())
if balance != total_wallet_balance: if balance != total_wallet_balance:

Loading…
Cancel
Save