ccxt 4.1.95 → 4.1.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +3 -3
  2. package/build.sh +16 -16
  3. package/dist/ccxt.browser.js +1570 -1401
  4. package/dist/ccxt.browser.min.js +3 -3
  5. package/dist/cjs/ccxt.js +1 -1
  6. package/dist/cjs/src/ace.js +1 -1
  7. package/dist/cjs/src/ascendex.js +1 -1
  8. package/dist/cjs/src/base/Exchange.js +6 -5
  9. package/dist/cjs/src/base/errors.js +8 -1
  10. package/dist/cjs/src/bigone.js +2 -2
  11. package/dist/cjs/src/binance.js +145 -135
  12. package/dist/cjs/src/bingx.js +50 -8
  13. package/dist/cjs/src/bit2c.js +2 -3
  14. package/dist/cjs/src/bitfinex.js +1 -1
  15. package/dist/cjs/src/bitfinex2.js +3 -4
  16. package/dist/cjs/src/bitflyer.js +2 -2
  17. package/dist/cjs/src/bitmart.js +2 -2
  18. package/dist/cjs/src/bitmex.js +2 -2
  19. package/dist/cjs/src/bitopro.js +1 -1
  20. package/dist/cjs/src/bitpanda.js +1 -1
  21. package/dist/cjs/src/bitvavo.js +1 -1
  22. package/dist/cjs/src/blockchaincom.js +1 -1
  23. package/dist/cjs/src/btcalpha.js +2 -2
  24. package/dist/cjs/src/btcbox.js +3 -4
  25. package/dist/cjs/src/btcmarkets.js +2 -2
  26. package/dist/cjs/src/btcturk.js +1 -1
  27. package/dist/cjs/src/bybit.js +2 -2
  28. package/dist/cjs/src/cex.js +1 -1
  29. package/dist/cjs/src/coinbase.js +11 -5
  30. package/dist/cjs/src/coinbasepro.js +2 -2
  31. package/dist/cjs/src/coinex.js +1 -1
  32. package/dist/cjs/src/coinlist.js +1 -1
  33. package/dist/cjs/src/cryptocom.js +2 -1
  34. package/dist/cjs/src/delta.js +25 -0
  35. package/dist/cjs/src/deribit.js +1 -1
  36. package/dist/cjs/src/digifinex.js +1 -1
  37. package/dist/cjs/src/gate.js +3 -3
  38. package/dist/cjs/src/hitbtc.js +1 -1
  39. package/dist/cjs/src/hollaex.js +2 -2
  40. package/dist/cjs/src/htx.js +1 -1
  41. package/dist/cjs/src/huobijp.js +2 -2
  42. package/dist/cjs/src/idex.js +1 -1
  43. package/dist/cjs/src/independentreserve.js +1 -1
  44. package/dist/cjs/src/kraken.js +47 -46
  45. package/dist/cjs/src/krakenfutures.js +53 -26
  46. package/dist/cjs/src/kucoin.js +74 -4
  47. package/dist/cjs/src/kucoinfutures.js +2 -2
  48. package/dist/cjs/src/kuna.js +1 -1
  49. package/dist/cjs/src/latoken.js +1 -1
  50. package/dist/cjs/src/luno.js +2 -2
  51. package/dist/cjs/src/lykke.js +1 -1
  52. package/dist/cjs/src/mexc.js +2 -2
  53. package/dist/cjs/src/ndax.js +1 -1
  54. package/dist/cjs/src/novadax.js +2 -2
  55. package/dist/cjs/src/oceanex.js +1 -1
  56. package/dist/cjs/src/okcoin.js +1 -1
  57. package/dist/cjs/src/okx.js +1 -1
  58. package/dist/cjs/src/poloniexfutures.js +1 -1
  59. package/dist/cjs/src/pro/alpaca.js +1 -1
  60. package/dist/cjs/src/pro/ascendex.js +1 -1
  61. package/dist/cjs/src/pro/binance.js +4 -5
  62. package/dist/cjs/src/pro/bingx.js +6 -3
  63. package/dist/cjs/src/pro/bitfinex.js +3 -4
  64. package/dist/cjs/src/pro/bitfinex2.js +1 -1
  65. package/dist/cjs/src/pro/bitmex.js +1 -1
  66. package/dist/cjs/src/pro/bitpanda.js +1 -1
  67. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  68. package/dist/cjs/src/pro/bybit.js +2 -2
  69. package/dist/cjs/src/pro/cex.js +1 -1
  70. package/dist/cjs/src/pro/coinbase.js +1 -1
  71. package/dist/cjs/src/pro/coinbasepro.js +1 -1
  72. package/dist/cjs/src/pro/deribit.js +1 -1
  73. package/dist/cjs/src/pro/gate.js +3 -3
  74. package/dist/cjs/src/pro/gemini.js +1 -1
  75. package/dist/cjs/src/pro/hollaex.js +1 -1
  76. package/dist/cjs/src/pro/htx.js +1 -1
  77. package/dist/cjs/src/pro/idex.js +1 -1
  78. package/dist/cjs/src/pro/kraken.js +3 -4
  79. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  80. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  81. package/dist/cjs/src/pro/mexc.js +1 -1
  82. package/dist/cjs/src/pro/okcoin.js +1 -1
  83. package/dist/cjs/src/pro/okx.js +2 -2
  84. package/dist/cjs/src/pro/phemex.js +1 -1
  85. package/dist/cjs/src/pro/poloniexfutures.js +1 -1
  86. package/dist/cjs/src/pro/woo.js +2 -3
  87. package/dist/cjs/src/probit.js +1 -1
  88. package/dist/cjs/src/timex.js +1 -1
  89. package/dist/cjs/src/tokocrypto.js +1 -1
  90. package/dist/cjs/src/upbit.js +1 -1
  91. package/dist/cjs/src/wavesexchange.js +1 -1
  92. package/dist/cjs/src/whitebit.js +1 -1
  93. package/dist/cjs/src/woo.js +1 -1
  94. package/dist/cjs/src/zaif.js +1 -1
  95. package/js/ccxt.d.ts +1 -1
  96. package/js/ccxt.js +1 -1
  97. package/js/src/abstract/bingx.d.ts +2 -0
  98. package/js/src/abstract/kucoin.d.ts +12 -0
  99. package/js/src/abstract/kucoinfutures.d.ts +12 -1
  100. package/js/src/ace.js +1 -1
  101. package/js/src/ascendex.js +1 -1
  102. package/js/src/base/Exchange.d.ts +1 -1
  103. package/js/src/base/Exchange.js +7 -6
  104. package/js/src/base/errorHierarchy.d.ts +1 -0
  105. package/js/src/base/errorHierarchy.js +1 -0
  106. package/js/src/base/errors.d.ts +5 -1
  107. package/js/src/base/errors.js +8 -2
  108. package/js/src/bigone.js +2 -2
  109. package/js/src/binance.js +145 -135
  110. package/js/src/bingx.d.ts +1 -0
  111. package/js/src/bingx.js +50 -8
  112. package/js/src/bit2c.js +2 -3
  113. package/js/src/bitfinex.js +1 -1
  114. package/js/src/bitfinex2.js +3 -4
  115. package/js/src/bitflyer.js +2 -2
  116. package/js/src/bitmart.js +2 -2
  117. package/js/src/bitmex.js +2 -2
  118. package/js/src/bitopro.js +1 -1
  119. package/js/src/bitpanda.js +1 -1
  120. package/js/src/bitso.d.ts +1 -1
  121. package/js/src/bitvavo.js +1 -1
  122. package/js/src/blockchaincom.js +1 -1
  123. package/js/src/btcalpha.js +2 -2
  124. package/js/src/btcbox.js +3 -4
  125. package/js/src/btcmarkets.js +2 -2
  126. package/js/src/btcturk.js +1 -1
  127. package/js/src/bybit.js +2 -2
  128. package/js/src/cex.js +1 -1
  129. package/js/src/coinbase.js +11 -5
  130. package/js/src/coinbasepro.js +2 -2
  131. package/js/src/coinex.js +1 -1
  132. package/js/src/coinlist.js +1 -1
  133. package/js/src/cryptocom.js +2 -1
  134. package/js/src/delta.d.ts +5 -4
  135. package/js/src/delta.js +25 -0
  136. package/js/src/deribit.js +1 -1
  137. package/js/src/digifinex.js +1 -1
  138. package/js/src/gate.js +3 -3
  139. package/js/src/hitbtc.js +1 -1
  140. package/js/src/hollaex.js +2 -2
  141. package/js/src/htx.js +1 -1
  142. package/js/src/huobijp.js +2 -2
  143. package/js/src/idex.js +1 -1
  144. package/js/src/independentreserve.js +1 -1
  145. package/js/src/kraken.js +47 -46
  146. package/js/src/krakenfutures.js +53 -26
  147. package/js/src/kucoin.d.ts +3 -0
  148. package/js/src/kucoin.js +74 -4
  149. package/js/src/kucoinfutures.js +2 -2
  150. package/js/src/kuna.js +1 -1
  151. package/js/src/latoken.js +1 -1
  152. package/js/src/luno.js +2 -2
  153. package/js/src/lykke.js +1 -1
  154. package/js/src/mexc.js +2 -2
  155. package/js/src/ndax.js +1 -1
  156. package/js/src/novadax.js +2 -2
  157. package/js/src/oceanex.js +1 -1
  158. package/js/src/okcoin.js +1 -1
  159. package/js/src/okx.js +1 -1
  160. package/js/src/poloniexfutures.js +1 -1
  161. package/js/src/pro/alpaca.js +1 -1
  162. package/js/src/pro/ascendex.js +1 -1
  163. package/js/src/pro/binance.js +4 -5
  164. package/js/src/pro/bingx.js +6 -3
  165. package/js/src/pro/bitfinex.js +3 -4
  166. package/js/src/pro/bitfinex2.js +1 -1
  167. package/js/src/pro/bitmex.js +1 -1
  168. package/js/src/pro/bitpanda.js +1 -1
  169. package/js/src/pro/blockchaincom.js +1 -1
  170. package/js/src/pro/bybit.js +2 -2
  171. package/js/src/pro/cex.js +1 -1
  172. package/js/src/pro/coinbase.js +1 -1
  173. package/js/src/pro/coinbasepro.js +1 -1
  174. package/js/src/pro/deribit.js +1 -1
  175. package/js/src/pro/gate.js +3 -3
  176. package/js/src/pro/gemini.js +1 -1
  177. package/js/src/pro/hollaex.js +1 -1
  178. package/js/src/pro/htx.js +1 -1
  179. package/js/src/pro/idex.js +1 -1
  180. package/js/src/pro/kraken.js +3 -4
  181. package/js/src/pro/krakenfutures.js +1 -1
  182. package/js/src/pro/kucoinfutures.js +1 -1
  183. package/js/src/pro/mexc.js +1 -1
  184. package/js/src/pro/okcoin.js +1 -1
  185. package/js/src/pro/okx.js +2 -2
  186. package/js/src/pro/phemex.js +1 -1
  187. package/js/src/pro/poloniexfutures.js +1 -1
  188. package/js/src/pro/woo.js +2 -3
  189. package/js/src/probit.js +1 -1
  190. package/js/src/timex.js +1 -1
  191. package/js/src/tokocrypto.js +1 -1
  192. package/js/src/upbit.js +1 -1
  193. package/js/src/wavesexchange.js +1 -1
  194. package/js/src/whitebit.js +1 -1
  195. package/js/src/woo.js +1 -1
  196. package/js/src/zaif.js +1 -1
  197. package/package.json +2 -2
  198. package/skip-tests.json +1 -0
