self.orders = []
self.market = market
self.closed = False
+ self.inverted = None
assert self.value_from.value * self.value_to.value >= 0
assert self.value_from.currency == self.value_to.currency
if self.value_from != 0:
else:
return "dispose"
- def order_action(self, inverted):
- if (self.value_from < self.value_to) != inverted:
+ def order_action(self):
+ if (self.value_from < self.value_to) != self.inverted:
return "buy"
else:
return "sell"
@property
def is_fullfiled(self):
- return abs(self.filled_amount(in_base_currency=True)) >= abs(self.delta)
+ return abs(self.filled_amount(in_base_currency=(not self.inverted))) >= abs(self.delta)
def filled_amount(self, in_base_currency=False):
filled_amount = 0
if self.action is None:
return None
ticker = self.market.get_ticker(self.currency, self.base_currency)
- inverted = ticker["inverted"]
- if inverted:
+ self.inverted = ticker["inverted"]
+ if self.inverted:
ticker = ticker["original"]
- rate = Computation.compute_value(ticker, self.order_action(inverted), compute_value=compute_value)
+ rate = Computation.compute_value(ticker, self.order_action(), compute_value=compute_value)
# FIXME: Dust amount should be removed from there if they werent
# honored in other sales
delta_in_base = abs(self.delta)
# 9 BTC's worth of move (10 - 1 or 1 - 10 depending on case)
- if not inverted:
+ if not self.inverted:
base_currency = self.base_currency
# BTC
if self.action == "dispose":
self.market.report.log_error("prepare_order", message="Less to do than already filled: {}".format(delta))
return None
- order = Order(self.order_action(inverted),
+ order = Order(self.order_action(),
delta, rate, base_currency, self.trade_type,
self.market, self, close_if_possible=close_if_possible)
self.orders.append(order)