adding get_free to wallet

This commit is contained in:
misagh 2018-11-24 16:37:28 +01:00
parent a9f04609d3
commit 29347a6931
3 changed files with 16 additions and 9 deletions

View File

@ -337,7 +337,7 @@ class FreqtradeBot(object):
else: else:
stake_amount = self.config['stake_amount'] stake_amount = self.config['stake_amount']
avaliable_amount = self.wallets.wallets[self.config['stake_currency']].free avaliable_amount = self.wallets.get_free(self.config['stake_currency'])
if stake_amount == constants.UNLIMITED_STAKE_AMOUNT: if stake_amount == constants.UNLIMITED_STAKE_AMOUNT:
open_trades = len(Trade.query.filter(Trade.is_open.is_(True)).all()) open_trades = len(Trade.query.filter(Trade.is_open.is_(True)).all())

View File

@ -14,7 +14,6 @@ from telegram import Chat, Message, Update
from freqtrade.exchange.exchange_helpers import parse_ticker_dataframe from freqtrade.exchange.exchange_helpers import parse_ticker_dataframe
from freqtrade.exchange import Exchange from freqtrade.exchange import Exchange
from freqtrade.edge import Edge from freqtrade.edge import Edge
from freqtrade.wallets import Wallet
from freqtrade.freqtradebot import FreqtradeBot from freqtrade.freqtradebot import FreqtradeBot
logging.getLogger('').setLevel(logging.INFO) logging.getLogger('').setLevel(logging.INFO)
@ -46,9 +45,9 @@ def get_patched_exchange(mocker, config, api_mock=None) -> Exchange:
return exchange return exchange
def patch_wallet(mocker, currency='BTC', free=999.9) -> None: def patch_wallet(mocker, free=999.9) -> None:
mocker.patch('freqtrade.wallets.Wallet', MagicMock( mocker.patch('freqtrade.wallets.Wallets.get_free', MagicMock(
return_value=Wallet('bittrex', currency, free, 100, 1000) return_value=free
)) ))

View File

@ -26,12 +26,20 @@ class Wallets(object):
def __init__(self, exchange: Exchange) -> None: def __init__(self, exchange: Exchange) -> None:
self.exchange = exchange self.exchange = exchange
if self.exchange._conf['dry_run']: self.wallets: Dict[str, Any] = {}
self.wallets: Dict[str, Any] = {'BTC': Wallet('Bittrex', 'BTC', 999.99, 100, 1000)}
else:
self.wallets: Dict[str, Any] = {}
self.update() self.update()
def get_free(self, currency) -> float:
if self.exchange._conf['dry_run']:
return 999.9
balance = self.wallets.get(currency)
if balance and balance['free']:
return balance['free']
else:
return 0
def update(self) -> None: def update(self) -> None:
balances = self.exchange.get_balances() balances = self.exchange.get_balances()