@@ -512,7 +512,7 @@ class independentreserve extends independentreserve$1 {
512
512
  * @description fetches information on multiple closed orders made by the user
513
513
  * @param {string} symbol unified market symbol of the market orders were made in
514
514
  * @param {int} [since] the earliest time in ms to fetch orders for
515
- * @param {int} [limit] the maximum number of orde structures to retrieve
515
+ * @param {int} [limit] the maximum number of order structures to retrieve
516
516
  * @param {object} [params] extra parameters specific to the exchange API endpoint
517
517
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
518
518
  */
@@ -824,7 +824,6 @@ class kraken extends kraken$1 {
824
824
  // "o":"2571.56000"
825
825
  // }
826
826
  //
827
- const timestamp = this.milliseconds();
828
827
  const symbol = this.safeSymbol(undefined, market);
829
828
  const v = this.safeValue(ticker, 'v', []);
830
829
  const baseVolume = this.safeString(v, 1);
@@ -839,8 +838,8 @@ class kraken extends kraken$1 {
839
838
  const ask = this.safeValue(ticker, 'a', []);
840
839
  return this.safeTicker({
841
840
  'symbol': symbol,
842
- 'timestamp': timestamp,
843
- 'datetime': this.iso8601(timestamp),
841
+ 'timestamp': undefined,
842
+ 'datetime': undefined,
844
843
  'high': this.safeString(high, 1),
845
844
  'low': this.safeString(low, 1),
846
845
  'bid': this.safeString(bid, 0),
@@ -1354,8 +1353,12 @@ class kraken extends kraken$1 {
1354
1353
  * @param {float} amount how much of currency you want to trade in units of base currency
1355
1354
  * @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1356
1355
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1357
- * @param {bool} params.postOnly
1358
- * @param {bool} params.reduceOnly
1356
+ * @param {bool} [params.postOnly] if true, the order will only be posted to the order book and not executed immediately
1357
+ * @param {bool} [params.reduceOnly] *margin only* indicates if this order is to reduce the size of a position
1358
+ * @param {float} [params.stopLossPrice] *margin only* the price that a stop loss order is triggered at
1359
+ * @param {float} [params.takeProfitPrice] *margin only* the price that a take profit order is triggered at
1360
+ * @param {string} [params.trailingStopPrice] *margin only* the quote amount to trail away from the current market price
1361
+ * @param {string} [params.trigger] *margin only* the activation price type, 'last' or 'index', default is 'last'
1359
1362
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1360
1363
  */
1361
1364
  await this.loadMarkets();
@@ -1610,50 +1613,48 @@ class kraken extends kraken$1 {
1610
1613
  if (clientOrderId !== undefined) {
1611
1614
  request['userref'] = clientOrderId;
1612
1615
  }
1613
- //
1614
- // market
1615
- // limit (price = limit price)
1616
- // stop-loss (price = stop loss trigger price)
1617
- // take-profit (price = take profit trigger price)
1618
- // stop-loss-limit (price = stop loss trigger price, price2 = triggered limit price)
1619
- // take-profit-limit (price = take profit trigger price, price2 = triggered limit price)
1620
- // settle-position
1621
- //
1616
+ const stopLossTriggerPrice = this.safeString(params, 'stopLossPrice');
1617
+ const takeProfitTriggerPrice = this.safeString(params, 'takeProfitPrice');
1618
+ const isStopLossTriggerOrder = stopLossTriggerPrice !== undefined;
1619
+ const isTakeProfitTriggerOrder = takeProfitTriggerPrice !== undefined;
1620
+ const isStopLossOrTakeProfitTrigger = isStopLossTriggerOrder || isTakeProfitTriggerOrder;
1621
+ const trailingStopPrice = this.safeString(params, 'trailingStopPrice');
1622
+ const isTrailingStopPriceOrder = trailingStopPrice !== undefined;
1622
1623
  if (type === 'limit') {
1623
1624
  request['price'] = this.priceToPrecision(symbol, price);
1624
1625
  }
1625
- else if ((type === 'stop-loss') || (type === 'take-profit')) {
1626
- const stopPrice = this.safeNumber2(params, 'price', 'stopPrice', price);
1627
- if (stopPrice === undefined) {
1628
- throw new errors.ArgumentsRequired(this.id + method + ' requires a price argument or a price/stopPrice parameter for a ' + type + ' order');
1626
+ let reduceOnly = this.safeValue2(params, 'reduceOnly', 'reduce_only');
1627
+ if (isStopLossOrTakeProfitTrigger) {
1628
+ if (isStopLossTriggerOrder) {
1629
+ request['price'] = this.priceToPrecision(symbol, stopLossTriggerPrice);
1630
+ request['ordertype'] = 'stop-loss-limit';
1629
1631
  }
1630
- else {
1631
- request['price'] = this.priceToPrecision(symbol, stopPrice);
1632
+ else if (isTakeProfitTriggerOrder) {
1633
+ request['price'] = this.priceToPrecision(symbol, takeProfitTriggerPrice);
1634
+ request['ordertype'] = 'take-profit-limit';
1632
1635
  }
1633
- }
1634
- else if ((type === 'stop-loss-limit') || (type === 'take-profit-limit')) {
1635
- const stopPrice = this.safeNumber2(params, 'price', 'stopPrice');
1636
- const limitPrice = this.safeNumber(params, 'price2');
1637
- const stopPriceDefined = (stopPrice !== undefined);
1638
- const limitPriceDefined = (limitPrice !== undefined);
1639
- if (stopPriceDefined && limitPriceDefined) {
1640
- request['price'] = this.priceToPrecision(symbol, stopPrice);
1641
- request['price2'] = this.priceToPrecision(symbol, limitPrice);
1642
- }
1643
- else if ((price === undefined) || (!(stopPriceDefined || limitPriceDefined))) {
1644
- throw new errors.ArgumentsRequired(this.id + method + ' requires a price argument and/or price/stopPrice/price2 parameters for a ' + type + ' order');
1636
+ request['price2'] = this.priceToPrecision(symbol, price);
1637
+ reduceOnly = true;
1638
+ }
1639
+ else if (isTrailingStopPriceOrder) {
1640
+ const trailingStopActivationPriceType = this.safeString(params, 'trigger', 'last');
1641
+ const trailingStopPriceString = '+' + trailingStopPrice;
1642
+ request['trigger'] = trailingStopActivationPriceType;
1643
+ reduceOnly = true;
1644
+ if (type === 'limit') {
1645
+ const trailingStopLimitPriceString = '+' + this.numberToString(price);
1646
+ request['price'] = trailingStopPriceString;
1647
+ request['price2'] = trailingStopLimitPriceString;
1648
+ request['ordertype'] = 'trailing-stop-limit';
1645
1649
  }
1646
1650
  else {
1647
- if (stopPriceDefined) {
1648
- request['price'] = this.priceToPrecision(symbol, stopPrice);
1649
- request['price2'] = this.priceToPrecision(symbol, price);
1650
- }
1651
- else if (limitPriceDefined) {
1652
- request['price'] = this.priceToPrecision(symbol, price);
1653
- request['price2'] = this.priceToPrecision(symbol, limitPrice);
1654
- }
1651
+ request['price'] = trailingStopPriceString;
1652
+ request['ordertype'] = 'trailing-stop';
1655
1653
  }
1656
1654
  }
1655
+ if (reduceOnly) {
1656
+ request['reduce_only'] = 'true'; // not using boolean in this case, because the urlencodedNested transforms it into 'True' string
1657
+ }
1657
1658
  let close = this.safeValue(params, 'close');
1658
1659
  if (close !== undefined) {
1659
1660
  close = this.extend({}, close);
@@ -1677,11 +1678,7 @@ class kraken extends kraken$1 {
1677
1678
  if (postOnly) {
1678
1679
  request['oflags'] = 'post';
1679
1680
  }
1680
- const reduceOnly = this.safeValue(params, 'reduceOnly');
1681
- if (reduceOnly) {
1682
- request['reduce_only'] = true;
1683
- }
1684
- params = this.omit(params, ['price', 'stopPrice', 'price2', 'close', 'timeInForce', 'reduceOnly']);
1681
+ params = this.omit(params, ['timeInForce', 'reduceOnly', 'stopLossPrice', 'takeProfitPrice', 'trailingStopPrice']);
1685
1682
  return [request, params];
1686
1683
  }
1687
1684
  async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
@@ -1697,6 +1694,10 @@ class kraken extends kraken$1 {
1697
1694
  * @param {float} amount how much of the currency you want to trade in units of the base currency
1698
1695
  * @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1699
1696
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1697
+ * @param {float} [params.stopLossPrice] *margin only* the price that a stop loss order is triggered at
1698
+ * @param {float} [params.takeProfitPrice] *margin only* the price that a take profit order is triggered at
1699
+ * @param {string} [params.trailingStopPrice] *margin only* the quote price away from the current market price
1700
+ * @param {string} [params.trigger] *margin only* the activation price type, 'last' or 'index', default is 'last'
1700
1701
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1701
1702
  */
1702
1703
  await this.loadMarkets();
@@ -2079,7 +2080,7 @@ class kraken extends kraken$1 {
2079
2080
  * @see https://docs.kraken.com/rest/#tag/Account-Data/operation/getClosedOrders
2080
2081
  * @param {string} symbol unified market symbol of the market orders were made in
2081
2082
  * @param {int} [since] the earliest time in ms to fetch orders for
2082
- * @param {int} [limit] the maximum number of orde structures to retrieve
2083
+ * @param {int} [limit] the maximum number of order structures to retrieve
2083
2084
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2084
2085
  * @param {int} [params.until] timestamp in ms of the latest entry
2085
2086
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
@@ -841,20 +841,12 @@ class krakenfutures extends krakenfutures$1 {
841
841
  });
842
842
  }
843
843
  createOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
844
+ const market = this.market(symbol);
844
845
  type = this.safeString(params, 'orderType', type);
845
846
  const timeInForce = this.safeString(params, 'timeInForce');
846
- const stopPrice = this.safeString(params, 'stopPrice');
847
847
  let postOnly = false;
848
848
  [postOnly, params] = this.handlePostOnly(type === 'market', type === 'post', params);
849
- const clientOrderId = this.safeString2(params, 'clientOrderId', 'cliOrdId');
850
- params = this.omit(params, ['clientOrderId', 'cliOrdId']);
851
- if ((type === 'stp' || type === 'take_profit') && stopPrice === undefined) {
852
- throw new errors.ArgumentsRequired(this.id + ' createOrder requires params.stopPrice when type is ' + type);
853
- }
854
- if (stopPrice !== undefined && type !== 'take_profit') {
855
- type = 'stp';
856
- }
857
- else if (postOnly) {
849
+ if (postOnly) {
858
850
  type = 'post';
859
851
  }
860
852
  else if (timeInForce === 'ioc') {
@@ -867,17 +859,49 @@ class krakenfutures extends krakenfutures$1 {
867
859
  type = 'mkt';
868
860
  }
869
861
  const request = {
870
- 'orderType': type,
871
- 'symbol': this.marketId(symbol),
862
+ 'symbol': market['id'],
872
863
  'side': side,
873
864
  'size': amount,
874
865
  };
875
- if (price !== undefined) {
876
- request['limitPrice'] = price;
877
- }
866
+ const clientOrderId = this.safeString2(params, 'clientOrderId', 'cliOrdId');
878
867
  if (clientOrderId !== undefined) {
879
868
  request['cliOrdId'] = clientOrderId;
880
869
  }
870
+ const triggerPrice = this.safeString2(params, 'triggerPrice', 'stopPrice');
871
+ const isTriggerOrder = triggerPrice !== undefined;
872
+ const stopLossTriggerPrice = this.safeString(params, 'stopLossPrice');
873
+ const takeProfitTriggerPrice = this.safeString(params, 'takeProfitPrice');
874
+ const isStopLossTriggerOrder = stopLossTriggerPrice !== undefined;
875
+ const isTakeProfitTriggerOrder = takeProfitTriggerPrice !== undefined;
876
+ const isStopLossOrTakeProfitTrigger = isStopLossTriggerOrder || isTakeProfitTriggerOrder;
877
+ const triggerSignal = this.safeString(params, 'triggerSignal', 'last');
878
+ let reduceOnly = this.safeValue(params, 'reduceOnly');
879
+ if (isStopLossOrTakeProfitTrigger || isTriggerOrder) {
880
+ request['triggerSignal'] = triggerSignal;
881
+ }
882
+ if (isTriggerOrder) {
883
+ type = 'stp';
884
+ request['stopPrice'] = this.priceToPrecision(symbol, triggerPrice);
885
+ }
886
+ else if (isStopLossOrTakeProfitTrigger) {
887
+ reduceOnly = true;
888
+ if (isStopLossTriggerOrder) {
889
+ type = 'stp';
890
+ request['stopPrice'] = this.priceToPrecision(symbol, stopLossTriggerPrice);
891
+ }
892
+ else if (isTakeProfitTriggerOrder) {
893
+ type = 'take_profit';
894
+ request['stopPrice'] = this.priceToPrecision(symbol, takeProfitTriggerPrice);
895
+ }
896
+ }
897
+ if (reduceOnly) {
898
+ request['reduceOnly'] = true;
899
+ }
900
+ request['orderType'] = type;
901
+ if (price !== undefined) {
902
+ request['limitPrice'] = price;
903
+ }
904
+ params = this.omit(params, ['clientOrderId', 'timeInForce', 'triggerPrice', 'stopLossPrice', 'takeProfitPrice']);
881
905
  return this.extend(request, params);
882
906
  }
883
907
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
@@ -885,19 +909,22 @@ class krakenfutures extends krakenfutures$1 {
885
909
  * @method
886
910
  * @name krakenfutures#createOrder
887
911
  * @description Create an order on the exchange
888
- * @param {string} symbol market symbol
889
- * @param {string} type One of 'limit', 'market', 'take_profit'
890
- * @param {string} side buy or sell
891
- * @param {int} amount Contract quantity
892
- * @param {float} [price] Limit order price
893
- * @param {float} [params.stopPrice] The stop price associated with a stop or take profit order, Required if orderType is stp or take_profit, Must not have more than 2 decimal places, Note that for stop orders, limitPrice denotes the worst price at which the stop or take_profit order can get filled at. If no limitPrice is provided the stop or take_profit order will trigger a market order,
894
- * @param {bool} [params.reduceOnly] Set as true if you wish the order to only reduce an existing position, Any order which increases an existing position will be rejected, Default false,
895
- * @param {bool} [params.postOnly] Set as true if you wish to make a postOnly order, Default false
896
- * @param {string} [params.triggerSignal] If placing a stp or take_profit, the signal used for trigger, One of: 'mark', 'index', 'last', last is market price
897
- * @param {string} [params.cliOrdId] UUID The order identity that is specified from the user, It must be globally unique
912
+ * @see https://docs.futures.kraken.com/#http-api-trading-v3-api-order-management-send-order
913
+ * @param {string} symbol unified market symbol
914
+ * @param {string} type 'limit' or 'market'
915
+ * @param {string} side 'buy' or 'sell'
916
+ * @param {float} amount number of contracts
917
+ * @param {float} [price] limit order price
918
+ * @param {bool} [params.reduceOnly] set as true if you wish the order to only reduce an existing position, any order which increases an existing position will be rejected, default is false
919
+ * @param {bool} [params.postOnly] set as true if you wish to make a postOnly order, default is false
898
920
  * @param {string} [params.clientOrderId] UUID The order identity that is specified from the user, It must be globally unique
921
+ * @param {float} [params.triggerPrice] the price that a stop order is triggered at
922
+ * @param {float} [params.stopLossPrice] the price that a stop loss order is triggered at
923
+ * @param {float} [params.takeProfitPrice] the price that a take profit order is triggered at
924
+ * @param {string} [params.triggerSignal] for triggerPrice, stopLossPrice and takeProfitPrice orders, the trigger price type, 'last', 'mark' or 'index', default is 'last'
899
925
  */
900
926
  await this.loadMarkets();
927
+ const market = this.market(symbol);
901
928
  const orderRequest = this.createOrderRequest(symbol, type, side, amount, price, params);
902
929
  const response = await this.privatePostSendorder(orderRequest);
903
930
  //
@@ -933,7 +960,7 @@ class krakenfutures extends krakenfutures$1 {
933
960
  const sendStatus = this.safeValue(response, 'sendStatus');
934
961
  const status = this.safeString(sendStatus, 'status');
935
962
  this.verifyOrderActionSuccess(status, 'createOrder', ['filled']);
936
- return this.parseOrder(sendStatus);
963
+ return this.parseOrder(sendStatus, market);
937
964
  }
938
965
  async createOrders(orders, params = {}) {
939
966
  /**
@@ -38,6 +38,9 @@ class kucoin extends kucoin$1 {
38
38
  'closeAllPositions': false,
39
39
  'closePosition': false,
40
40
  'createDepositAddress': true,
41
+ 'createMarketBuyOrderWithCost': true,
42
+ 'createMarketOrderWithCost': true,
43
+ 'createMarketSellOrderWithCost': true,
41
44
  'createOrder': true,
42
45
  'createOrders': true,
43
46
  'createPostOnlyOrder': true,
@@ -205,6 +208,10 @@ class kucoin extends kucoin$1 {
205
208
  'stop-order': 8,
206
209
  'stop-order/{orderId}': 3,
207
210
  'stop-order/queryOrderByClientOid': 3,
211
+ 'oco/order/{orderId}': 2,
212
+ 'oco/order/details/{orderId}': 2,
213
+ 'oco/client-order/{clientOid}': 2,
214
+ 'oco/orders': 2,
208
215
  // margin trading
209
216
  'hf/margin/orders/active': 4,
210
217
  'hf/margin/orders/done': 10,
@@ -212,6 +219,7 @@ class kucoin extends kucoin$1 {
212
219
  'hf/margin/orders/client-order/{clientOid}': 5,
213
220
  'hf/margin/fills': 5,
214
221
  'etf/info': 25,
222
+ 'margin/currencies': 20,
215
223
  'risk/limit/strategy': 20,
216
224
  'isolated/symbols': 20,
217
225
  'isolated/account/{symbol}': 50,
@@ -247,6 +255,7 @@ class kucoin extends kucoin$1 {
247
255
  'orders/test': 2,
248
256
  'orders/multi': 3,
249
257
  'stop-order': 2,
258
+ 'oco/order': 2,
250
259
  // margin trading
251
260
  'hf/margin/order': 5,
252
261
  'hf/margin/order/test': 5,
@@ -272,12 +281,16 @@ class kucoin extends kucoin$1 {
272
281
  'hf/orders/sync/client-order/{clientOid}': 1,
273
282
  'hf/orders/cancel/{orderId}': 2,
274
283
  'hf/orders': 2,
284
+ 'hf/orders/cancelAll': 30,
275
285
  'orders/{orderId}': 3,
276
286
  'order/client-order/{clientOid}': 5,
277
287
  'orders': 20,
278
288
  'stop-order/{orderId}': 3,
279
289
  'stop-order/cancelOrderByClientOid': 5,
280
290
  'stop-order/cancel': 3,
291
+ 'oco/order/{orderId}': 3,
292
+ 'oco/client-order/{clientOid}': 3,
293
+ 'oco/orders': 3,
281
294
  // margin trading
282
295
  'hf/margin/orders/{orderId}': 5,
283
296
  'hf/margin/orders/client-order/{clientOid}': 5,
@@ -298,6 +311,7 @@ class kucoin extends kucoin$1 {
298
311
  'index/query': 3,
299
312
  'mark-price/{symbol}/current': 4.5,
300
313
  'premium/query': 4.5,
314
+ 'trade-statistics': 4.5,
301
315
  'funding-rate/{symbol}/current': 3,
302
316
  'timestamp': 3,
303
317
  'status': 6,
@@ -346,6 +360,7 @@ class kucoin extends kucoin$1 {
346
360
  },
347
361
  'delete': {
348
362
  'orders/{orderId}': 1.5,
363
+ 'orders/client-order/{clientOid}': 1.5,
349
364
  'orders': 45,
350
365
  'stopOrders': 22.5, // 15FW
351
366
  },
@@ -533,6 +548,10 @@ class kucoin extends kucoin$1 {
533
548
  'market/orderbook/level2': 'v3',
534
549
  'market/orderbook/level3': 'v3',
535
550
  'market/orderbook/level{level}': 'v3',
551
+ 'oco/order/{orderId}': 'v3',
552
+ 'oco/order/details/{orderId}': 'v3',
553
+ 'oco/client-order/{clientOid}': 'v3',
554
+ 'oco/orders': 'v3',
536
555
  // margin trading
537
556
  'hf/margin/orders/active': 'v3',
538
557
  'hf/margin/orders/done': 'v3',
@@ -540,6 +559,7 @@ class kucoin extends kucoin$1 {
540
559
  'hf/margin/orders/client-order/{clientOid}': 'v3',
541
560
  'hf/margin/fills': 'v3',
542
561
  'etf/info': 'v3',
562
+ 'margin/currencies': 'v3',
543
563
  'margin/borrow': 'v3',
544
564
  'margin/repay': 'v3',
545
565
  'project/list': 'v3',
@@ -556,6 +576,7 @@ class kucoin extends kucoin$1 {
556
576
  'accounts/inner-transfer': 'v2',
557
577
  'transfer-out': 'v3',
558
578
  // spot trading
579
+ 'oco/order': 'v3',
559
580
  // margin trading
560
581
  'hf/margin/order': 'v3',
561
582
  'hf/margin/order/test': 'v3',
@@ -572,6 +593,9 @@ class kucoin extends kucoin$1 {
572
593
  'hf/margin/orders/{orderId}': 'v3',
573
594
  'hf/margin/orders/client-order/{clientOid}': 'v3',
574
595
  'hf/margin/orders': 'v3',
596
+ 'oco/order/{orderId}': 'v3',
597
+ 'oco/client-order/{clientOid}': 'v3',
598
+ 'oco/orders': 'v3',
575
599
  // margin trading
576
600
  },
577
601
  },
@@ -1927,6 +1951,50 @@ class kucoin extends kucoin$1 {
1927
1951
  const data = this.safeValue(response, 'data', {});
1928
1952
  return this.parseOrder(data, market);
1929
1953
  }
1954
+ async createMarketOrderWithCost(symbol, side, cost, params = {}) {
1955
+ /**
1956
+ * @method
1957
+ * @name kucoin#createMarketOrderWithCost
1958
+ * @description create a market order by providing the symbol, side and cost
1959
+ * @see https://www.kucoin.com/docs/rest/spot-trading/orders/place-order
1960
+ * @param {string} symbol unified symbol of the market to create an order in
1961
+ * @param {string} side 'buy' or 'sell'
1962
+ * @param {float} cost how much you want to trade in units of the quote currency
1963
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1964
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1965
+ */
1966
+ await this.loadMarkets();
1967
+ params['cost'] = cost;
1968
+ return await this.createOrder(symbol, 'market', side, cost, undefined, params);
1969
+ }
1970
+ async createMarketBuyOrderWithCost(symbol, cost, params = {}) {
1971
+ /**
1972
+ * @method
1973
+ * @name kucoin#createMarketBuyOrderWithCost
1974
+ * @description create a market buy order by providing the symbol and cost
1975
+ * @see https://www.kucoin.com/docs/rest/spot-trading/orders/place-order
1976
+ * @param {string} symbol unified symbol of the market to create an order in
1977
+ * @param {float} cost how much you want to trade in units of the quote currency
1978
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1979
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1980
+ */
1981
+ await this.loadMarkets();
1982
+ return await this.createMarketOrderWithCost(symbol, 'buy', cost, params);
1983
+ }
1984
+ async createMarketSellOrderWithCost(symbol, cost, params = {}) {
1985
+ /**
1986
+ * @method
1987
+ * @name kucoin#createMarketSellOrderWithCost
1988
+ * @description create a market sell order by providing the symbol and cost
1989
+ * @see https://www.kucoin.com/docs/rest/spot-trading/orders/place-order
1990
+ * @param {string} symbol unified symbol of the market to create an order in
1991
+ * @param {float} cost how much you want to trade in units of the quote currency
1992
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1993
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1994
+ */
1995
+ await this.loadMarkets();
1996
+ return await this.createMarketOrderWithCost(symbol, 'sell', cost, params);
1997
+ }
1930
1998
  async createOrders(orders, params = {}) {
1931
1999
  /**
1932
2000
  * @method
@@ -2225,9 +2293,11 @@ class kucoin extends kucoin$1 {
2225
2293
  }
2226
2294
  else if (hf) {
2227
2295
  if (symbol === undefined) {
2228
- throw new errors.ArgumentsRequired(this.id + ' cancelAllOrders() requires a symbol parameter for hf orders');
2296
+ response = await this.privateDeleteHfOrdersCancelAll(this.extend(request, query));
2297
+ }
2298
+ else {
2299
+ response = await this.privateDeleteHfOrders(this.extend(request, query));
2229
2300
  }
2230
- response = await this.privateDeleteHfOrders(this.extend(request, query));
2231
2301
  }
2232
2302
  else {
2233
2303
  response = await this.privateDeleteOrders(this.extend(request, query));
@@ -2363,7 +2433,7 @@ class kucoin extends kucoin$1 {
2363
2433
  * @see https://docs.kucoin.com/spot-hf/#obtain-list-of-filled-hf-orders
2364
2434
  * @param {string} symbol unified market symbol of the market orders were made in
2365
2435
  * @param {int} [since] the earliest time in ms to fetch orders for
2366
- * @param {int} [limit] the maximum number of orde structures to retrieve
2436
+ * @param {int} [limit] the maximum number of order structures to retrieve
2367
2437
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2368
2438
  * @param {int} [params.till] end time in ms
2369
2439
  * @param {string} [params.side] buy or sell
@@ -2484,7 +2554,7 @@ class kucoin extends kucoin$1 {
2484
2554
  response = await this.privateGetOrdersOrderId(this.extend(request, params));
2485
2555
  }
2486
2556
  }
2487
- let responseData = this.safeValue(response, 'data');
2557
+ let responseData = this.safeValue(response, 'data', {});
2488
2558
  if (Array.isArray(responseData)) {
2489
2559
  responseData = this.safeValue(responseData, 0);
2490
2560
  }
@@ -1566,7 +1566,7 @@ class kucoinfutures extends kucoinfutures$1 {
1566
1566
  * @see https://docs.kucoin.com/futures/#get-order-list
1567
1567
  * @param {string} symbol unified market symbol of the market orders were made in
1568
1568
  * @param {int} [since] the earliest time in ms to fetch orders for
1569
- * @param {int} [limit] the maximum number of orde structures to retrieve
1569
+ * @param {int} [limit] the maximum number of order structures to retrieve
1570
1570
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1571
1571
  * @param {int} [params.till] end time in ms
1572
1572
  * @param {string} [params.side] buy or sell
@@ -2440,7 +2440,7 @@ class kucoinfutures extends kucoinfutures$1 {
2440
2440
  * @param {string} side not used by kucoinfutures closePositions
2441
2441
  * @param {object} [params] extra parameters specific to the okx api endpoint
2442
2442
  * @param {string} [params.clientOrderId] client order id of the order
2443
- * @returns {[object]} [A list of position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
2443
+ * @returns {object[]} [A list of position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
2444
2444
  */
2445
2445
  await this.loadMarkets();
2446
2446
  const market = this.market(symbol);
@@ -1265,7 +1265,7 @@ class kuna extends kuna$1 {
1265
1265
  * @see https://docs.kuna.io/docs/get-private-orders-history
1266
1266
  * @param {string} symbol unified market symbol of the market orders were made in
1267
1267
  * @param {int} [since] the earliest time in ms to fetch orders for
1268
- * @param {int} [limit] the maximum number of orde structures to retrieve
1268
+ * @param {int} [limit] the maximum number of order structures to retrieve
1269
1269
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1270
1270
  * @param {int} [params.until] the latest time in ms to fetch orders for
1271
1271
  *
@@ -1138,7 +1138,7 @@ class latoken extends latoken$1 {
1138
1138
  * @see https://api.latoken.com/doc/v2/#tag/StopOrder/operation/getMyStopOrdersByPair // stop
1139
1139
  * @param {string} symbol unified market symbol of the market orders were made in
1140
1140
  * @param {int} [since] the earliest time in ms to fetch orders for
1141
- * @param {int} [limit] the maximum number of orde structures to retrieve
1141
+ * @param {int} [limit] the maximum number of order structures to retrieve
1142
1142
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1143
1143
  * @param {boolean} [params.trigger] true if fetching trigger orders
1144
1144
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
@@ -471,7 +471,7 @@ class luno extends luno$1 {
471
471
  * @description fetches information on multiple orders made by the user
472
472
  * @param {string} symbol unified market symbol of the market orders were made in
473
473
  * @param {int} [since] the earliest time in ms to fetch orders for
474
- * @param {int} [limit] the maximum number of orde structures to retrieve
474
+ * @param {int} [limit] the maximum number of order structures to retrieve
475
475
  * @param {object} [params] extra parameters specific to the exchange API endpoint
476
476
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
477
477
  */
@@ -497,7 +497,7 @@ class luno extends luno$1 {
497
497
  * @description fetches information on multiple closed orders made by the user
498
498
  * @param {string} symbol unified market symbol of the market orders were made in
499
499
  * @param {int} [since] the earliest time in ms to fetch orders for
500
- * @param {int} [limit] the maximum number of orde structures to retrieve
500
+ * @param {int} [limit] the maximum number of order structures to retrieve
501
501
  * @param {object} [params] extra parameters specific to the exchange API endpoint
502
502
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
503
503
  */
@@ -972,7 +972,7 @@ class lykke extends lykke$1 {
972
972
  * @description fetches information on multiple closed orders made by the user
973
973
  * @param {string} symbol unified market symbol of the market orders were made in
974
974
  * @param {int} [since] the earliest time in ms to fetch orders for
975
- * @param {int} [limit] the maximum number of orde structures to retrieve
975
+ * @param {int} [limit] the maximum number of order structures to retrieve
976
976
  * @param {object} [params] extra parameters specific to the exchange API endpoint
977
977
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
978
978
  */
@@ -2511,7 +2511,7 @@ class mexc extends mexc$1 {
2511
2511
  * @description fetches information on multiple orders made by the user
2512
2512
  * @param {string} symbol unified market symbol of the market orders were made in
2513
2513
  * @param {int} [since] the earliest time in ms to fetch orders for
2514
- * @param {int} [limit] the maximum number of orde structures to retrieve
2514
+ * @param {int} [limit] the maximum number of order structures to retrieve
2515
2515
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2516
2516
  * @param {string} [params.marginMode] only 'isolated' is supported, for spot-margin trading
2517
2517
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
@@ -2834,7 +2834,7 @@ class mexc extends mexc$1 {
2834
2834
  * @description fetches information on multiple closed orders made by the user
2835
2835
  * @param {string} symbol unified market symbol of the market orders were made in
2836
2836
  * @param {int} [since] the earliest time in ms to fetch orders for
2837
- * @param {int} [limit] the maximum number of orde structures to retrieve
2837
+ * @param {int} [limit] the maximum number of order structures to retrieve
2838
2838
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2839
2839
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2840
2840
  */
@@ -1681,7 +1681,7 @@ class ndax extends ndax$1 {
1681
1681
  * @description fetches information on multiple orders made by the user
1682
1682
  * @param {string} symbol unified market symbol of the market orders were made in
1683
1683
  * @param {int} [since] the earliest time in ms to fetch orders for
1684
- * @param {int} [limit] the maximum number of orde structures to retrieve
1684
+ * @param {int} [limit] the maximum number of order structures to retrieve
1685
1685
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1686
1686
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1687
1687
  */
@@ -903,7 +903,7 @@ class novadax extends novadax$1 {
903
903
  * @see https://doc.novadax.com/en-US/#get-order-history
904
904
  * @param {string} symbol unified market symbol of the market orders were made in
905
905
  * @param {int} [since] the earliest time in ms to fetch orders for
906
- * @param {int} [limit] the maximum number of orde structures to retrieve
906
+ * @param {int} [limit] the maximum number of order structures to retrieve
907
907
  * @param {object} [params] extra parameters specific to the exchange API endpoint
908
908
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
909
909
  */
@@ -980,7 +980,7 @@ class novadax extends novadax$1 {
980
980
  * @see https://doc.novadax.com/en-US/#get-order-history
981
981
  * @param {string} symbol unified market symbol of the market orders were made in
982
982
  * @param {int} [since] the earliest time in ms to fetch orders for
983
- * @param {int} [limit] the maximum number of orde structures to retrieve
983
+ * @param {int} [limit] the maximum number of order structures to retrieve
984
984
  * @param {object} [params] extra parameters specific to the exchange API endpoint
985
985
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
986
986
  */
@@ -703,7 +703,7 @@ class oceanex extends oceanex$1 {
703
703
  * @see https://api.oceanex.pro/doc/v1/#order-status-get
704
704
  * @param {string} symbol unified market symbol of the market orders were made in
705
705
  * @param {int} [since] the earliest time in ms to fetch orders for
706
- * @param {int} [limit] the maximum number of orde structures to retrieve
706
+ * @param {int} [limit] the maximum number of order structures to retrieve
707
707
  * @param {object} [params] extra parameters specific to the exchange API endpoint
708
708
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
709
709
  */
@@ -2058,7 +2058,7 @@ class okcoin extends okcoin$1 {
2058
2058
  * @description fetches information on multiple closed orders made by the user
2059
2059
  * @param {string} symbol unified market symbol of the market orders were made in
2060
2060
  * @param {int} [since] the earliest time in ms to fetch orders for
2061
- * @param {int} [limit] the maximum number of orde structures to retrieve
2061
+ * @param {int} [limit] the maximum number of order structures to retrieve
2062
2062
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2063
2063
  * @param {bool} [params.stop] True if fetching trigger or conditional orders
2064
2064
  * @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
@@ -3903,7 +3903,7 @@ class okx extends okx$1 {
3903
3903
  * @see https://www.okx.com/docs-v5/en/#order-book-trading-algo-trading-get-algo-order-history
3904
3904
  * @param {string} symbol unified market symbol of the market orders were made in
3905
3905
  * @param {int} [since] the earliest time in ms to fetch orders for
3906
- * @param {int} [limit] the maximum number of orde structures to retrieve
3906
+ * @param {int} [limit] the maximum number of order structures to retrieve
3907
3907
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3908
3908
  * @param {bool} [params.stop] True if fetching trigger or conditional orders
3909
3909
  * @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
@@ -1366,7 +1366,7 @@ class poloniexfutures extends poloniexfutures$1 {
1366
1366
  * @see https://futures-docs.poloniex.com/#get-untriggered-stop-order-list
1367
1367
  * @param {string} symbol unified market symbol of the market orders were made in
1368
1368
  * @param {int} [since] the earliest time in ms to fetch orders for
1369
- * @param {int} [limit] the maximum number of orde structures to retrieve
1369
+ * @param {int} [limit] the maximum number of order structures to retrieve
1370
1370
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1371
1371
  * @param {int} [params.till] end time in ms
1372
1372
  * @param {string} [params.side] buy or sell