aboutsummaryrefslogtreecommitdiff
path: root/portfolio.py
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2018-01-22 01:07:06 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2018-01-22 01:07:06 +0100
commitf2097d713e2e9419850ca5b758c76b79485d7502 (patch)
tree7ee6adffb6834c65dcbaa1bd20a633feae5398f3 /portfolio.py
parent272b3cfb11aea4160f0e40588e18dea44c6b028a (diff)
downloadTrader-f2097d713e2e9419850ca5b758c76b79485d7502.tar.gz
Trader-f2097d713e2e9419850ca5b758c76b79485d7502.tar.zst
Trader-f2097d713e2e9419850ca5b758c76b79485d7502.zip
Fix selling price for inverted markets
Diffstat (limited to 'portfolio.py')
-rw-r--r--portfolio.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/portfolio.py b/portfolio.py
index 1041df1..60b57ca 100644
--- a/portfolio.py
+++ b/portfolio.py
@@ -357,19 +357,28 @@ class Trade:
357 return 357 return
358 ticker = self.value_from.ticker 358 ticker = self.value_from.ticker
359 inverted = ticker["inverted"] 359 inverted = ticker["inverted"]
360 if inverted:
361 ticker = ticker["original"]
362 rate = Trade.compute_value(ticker, self.order_action(inverted), compute_value=compute_value)
363
364 # We can use that amount of BTC:
365 delta_in_base = abs(self.value_from - self.value_to)
360 366
361 if not inverted: 367 if not inverted:
362 value_from = self.value_from.linked_to 368 if self.action == "sell":
363 value_to = self.value_to.in_currency(self.currency, self.market, rate=1/self.value_from.rate) 369 value_from = self.value_from.linked_to
364 delta = abs(value_to - value_from) 370 value_to = self.value_to.in_currency(self.currency, self.market, rate=1/self.value_from.rate)
371 delta = abs(value_to - value_from)
372 else:
373 delta = delta_in_base.in_currency(self.currency, self.market, rate=1/rate)
365 currency = self.base_currency 374 currency = self.base_currency
366 else: 375 else:
367 ticker = ticker["original"] 376 if self.action == "sell":
368 delta = abs(self.value_to - self.value_from) 377 delta = delta_in_base.in_currency(self.base_currency, self.market, rate=rate)
378 else:
379 delta = delta_in_base
369 currency = self.currency 380 currency = self.currency
370 381
371 rate = Trade.compute_value(ticker, self.order_action(inverted), compute_value=compute_value)
372
373 self.orders.append(Order(self.order_action(inverted), delta, rate, currency, self.market)) 382 self.orders.append(Order(self.order_action(inverted), delta, rate, currency, self.market))
374 383
375 @classmethod 384 @classmethod