/// <summary> /// Position information,Maximum leverage depends on your borrowings and margin ratio. /// </summary> /// <param name="instrumentType">Instrument Type</param> /// <param name="marginMode">Margin Mode</param> /// <param name="underlying">Underlying</param> /// <param name="instrumentId">Instrument ID</param> /// <param name="tier"></param> /// <param name="ct">Cancellation Token</param> /// <returns></returns> public virtual WebCallResult <IEnumerable <OkexPositionTier> > GetPositionTiers( OkexInstrumentType instrumentType, OkexMarginMode marginMode, string underlying, string instrumentId = null, string tier = null, CancellationToken ct = default) => GetPositionTiers_Async(instrumentType, marginMode, underlying, instrumentId, tier, ct).Result;
/// <summary> /// Position information,Maximum leverage depends on your borrowings and margin ratio. /// </summary> /// <param name="instrumentType">Instrument Type</param> /// <param name="marginMode">Margin Mode</param> /// <param name="underlying">Underlying</param> /// <param name="instrumentId">Instrument ID</param> /// <param name="tier"></param> /// <param name="ct">Cancellation Token</param> /// <returns></returns> public virtual async Task <WebCallResult <IEnumerable <OkexPositionTier> > > GetPositionTiers_Async( OkexInstrumentType instrumentType, OkexMarginMode marginMode, string underlying, string instrumentId = null, string tier = null, CancellationToken ct = default) { if (instrumentType.IsNotIn(OkexInstrumentType.Margin, OkexInstrumentType.Futures, OkexInstrumentType.Option, OkexInstrumentType.Swap)) { throw new ArgumentException("Instrument Type can be only Margin, Futures, Option or Swap."); } var parameters = new Dictionary <string, object> { { "instType", JsonConvert.SerializeObject(instrumentType, new InstrumentTypeConverter(false)) }, { "tdMode", JsonConvert.SerializeObject(marginMode, new MarginModeConverter(false)) }, }; parameters.AddOptionalParameter("uly", underlying); parameters.AddOptionalParameter("instId", instrumentId); parameters.AddOptionalParameter("tier", tier); var result = await SendRequestAsync <OkexRestApiResponse <IEnumerable <OkexPositionTier> > >(GetUrl(Endpoints_V5_Public_PositionTiers), HttpMethod.Get, ct, parameters).ConfigureAwait(false); if (!result.Success) { return(WebCallResult <IEnumerable <OkexPositionTier> > .CreateErrorResult(result.ResponseStatusCode, result.ResponseHeaders, result.Error)); } if (result.Data.ErrorCode > 0) { return(WebCallResult <IEnumerable <OkexPositionTier> > .CreateErrorResult(result.ResponseStatusCode, result.ResponseHeaders, new ServerError(result.Data.ErrorCode, result.Data.ErrorMessage, result.Data.Data))); } return(new WebCallResult <IEnumerable <OkexPositionTier> >(result.ResponseStatusCode, result.ResponseHeaders, result.Data.Data, null)); }