def process_event(self, event):
        # self.update_balance()
        self.balance_updated = False

        if event['action'] == "insert":

            check_result = self.check_expected_order(event)
            if check_result:
                return check_result

            data = event['data'][0]
            if data['ordStatus'] == 'New' \
                    or (data['ordStatus'] == 'Filled' and 'ordType' in data):
                if event['data'][0]['execInst'] == 'Close':
                    # order to close position came
                    close_order = event['data'][0]

                    if close_order['ordType'] == 'Market':
                        price = None
                    else:
                        price = close_order['price']

                    return Actions.ActionClosePosition(
                        self.translate(close_order['symbol']),
                        self.translate(close_order['ordType']),
                        price,
                        close_order['orderID'],
                        self.exchange_name,
                        event
                    )
                else:
                    order = self._self_order_to_global(event['data'][0])

                    return Actions.ActionNewOrder(
                        order,
                        self.exchange_name,
                        event)

        elif event['action'] == 'update':
            if 'ordStatus' not in event['data'][0]:
                return
            if event['data'][0]['ordStatus'] == 'Canceled':
                orders = self.socket[event['data'][0]['symbol']].open_orders(clOrdIDPrefix="")
                order = list(filter(lambda o: o['orderID'] == event['data'][0]['orderID'],
                                    orders))[0]
                global_order = self._self_order_to_global(order)
                return Actions.ActionCancel(
                    global_order.symbol,
                    global_order.price,
                    global_order.id,
                    self.exchange_name,
                    event
                )