capital in trade extracted to a separated argument

This commit is contained in:
misagh 2018-12-04 17:05:35 +01:00
parent 108d9a1117
commit e7684b446b
2 changed files with 8 additions and 4 deletions

View File

@ -160,19 +160,23 @@ class Edge():
return True return True
def stake_amount(self, pair: str, free_capital: float, total_capital: float) -> float: def stake_amount(self, pair: str, free_capital: float,
total_capital: float, capital_in_trade: float) -> float:
stoploss = self.stoploss(pair) stoploss = self.stoploss(pair)
available_capital = total_capital * self._capital_percentage available_capital = (total_capital + capital_in_trade) * self._capital_percentage
allowed_capital_at_risk = available_capital * self._allowed_risk allowed_capital_at_risk = available_capital * self._allowed_risk
max_position_size = abs(allowed_capital_at_risk / stoploss) max_position_size = abs(allowed_capital_at_risk / stoploss)
position_size = min(max_position_size, free_capital) position_size = min(max_position_size, free_capital)
if pair in self._cached_pairs: if pair in self._cached_pairs:
logger.info( logger.info(
'winrate: %s, expectancy: %s, position size: %s, pair: %s,' 'winrate: %s, expectancy: %s, position size: %s, pair: %s,'
' capital in trade: %s, free capital: %s, total capital: %s,'
' stoploss: %s, available capital: %s.', ' stoploss: %s, available capital: %s.',
self._cached_pairs[pair].winrate, self._cached_pairs[pair].winrate,
self._cached_pairs[pair].expectancy, self._cached_pairs[pair].expectancy,
position_size, pair, stoploss, available_capital position_size, pair,
capital_in_trade, free_capital, total_capital,
stoploss, available_capital
) )
return round(position_size, 15) return round(position_size, 15)

View File

@ -305,7 +305,7 @@ class FreqtradeBot(object):
return self.edge.stake_amount( return self.edge.stake_amount(
pair, pair,
self.wallets.get_free(self.config['stake_currency']), self.wallets.get_free(self.config['stake_currency']),
self.wallets.get_total(self.config['stake_currency']) + self.wallets.get_total(self.config['stake_currency']),
Trade.total_open_trades_stakes() Trade.total_open_trades_stakes()
) )
else: else: