getCurrentPrice(exchangeName, symbol, side) {
    if (!['long', 'short'].includes(side)) {
      throw new Error(`Invalid side: ${side}`);
    }

    return new Promise(async resolve => {
      const wait = time =>
        new Promise(resolve2 => {
          setTimeout(() => {
            resolve2();
          }, time);
        });

      let ticker;

      for (let retry = 0; retry < this.tickerPriceRetries; retry++) {
        ticker = this.tickers.getIfUpToDate(exchangeName, symbol, 10000);
        if (ticker) {
          break;
        }

        await wait(this.tickerPriceInterval);
      }

      // fallback
      if (!ticker) {
        ticker = this.tickers.get(exchangeName, symbol);
      }

      if (!ticker) {
        this.logger.error(`OrderExecutor: ticker price not found: ${JSON.stringify([exchangeName, symbol, side])}`);
        resolve();
        return;
      }

      let price = ticker.bid;
      if (side === 'short') {
        price = ticker.ask * -1;
      }

      resolve(price);
    });
  }
Get current price based on the ticker. This function is block and waiting until getting an up to date ticker price

@param exchangeName
@param symbol
@param side
@returns {Promise<any>}