Ejemplo n.º 1
0
    def on_order_status_changed(self, t: Target, data):
        complete_trade = False

        if t.is_completed():
            if t.is_entry_target():
                # validate balance and activate trade only if there are trading targets
                if self.strategy_exit:
                    AccountBalances().update_balances(
                        self.fx.get_all_balances_dict())
                    self.trade.cap = self.get_balance_for_side().avail
                    self.trade.set_active()
                    self.trigger_target_updated()
                else:
                    complete_trade = True
            elif t.is_exit_target():
                if self.trade.exit and self.trade.exit.is_completed():
                    # if all targets are completed, set trade as completed
                    complete_trade = True
            elif t.is_stoploss_target():
                complete_trade = True

        if complete_trade:
            self.set_trade_completed()

        [s.on_order_status_changed(t, data) for s in self.all_strategies()]
Ejemplo n.º 2
0
    def on_order_status_changed(self, t: Target, data):
        if not t.is_stoploss_target():
            return

        if t.is_completed():
            self.set_trade_completed()
        else:
            self.logInfo('Order status updated: {}'.format(t.status))