async syncPositionViaRestApi() {
    const verb = 'GET';
    const path = '/api/v1/position';
    const expires = new Date().getTime() + 60 * 1000; // 1 min in the future
    const signature = crypto
      .createHmac('sha256', this.apiSecret)
      .update(verb + path + expires)
      .digest('hex');

    const headers = {
      'content-type': 'application/json',
      Accept: 'application/json',
      'X-Requested-With': 'XMLHttpRequest',
      'api-expires': expires,
      'api-key': this.apiKey,
      'api-signature': signature
    };

    const me = this;

    const result = await this.requestClient.executeRequestRetry(
      {
        headers: headers,
        url: this.getBaseUrl() + path,
        method: verb
      },
      result => {
        return result && result.response && result.response.statusCode === 503;
      },
      this.retryOverloadMs,
      this.retryOverloadLimit
    );

    const { error } = result;
    const { response } = result;
    const { body } = result;

    if (error || !response || response.statusCode !== 200) {
      me.logger.error(`Bitmex: Invalid position update:${JSON.stringify({ error: error, body: body })}`);
      return;
    }

    me.logger.debug('Bitmex: Positions via API updated');
    me.fullPositionsUpdate(JSON.parse(body));
  }
As a websocket fallback update positions also on REST