async calculateOrderSizeCapital(exchangeName, symbol, capital) {
    const balancePercent = capital.getBalance();
    const exchange = this.exchangeManager.get(exchangeName);

    let amountAsset = capital.getAsset();
    let amountCurrency = balancePercent
      ? (exchange.getTradableBalance() * balancePercent) / 100
      : capital.getCurrency();

    if (!amountAsset && !amountCurrency) {
      throw new Error(`Invalid capital`);
    }
    if (!amountAsset) {
      amountAsset = await this.convertCurrencyToAsset(exchangeName, symbol, amountCurrency);
    }
    if (!amountCurrency) {
      amountCurrency = await this.convertAssetToCurrency(exchangeName, symbol, amountAsset);
    }
    return exchange.calculateAmount(exchange.isInverseSymbol(symbol) ? amountCurrency : amountAsset, symbol);
  }
@param exchangeName String
@param symbol String
@param capital {OrderCapital}
@returns {Promise<?Number>}