validatePlacedOrder(order) {
    return new Promise(resolve => {
      setTimeout(async () => {
        // calling a direct "order_id" is not given any result
        // we fetch latest order and find our id
        const parameters2 = {
          api_key: this.apiKey,
          timestamp: new Date().getTime(),
          symbol: order.symbol,
          limit: 5
        };

        const parametersSorted2 = {};
        Object.keys(parameters2)
          .sort()
          .forEach(key => (parametersSorted2[key] = parameters2[key]));

        parametersSorted2.sign = crypto
          .createHmac('sha256', this.apiSecret)
          .update(querystring.stringify(parametersSorted2))
          .digest('hex');

        const url1 = `${this.getBaseUrl()}/v2/private/order/list?${querystring.stringify(parametersSorted2)}`;
        const placedOrder = await this.requestClient.executeRequestRetry(
          {
            method: 'GET',
            url: url1,
            headers: {
              'Content-Type': 'application/json',
              Accept: 'application/json'
            }
          },
          result => {
            return result && result.response && result.response.statusCode >= 500;
          }
        );

        const { body } = placedOrder;

        const json = JSON.parse(body);
        if (!json.result || !json.result.data) {
          this.logger.error(`Bybit: Invalid order body:${JSON.stringify({ body: body })}`);
          resolve();
        }

        const find = json.result.data.find(o => (o.order_id = order.id));
        if (!find) {
          this.logger.error(`Bybit: Order not found:${JSON.stringify({ body: body })}`);
          resolve();
        }

        const orders = Bybit.createOrders([find]);
        resolve(orders[0]);
      }, 1000);
    });
  }
In case the order was not able to place we need to wait some "ms" and call order via API again
@TODO use the websocket event

@param order
@returns {Promise<any>}