ccxt 4.2.99 → 4.3.1

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 (317) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/ccxt.js +1 -1
  3. package/dist/cjs/src/ascendex.js +1 -1
  4. package/dist/cjs/src/binance.js +56 -0
  5. package/dist/cjs/src/bingx.js +2 -2
  6. package/dist/cjs/src/bitget.js +64 -2
  7. package/dist/cjs/src/bybit.js +1 -1
  8. package/dist/cjs/src/coinex.js +55 -60
  9. package/dist/cjs/src/kraken.js +8 -3
  10. package/dist/cjs/src/kucoin.js +19 -17
  11. package/dist/cjs/src/okx.js +76 -5
  12. package/dist/cjs/src/pro/kraken.js +2 -2
  13. package/dist/cjs/src/woo.js +40 -0
  14. package/js/ccxt.d.ts +1 -1
  15. package/js/ccxt.js +1 -1
  16. package/js/src/ascendex.js +2 -2
  17. package/js/src/binance.d.ts +3 -1
  18. package/js/src/binance.js +56 -0
  19. package/js/src/bingx.js +3 -3
  20. package/js/src/bitget.d.ts +1 -0
  21. package/js/src/bitget.js +64 -2
  22. package/js/src/bybit.js +1 -1
  23. package/js/src/coinex.js +55 -60
  24. package/js/src/kraken.js +8 -3
  25. package/js/src/kucoin.js +19 -17
  26. package/js/src/okx.d.ts +1 -0
  27. package/js/src/okx.js +76 -5
  28. package/js/src/pro/kraken.js +2 -2
  29. package/js/src/woo.d.ts +1 -0
  30. package/js/src/woo.js +40 -0
  31. package/package.json +2 -1
  32. package/.dockerignore +0 -6
  33. package/.eslintignore +0 -1
  34. package/.git-templates/hooks/pre-push +0 -55
  35. package/.gitattributes +0 -7
  36. package/CHANGELOG.md +0 -6003
  37. package/CODEOWNERS +0 -1
  38. package/CONTRIBUTING.md +0 -1099
  39. package/build.sh +0 -217
  40. package/change.sh +0 -18
  41. package/cleanup.sh +0 -18
  42. package/composer-install.sh +0 -20
  43. package/dist/ccxt.browser.js +0 -327256
  44. package/dist/ccxt.browser.min.js +0 -30
  45. package/dist/ccxt.browser.min.js.LICENSE.txt +0 -12
  46. package/doc/FAQ.rst +0 -1
  47. package/doc/Makefile +0 -20
  48. package/doc/_static/css/dark.css +0 -101
  49. package/doc/_static/css/index.css +0 -128
  50. package/doc/_static/favicon.ico +0 -0
  51. package/doc/_static/javascript/binance-portal.min.js +0 -2369
  52. package/doc/_static/javascript/index.js +0 -195
  53. package/doc/_static/javascript/jquery-ui.min.js +0 -6
  54. package/doc/ccxt.pro.install.rst +0 -1
  55. package/doc/ccxt.pro.manual.rst +0 -1665
  56. package/doc/exchange-markets-by-country.rst +0 -1423
  57. package/doc/exchange-markets.rst +0 -1441
  58. package/doc/index.rst +0 -35
  59. package/doc/install.rst +0 -1
  60. package/doc/make.bat +0 -36
  61. package/doc/manual.rst +0 -7471
  62. package/doc/readme.rst +0 -2191
  63. package/doc/requirements.txt +0 -6
  64. package/examples/ccxt.pro/html/watchTicker.html +0 -51
  65. package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +0 -55
  66. package/examples/ccxt.pro/js/binance-https-proxy.js +0 -48
  67. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +0 -38
  68. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +0 -64
  69. package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +0 -62
  70. package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +0 -68
  71. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +0 -82
  72. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +0 -59
  73. package/examples/ccxt.pro/js/exchange-capabitities.js +0 -72
  74. package/examples/ccxt.pro/js/exchange-close.js +0 -46
  75. package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +0 -30
  76. package/examples/ccxt.pro/js/gateio-watch-balance.js +0 -23
  77. package/examples/ccxt.pro/js/gateio-watch-order-book.js +0 -71
  78. package/examples/ccxt.pro/js/graceful-shutdown.js +0 -43
  79. package/examples/ccxt.pro/js/many-exchanges-many-streams.js +0 -37
  80. package/examples/ccxt.pro/js/okex-create-futures-order.js +0 -48
  81. package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +0 -54
  82. package/examples/ccxt.pro/js/okx-watch-tickers.js +0 -31
  83. package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +0 -46
  84. package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +0 -26
  85. package/examples/ccxt.pro/js/one-exchange-many-streams.js +0 -28
  86. package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +0 -30
  87. package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +0 -40
  88. package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +0 -38
  89. package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +0 -40
  90. package/examples/ccxt.pro/js/watch-many-orderbooks.js +0 -27
  91. package/examples/ccxt.pro/js/watch-new-trades-only.js +0 -43
  92. package/examples/ccxt.pro/js/watch-new-trades.js +0 -42
  93. package/examples/ccxt.pro/js/watch-trades-many-symbols.js +0 -29
  94. package/examples/ccxt.pro/js/watch-vs-fetch.js +0 -29
  95. package/examples/cs/Examples.sln +0 -22
  96. package/examples/cs/c#.csproj +0 -19
  97. package/examples/html/basic-cors-proxy.html +0 -46
  98. package/examples/html/basic-inheritance.html +0 -47
  99. package/examples/html/basic-poller.html +0 -52
  100. package/examples/html/basic-rate-limiting.html +0 -49
  101. package/examples/html/basic.html +0 -43
  102. package/examples/html/binance-cors-proxy.html +0 -28
  103. package/examples/html/bitmex-browser-cors-proxy.js +0 -7
  104. package/examples/html/bitmex-cors.html +0 -46
  105. package/examples/html/tradingview-charts.html +0 -61
  106. package/examples/html/webworker/index.html +0 -97
  107. package/examples/html/webworker/worker.js +0 -43
  108. package/examples/js/advanced-error-handling.js +0 -39
  109. package/examples/js/aggregate-orderbook.js +0 -54
  110. package/examples/js/arbitrage-pairs.js +0 -130
  111. package/examples/js/basic-chart.js +0 -29
  112. package/examples/js/basic-orderbook-polling.js +0 -13
  113. package/examples/js/bcc-vs-bch.js +0 -115
  114. package/examples/js/benchmark.js +0 -104
  115. package/examples/js/binance-fetch-all-deposits.js +0 -45
  116. package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +0 -34
  117. package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +0 -33
  118. package/examples/js/binance-fetchTicker-delivery-vs-future.js +0 -31
  119. package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +0 -41
  120. package/examples/js/binance-margin-stop-order.js +0 -39
  121. package/examples/js/binance-server-time.js +0 -34
  122. package/examples/js/binance-universal-transfer.js +0 -16
  123. package/examples/js/bitfinex-fetch-trades.js +0 -35
  124. package/examples/js/bitfinex2-fetch-trades.js +0 -35
  125. package/examples/js/bitmex-browser-cors-proxy.js +0 -7
  126. package/examples/js/bitpanda-fetchMyTrades-reduce.js +0 -36
  127. package/examples/js/bitrue-fetch-balance.js +0 -28
  128. package/examples/js/bitstamp-private-api.js +0 -115
  129. package/examples/js/bitstamp-public-api.js +0 -39
  130. package/examples/js/bittrex-balance.js +0 -50
  131. package/examples/js/bittrex-fetch-closed-orders-history.js +0 -69
  132. package/examples/js/blockchaincom-withdrawal.js +0 -59
  133. package/examples/js/build-ohlcv-bars.js +0 -48
  134. package/examples/js/builtin-rate-limiting-rest-poller.js +0 -25
  135. package/examples/js/bybit-trailing.js +0 -62
  136. package/examples/js/bybit-updated.cjs +0 -154
  137. package/examples/js/coinbase-fetch-all-balances.js +0 -36
  138. package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +0 -47
  139. package/examples/js/coinex-futures.js +0 -75
  140. package/examples/js/coinone-fetch-tickers.js +0 -54
  141. package/examples/js/coinone-markets.js +0 -16
  142. package/examples/js/compare-two-exchanges-capabilities.js +0 -36
  143. package/examples/js/cors-proxy.js +0 -5
  144. package/examples/js/create-order-handle-errors.js +0 -55
  145. package/examples/js/create-order-position-with-takeprofit-stoploss.js +0 -71
  146. package/examples/js/create-order-with-retry.js +0 -65
  147. package/examples/js/create-order-ws-example.js +0 -25
  148. package/examples/js/create-orders-example.js +0 -17
  149. package/examples/js/create-trailing-amount-order.js +0 -36
  150. package/examples/js/create-trailing-percent-order.js +0 -36
  151. package/examples/js/credentials.json +0 -5
  152. package/examples/js/custom-proxy-agent-for-js.js +0 -10
  153. package/examples/js/custom-proxy-url.js +0 -23
  154. package/examples/js/delta-maintenance-margin-rate-max-leverage.js +0 -60
  155. package/examples/js/env-variables.js +0 -26
  156. package/examples/js/error-handling.js +0 -89
  157. package/examples/js/exchange-capabilities.js +0 -135
  158. package/examples/js/exchanges-by-volume.js +0 -60
  159. package/examples/js/exchanges.js +0 -40
  160. package/examples/js/fetch-all-balances.js +0 -219
  161. package/examples/js/fetch-all-tickers-to-files-2.js +0 -53
  162. package/examples/js/fetch-all-tickers-to-files.js +0 -77
  163. package/examples/js/fetch-balance.js +0 -28
  164. package/examples/js/fetch-create-deposit-address.js +0 -101
  165. package/examples/js/fetch-from-many-exchanges-simultaneously.js +0 -21
  166. package/examples/js/fetch-funding-rate-history.js +0 -25
  167. package/examples/js/fetch-futures/prettier.config.js +0 -5
  168. package/examples/js/fetch-futures/src/index.js +0 -25
  169. package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +0 -72
  170. package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +0 -39
  171. package/examples/js/fetch-ohlcv.js +0 -16
  172. package/examples/js/fetch-okex-futures.js +0 -22
  173. package/examples/js/fetch-orders.js +0 -27
  174. package/examples/js/fetch-ticker-from-multiple-exchanges.js +0 -35
  175. package/examples/js/fetch-ticker-where-available.js +0 -75
  176. package/examples/js/fetch-tickers/build/index.js +0 -19
  177. package/examples/js/fetch-tickers/prettier.config.js +0 -5
  178. package/examples/js/fetch-tickers/src/index.js +0 -17
  179. package/examples/js/gateio-create-batch-order.js +0 -43
  180. package/examples/js/gateio-futures.js +0 -49
  181. package/examples/js/gateio-open-close-contract.js +0 -49
  182. package/examples/js/gateio-swaps.js +0 -74
  183. package/examples/js/gdax-fetch-trades-pagination.js +0 -29
  184. package/examples/js/hitbtc2-withdraw.js +0 -61
  185. package/examples/js/how-to-import-one-exchange-esm.js +0 -10
  186. package/examples/js/huobi-futures.js +0 -71
  187. package/examples/js/huobi-open-close-contract.js +0 -63
  188. package/examples/js/huobi-swaps.js +0 -70
  189. package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +0 -98
  190. package/examples/js/hybridCJSExample.cjs +0 -19
  191. package/examples/js/hybridESMExample.js +0 -19
  192. package/examples/js/idex-fetch-balance.js +0 -13
  193. package/examples/js/instantiate-all-at-once.js +0 -46
  194. package/examples/js/instantiate-all-from-json.js +0 -31
  195. package/examples/js/kraken-create-and-close-position.js +0 -54
  196. package/examples/js/kraken-fetch-order-trades.js +0 -33
  197. package/examples/js/kraken-margin-trading.js +0 -89
  198. package/examples/js/kucoin-rate-limit.js +0 -38
  199. package/examples/js/latoken-example.js +0 -108
  200. package/examples/js/live-orderbook.js +0 -106
  201. package/examples/js/live-ticker.js +0 -80
  202. package/examples/js/live-tickers.js +0 -74
  203. package/examples/js/load-all-contracts.js +0 -41
  204. package/examples/js/load-all-symbols-at-once.js +0 -69
  205. package/examples/js/load-all-tickers-at-once.js +0 -91
  206. package/examples/js/load-markets-to-files.js +0 -57
  207. package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +0 -61
  208. package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +0 -91
  209. package/examples/js/margin-loan-borrow-buy-sell-repay.js +0 -70
  210. package/examples/js/market-status-and-currency-status.js +0 -29
  211. package/examples/js/ohlcv-console-chart.js +0 -29
  212. package/examples/js/okex-fetch-closed-orders-archive.js +0 -31
  213. package/examples/js/okex-transfer.js +0 -51
  214. package/examples/js/okx-poll-fetch-my-trades.js +0 -37
  215. package/examples/js/okx-poll-rate-limit.js +0 -48
  216. package/examples/js/order-book-extra-level-depth-param.js +0 -20
  217. package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +0 -49
  218. package/examples/js/poll-ohlcv.js +0 -43
  219. package/examples/js/poloniex-fetch-order-books.js +0 -35
  220. package/examples/js/poloniex-limits-amount-min.js +0 -62
  221. package/examples/js/proxy-round-robin.js +0 -98
  222. package/examples/js/proxy-usage.js +0 -32
  223. package/examples/js/sample-local-proxy-server-with-cors.js +0 -12
  224. package/examples/js/search-all-exchanges.js +0 -159
  225. package/examples/js/shared-load-markets.js +0 -80
  226. package/examples/js/sort-swap-markets-by-hourly-price-change.js +0 -55
  227. package/examples/js/symbols.js +0 -110
  228. package/examples/js/theocean.js +0 -41
  229. package/examples/js/tickers.js +0 -106
  230. package/examples/js/validate-paginated-data.js +0 -61
  231. package/examples/js/watch-OHLCV-For-Symbols.js +0 -15
  232. package/examples/js/watch-OHLCV.js +0 -12
  233. package/examples/js/watch-OrderBook-For-Symbols.js +0 -11
  234. package/examples/js/watch-Trades-For-Symbols.js +0 -11
  235. package/examples/js/watch-tickers.js +0 -11
  236. package/examples/js/watchOHLCVForSymbols.js +0 -15
  237. package/examples/js/watchOrderBookForSymbols.js +0 -11
  238. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +0 -2
  239. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +0 -1
  240. package/examples/js/watchPositions-many-exchanges-continuosly.js +0 -49
  241. package/examples/js/watchPositions.d.ts +0 -2
  242. package/examples/js/watchPositions.d.ts.map +0 -1
  243. package/examples/js/watchPositions.js +0 -13
  244. package/examples/js/watchPositionsForSymbols.d.ts +0 -2
  245. package/examples/js/watchPositionsForSymbols.d.ts.map +0 -1
  246. package/examples/js/watchPositionsForSymbols.js +0 -14
  247. package/examples/js/watchTradesForSymbols.js +0 -11
  248. package/examples/js/withdraw-from-one-exchange-to-another.js +0 -50
  249. package/examples/php/README.md +0 -7
  250. package/examples/py/README.md +0 -15
  251. package/examples/py/playing_with_ccxt_example.ipynb +0 -222
  252. package/examples/ts/.eslintrc +0 -111
  253. package/examples/ts/benchmark.ts +0 -134
  254. package/examples/ts/build-ohlcv-bars.ts +0 -53
  255. package/examples/ts/cli.ts +0 -397
  256. package/examples/ts/compare-two-exchanges-capabilities.ts +0 -36
  257. package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +0 -89
  258. package/examples/ts/create-order-ws-example.ts +0 -33
  259. package/examples/ts/create-orders-example.ts +0 -21
  260. package/examples/ts/create-trailing-amount-order.ts +0 -37
  261. package/examples/ts/create-trailing-percent-order.ts +0 -37
  262. package/examples/ts/custom-proxy-agent-for-js.ts +0 -14
  263. package/examples/ts/fetch-futures/package-lock.json +0 -116
  264. package/examples/ts/fetch-futures/package.json +0 -34
  265. package/examples/ts/fetch-futures/prettier.config.js +0 -4
  266. package/examples/ts/fetch-futures/src/index.ts +0 -28
  267. package/examples/ts/fetch-futures/tsconfig.json +0 -28
  268. package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +0 -44
  269. package/examples/ts/fetch-ohlcv.ts +0 -17
  270. package/examples/ts/fetch-tickers/package-lock.json +0 -116
  271. package/examples/ts/fetch-tickers/package.json +0 -34
  272. package/examples/ts/fetch-tickers/prettier.config.js +0 -4
  273. package/examples/ts/fetch-tickers/src/index.ts +0 -21
  274. package/examples/ts/fetch-tickers/tsconfig.json +0 -28
  275. package/examples/ts/how-to-import-one-exchange-esm.ts +0 -11
  276. package/examples/ts/kraken-create-and-close-position.ts +0 -69
  277. package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +0 -72
  278. package/examples/ts/nextjs-page-router/.eslintrc.json +0 -3
  279. package/examples/ts/nextjs-page-router/README.md +0 -43
  280. package/examples/ts/nextjs-page-router/next.config.js +0 -6
  281. package/examples/ts/nextjs-page-router/package-lock.json +0 -7425
  282. package/examples/ts/nextjs-page-router/package.json +0 -28
  283. package/examples/ts/nextjs-page-router/postcss.config.js +0 -6
  284. package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
  285. package/examples/ts/nextjs-page-router/src/pages/_app.tsx +0 -6
  286. package/examples/ts/nextjs-page-router/src/pages/_document.tsx +0 -13
  287. package/examples/ts/nextjs-page-router/src/pages/balance.tsx +0 -46
  288. package/examples/ts/nextjs-page-router/src/pages/index.tsx +0 -8
  289. package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +0 -61
  290. package/examples/ts/nextjs-page-router/src/styles/globals.css +0 -27
  291. package/examples/ts/nextjs-page-router/tailwind.config.ts +0 -20
  292. package/examples/ts/nextjs-page-router/tsconfig.json +0 -22
  293. package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +0 -62
  294. package/examples/ts/proxy-usage.ts +0 -41
  295. package/examples/ts/sample-local-proxy-server-with-cors.ts +0 -15
  296. package/examples/ts/watch-OHLCV-For-Symbols.ts +0 -17
  297. package/examples/ts/watch-OHLCV.ts +0 -14
  298. package/examples/ts/watch-OrderBook-For-Symbols.ts +0 -13
  299. package/examples/ts/watch-Trades-For-Symbols.ts +0 -13
  300. package/examples/ts/watch-tickers.ts +0 -13
  301. package/examples/ts/watchPositions-many-exchanges-continuosly.ts +0 -53
  302. package/examples/ts/watchPositions.ts +0 -15
  303. package/examples/ts/watchPositionsForSymbols.ts +0 -16
  304. package/examples/tsconfig.json +0 -27
  305. package/examples2md.js +0 -79
  306. package/gource.sh +0 -3
  307. package/index.html +0 -7
  308. package/jsdoc2md.js +0 -122
  309. package/multilang.sh +0 -164
  310. package/pro-tests.json +0 -57
  311. package/pyproject.toml +0 -8
  312. package/rollup.config.js +0 -60
  313. package/skip-tests.json +0 -1653
  314. package/test-commonjs.cjs +0 -65
  315. package/tests-manager.sh +0 -96
  316. package/tsconfig.json +0 -111
  317. package/webpack.config.js +0 -46
@@ -1,70 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- const exchange = new ccxt.huobi ({
4
- 'apiKey': 'YOUR_API_KEY',
5
- 'secret': 'YOUR_SECRET_KEY',
6
- 'options': {
7
- 'defaultType': 'swap',
8
- },
9
- })
10
-
11
- ;(async () => {
12
- const markets = await exchange.loadMarkets ()
13
-
14
- // exchange.verbose = true // uncomment for debugging purposes if necessary
15
-
16
- // creating and canceling a linear swap (limit) order
17
- let symbol = 'ADA/USDT:USDT'
18
- let type = 'limit'
19
- let side = 'buy'
20
- let offset= 'open'
21
- let leverage = 1
22
- let amount = 1
23
- let price = 1 // 1 contract = 10 ADA = 10 usd in this case
24
- let params = {
25
- 'offset': offset,
26
- 'lever_rate': leverage,
27
- }
28
-
29
- try {
30
- // fetching current balance
31
- const balance = await exchange.fetchBalance()
32
- // console.log(balance)
33
-
34
- // placing an order
35
- const order = await exchange.createOrder (symbol, type, side, amount, price, params)
36
- console.log (order)
37
-
38
- // fetching open orders
39
- const openOrders = await exchange.fetchOpenOrders(symbol)
40
- console.log(openOrders)
41
-
42
- // canceling an order
43
- const cancel = await exchange.cancelOrder (order['id'], symbol)
44
- console.log (cancel)
45
- } catch (e) {
46
- console.log (e.constructor.name, e.message)
47
- }
48
-
49
- // creating and canceling an inverse swap (limit) order
50
- symbol = 'ADA/USD:ADA'
51
- type = 'limit'
52
- side = 'buy'
53
- offset = 'open'
54
- leverage = 1
55
- amount = 1
56
- price = 1 // 1 contract = 10 ADA = 10 usd in this case
57
- params = {
58
- 'offset': offset,
59
- 'lever_rate': leverage,
60
- }
61
-
62
- try {
63
- const order = await exchange.createOrder (symbol, type, side, amount, price, params)
64
- console.log (order)
65
- const cancel = await exchange.cancelOrder (order['id'], symbol)
66
- console.log (cancel)
67
- } catch (e) {
68
- console.log (e.constructor.name, e.message)
69
- }
70
- }) ()
@@ -1,98 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- import ololog from 'ololog'
3
-
4
- const log = ololog.configure .unlimited.handleNodeErrors (),
5
- { NotSupported } = ccxt,
6
- enableRateLimit = true,
7
- symbol = 'ADA/BTC',
8
- side = 'buy',
9
- // set createMarketBuyOrderRequiresPrice to true or false to see the difference
10
- type = 'market',
11
- // default is true
12
- createMarketBuyOrderRequiresPrice = true,
13
- amount = 191.03,
14
- price = 0.000011,
15
- options = { createMarketBuyOrderRequiresPrice },
16
- exchange = new ccxt.huobipro ({ enableRateLimit, options });
17
-
18
- // This is an example that demonstrates the issues discussed here:
19
- // https://github.com/ccxt/ccxt/issues/564
20
- // https://github.com/ccxt/ccxt/issues/3427
21
- // https://github.com/ccxt/ccxt/issues/3460
22
- // https://github.com/ccxt/ccxt/issues/4799
23
-
24
- log.green ('CCXT', ccxt.version)
25
-
26
- ;(async () => {
27
-
28
- // preload them first
29
- await exchange.loadMarkets ()
30
-
31
- // huobipro has this
32
- if (!exchange.has['fetchTradingLimits']) {
33
- throw new NotSupported (exchange.id + ' does not have fetchTradingLimits() yet, make sure your version of CCXT is up to date');
34
- }
35
-
36
- // In this particular case it requires an array of symbols
37
- // otherwise it will load all of them one by one.
38
- // Loading all limits without specifying
39
- // the array of symbols might take a lot of time.
40
-
41
- // The array of symbols will contain just one symbol of interest.
42
- const arrayOfSymbols = [ symbol ]
43
-
44
- const allLimits = await exchange.fetchTradingLimits (arrayOfSymbols)
45
-
46
- // { 'ADA/BTC': { info: { symbol: "adabtc",
47
- // 'buy-limit-must-less-than': 1.1,
48
- // 'sell-limit-must-greater-than': 0.9,
49
- // 'limit-order-must-greater-than': 0.1,
50
- // 'limit-order-must-less-than': 5000000,
51
- // 'market-buy-order-must-greater-than': 0.0001,
52
- // 'market-buy-order-must-less-than': 100,
53
- // 'market-sell-order-must-greater-than': 0.1,
54
- // 'market-sell-order-must-less-than': 500000,
55
- // 'limit-order-before-open-greater-than': 999999999,
56
- // 'limit-order-before-open-less-than': 0,
57
- // 'circuit-break-when-greater-than': 10000,
58
- // 'circuit-break-when-less-than': 10,
59
- // 'market-sell-order-rate-must-less-than': 0.1,
60
- // 'market-buy-order-rate-must-less-than': 0.1 },
61
- // limits: { amount: { min: 0.1, max: 5000000 } } } }
62
-
63
- const limits = allLimits[symbol]
64
- log.yellow (symbol, 'limits:')
65
- log.yellow (limits)
66
-
67
- // To make things a bit more complicated huobipro specifies
68
- // different minimums for market and limit orders
69
- // and different minimums for buy/sell directions
70
- // therefore we have to work with it in an exchange-specific way
71
- // using the 'info' field from the response – that is
72
- // until this aspect is completely unified in ccxt.
73
-
74
- const info = limits['info']
75
- const typeSide = type + '-' + side
76
-
77
- const min = info[typeSide + '-order-must-greater-than']
78
- const max = info[typeSide + '-order-must-less-than']
79
-
80
- // huobipro requires the amount in quote currency for market sell orders
81
- // huobipro requires the cost in quote currency for market buy orders
82
- // cost = amount * price
83
-
84
- const cost = createMarketBuyOrderRequiresPrice ? (amount * price) : amount
85
-
86
- let color = 'red'
87
-
88
- if ((min !== undefined) && (cost < min)) {
89
- log[color] ('The cost is below minimum:', cost, '<', min)
90
- } else if ((max !== undefined) && (cost > max)) {
91
- log[color] ('The cost is above maximum:', cost, '>', max)
92
- } else {
93
- color = 'green'
94
- }
95
-
96
- log[color] ({ min, max, cost })
97
-
98
- }) ()
@@ -1,19 +0,0 @@
1
-
2
- const ccxt = require('ccxt');
3
-
4
- console.log('--------------------------------------------')
5
- console.log('Yey importing ccxt as a cjs module!!!!!')
6
- console.log('Version:', ccxt.version)
7
- console.log('--------------------------------------------')
8
-
9
- const exchange = new ccxt.huobi ({
10
- 'apiKey': 'YOUR_API_KEY',
11
- 'secret': 'YOUR_SECRET_KEY',
12
- 'options': {
13
- 'defaultType': 'swap',
14
- },
15
- })
16
- ;(async () => {
17
- const result = await exchange.fetchBalance();
18
- console.log(result)
19
- }) ()
@@ -1,19 +0,0 @@
1
- import {version, huobi} from 'ccxt';
2
-
3
- console.log('--------------------------------------------')
4
- console.log('Yey importing ccxt as an ESM module!!!!!')
5
- console.log('Version:', version)
6
- console.log('--------------------------------------------')
7
-
8
- const exchange = new huobi ({
9
- 'apiKey': 'YOUR_API_KEY',
10
- 'secret': 'YOUR_SECRET_KEY',
11
- 'options': {
12
- 'defaultType': 'swap',
13
- },
14
- })
15
-
16
- ;(async () => {
17
- const result = await exchange.fetchBalance();
18
- console.log(result)
19
- }) ()
@@ -1,13 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- const idex = ccxt.idex ({
4
- 'apiKey': 'YOUR_IDEX_API_KEY',
5
- 'secret': 'YOUR_IDEX_SECRET',
6
- 'walletAddress': '0xYOUR_ETHEREUM_WALLET_ADDRESS',
7
- 'privateKey': '0xYOUR_ETHEREUM_PRIVATE_KEY',
8
- 'verbose': 0,
9
- })
10
-
11
- ;(async () => {
12
- console.log (await idex.fetchBalance ())
13
- }) ()
@@ -1,46 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- async function test () {
6
-
7
- let exchanges = {
8
- "bittrex": {
9
- "apiKey": "YOUR_API_KEY",
10
- "secret": "YOUR_SECRET",
11
- },
12
- "bitfinex": {
13
- "apiKey": "YOUR_API_KEY",
14
- "secret": "YOUR_SECRET"
15
- },
16
- }
17
-
18
- let ids = ccxt.exchanges.filter (id => id in exchanges)
19
-
20
- await Promise.all (ids.map (async id => {
21
-
22
- console.log (exchanges[id])
23
-
24
- // instantiate the exchange
25
- let exchange = new ccxt[id] (exchanges[id])
26
- console.log (exchange.id, exchange.apiKey)
27
- exchanges[id] = exchange
28
-
29
- // load markets
30
- await exchange.loadMarkets ()
31
- console.log (exchange.id, 'loaded')
32
-
33
- // check the balance
34
- if (exchange.apiKey) {
35
- let balance = await exchange.fetchBalance ()
36
- console.log (exchange.id, balance)
37
- }
38
-
39
- return exchange
40
- }))
41
-
42
- // when all of them are ready, do your other things
43
- console.log ('Loaded exchanges:', ids.join (', '))
44
- }
45
-
46
- test ()
@@ -1,31 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import settings from './credentials.json';
5
-
6
- async function test () {
7
-
8
- const ids = ccxt.exchanges.filter (id => id in settings)
9
-
10
- const exchanges = ccxt.indexBy (await Promise.all (ids.map (async id => {
11
-
12
- // instantiate the exchange
13
- let exchange = new ccxt[id] (settings[id])
14
-
15
- // load markets
16
- await exchange.loadMarkets ()
17
-
18
- // check the balance
19
- if (exchange.apiKey) {
20
- let balance = await exchange.fetchBalance ()
21
- console.log (exchange.id, balance['free'])
22
- }
23
-
24
- return exchange
25
- })), 'id')
26
-
27
- // when all of them are ready, do your other things
28
- console.log ('Loaded exchanges:', Object.keys (exchanges).join (', '))
29
- }
30
-
31
- test ()
@@ -1,54 +0,0 @@
1
- // @ts-nocheck
2
- import ccxt from '../../js/ccxt.js';
3
- // AUTO-TRANSPILE //
4
- console.log('CCXT Version:', ccxt.version);
5
- // ------------------------------------------------------------------------------
6
- async function example() {
7
- const exchange = new ccxt.kraken({
8
- "apiKey": "YOUR_API_KEY",
9
- "secret": "YOUR_API_SECRET",
10
- });
11
- const symbol = 'UNI/USD';
12
- let side = 'buy'; // set it to 'buy' for a long position, 'sell' for a short position
13
- const order_type = 'market'; // set it to 'market' or 'limit'
14
- const amount = 1;
15
- const leverage = 2;
16
- await exchange.loadMarkets();
17
- const market = exchange.market(symbol);
18
- // if order_type is 'market', then price is not needed
19
- let price = undefined;
20
- // if order_type is 'limit', then set a price at your desired level
21
- // you can fetch the ticker and update price
22
- // const ticker = await exchange.fetchTicker (symbol);
23
- // const last_price = ticker['last'];
24
- // const ask_price = ticker['ask'];
25
- // const bid_price = ticker['bid'];
26
- // if (order_type === 'limit') {
27
- // price = (side === 'buy') ? bid_price * 0.95 : ask_price * 1.05; // i.e. 5% from current price
28
- // }
29
- const params = {
30
- 'leverage': leverage,
31
- };
32
- // log
33
- console.log('Going to open a position', 'for', amount, 'worth', amount, market['base'], '~', market['settle'], 'using', side, order_type, 'order (', (order_type === 'limit' ? exchange.priceToPrecision(symbol, price) : ''), '), using the following params:');
34
- console.log(params);
35
- console.log('-----------------------------------------------------------------------');
36
- // exchange.verbose = True // uncomment for debugging purposes if necessary
37
- try {
38
- const created_order = await exchange.createOrder(symbol, order_type, side, amount, price, params);
39
- console.log("Created an order", created_order);
40
- // Fetch all your closed orders for this symbol (because we used market order)
41
- // - use 'fetchClosedOrders' or 'fetchOrders' and filter with 'closed' status
42
- const all_closed_orders = await exchange.fetchClosedOrders(symbol);
43
- console.log("Fetched all your closed orders for this symbol", all_closed_orders);
44
- const all_open_positions = await exchange.fetchPositions(symbol);
45
- console.log("Fetched all your positions for this symbol", all_open_positions);
46
- // To close a position:
47
- // - long position (buy), you can create a sell order: exchange.createOrder (symbol, order_type, 'sell', amount, price, params);
48
- // - short position (sell), you can create a buy order: exchange.createOrder (symbol, order_type, 'buy', amount, price, params);
49
- }
50
- catch (e) {
51
- console.log(e.toString());
52
- }
53
- }
54
- await example();
@@ -1,33 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- (async () => {
4
-
5
- const exchange = new ccxt.kraken ({
6
- 'apiKey': 'YOUR_API_KEY',
7
- 'secret': 'YOUR_SECRET',
8
- // 'verbose': true,
9
- })
10
-
11
- const orders = await exchange.fetchClosedOrders ();
12
-
13
- for (let i = 0; i < orders.length; i++) {
14
- const order = await exchange.fetchOrder (orders[i]['id']);
15
- const trades = await exchange.fetchOrderTrades (order['id'], undefined, undefined, undefined, order);
16
- console.log (trades);
17
- }
18
-
19
- //
20
- // alternatively:
21
- //
22
- // const params = {
23
- // 'trades': [
24
- // 'TT5UC3-GOIRW-6AZZ6R',
25
- // 'TIY6G4-LKLAI-Y3GD4A',
26
- // 'T57FVC-OB4LN-Z55WUL',
27
- // 'TIMIRG-WUNNE-RRJ6GT',
28
- // ]
29
- // }
30
- //
31
- // const trades = await exchange.fetchOrderTrades (order['id'], undefined, undefined, undefined, params);
32
-
33
- }) ()
@@ -1,89 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- async function main () {
8
-
9
- const exchange = new ccxt.kraken ({
10
- "apiKey": "YOUR_API_KEY",
11
- "secret": "YOUR_SECRET",
12
- })
13
-
14
- console.log ('-----------------------------------------------------------')
15
-
16
- console.log ('Loading markets...')
17
- const markets = await exchange.loadMarkets ()
18
- console.log ('Markets loaded')
19
-
20
- // exchange.verbose = true // uncomment for debugging purposes
21
-
22
- try {
23
-
24
- const symbol = 'ETH/USDT'
25
- , market = exchange.market (symbol)
26
- , { base, quote } = market
27
- , type = 'market'
28
- , amount = market['limits']['amount']['min']
29
- , price = undefined
30
- , params = {
31
- 'leverage': 2,
32
- }
33
-
34
- console.log ('-----------------------------------------------------------')
35
-
36
- // https://www.kraken.com/en-us/features/api#add-standard-order
37
-
38
- console.log ('Placing order...')
39
- let order = await exchange.createOrder (symbol, type, 'buy', amount, price, params)
40
- console.log ('Order placed:')
41
- console.log (order)
42
-
43
- console.log ('-----------------------------------------------------------')
44
-
45
- // https://www.kraken.com/en-us/features/api#get-open-positions
46
-
47
- console.log ('Fetching open positions...')
48
- const positionsParams = { 'docalcs': true }
49
- let openPositions = await exchange.fetchPositions (positionsParams)
50
- console.log ('Current positions:')
51
- console.log (openPositions)
52
-
53
- console.log ('-----------------------------------------------------------')
54
-
55
- console.log ('Fetching balance...')
56
- let balance = await exchange.fetchTotalBalance ()
57
- console.log ('Fetched balance:')
58
- console.log (base, balance[base], '(base)')
59
- console.log (quote, balance[quote], '(quote)')
60
-
61
- console.log ('-----------------------------------------------------------')
62
-
63
- console.log ('Closing the position...')
64
- order = await exchange.createOrder (symbol, type, 'sell', amount, price, params)
65
- console.log ('Got a response:')
66
- console.log (order)
67
-
68
- console.log ('-----------------------------------------------------------')
69
-
70
- console.log ('Fetching open positions again...')
71
- openPositions = await exchange.fetchPositions (positionsParams)
72
- console.log ('Current positions:')
73
- console.log (openPositions)
74
-
75
- console.log ('-----------------------------------------------------------')
76
-
77
- console.log ('Fetching balance...')
78
- balance = await exchange.fetchTotalBalance ()
79
- console.log ('Fetched balance:')
80
- console.log (base, balance[base], '(base)')
81
- console.log (quote, balance[quote], '(quote)')
82
-
83
- } catch (e) {
84
-
85
- console.log (e.constructor.name, e.message)
86
- }
87
- }
88
-
89
- main ()
@@ -1,38 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- async function main () {
6
-
7
- const exchange = new ccxt.kucoin()
8
- const markets = await exchange.loadMarkets ()
9
- const timeframe = '5m'
10
- const symbol = 'BTC/USDT'
11
- const since = undefined
12
- const limit = 1000
13
-
14
- let i = 0
15
- while (true) {
16
- try {
17
- const ohlcvs = await exchange.fetchOHLCV(symbol, timeframe, since, limit)
18
- const now = exchange.milliseconds()
19
- const datetime = exchange.iso8601(now)
20
- console.log(datetime, i, 'fetched', ohlcvs.length, symbol, timeframe, 'candles',
21
- 'from', exchange.iso8601(ohlcvs[0][0]),
22
- 'to', exchange.iso8601(ohlcvs[ohlcvs.length-1][0]))
23
- } catch (e) {
24
- if (e instanceof ccxt.RateLimitExceeded) {
25
- const now = exchange.milliseconds()
26
- const datetime = exchange.iso8601(now)
27
- console.log(datetime, i, e.constructor.name, e.message)
28
- await exchange.sleep(10000)
29
- } else {
30
- console.log(e.constructor.name, e.message)
31
- throw e
32
- }
33
- }
34
- i += 1
35
- }
36
- }
37
-
38
- main ()
@@ -1,108 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import ololog from 'ololog';
5
- import asTable from 'as-table';
6
-
7
-
8
- const table = asTable.configure ({ delimiter: ' | ' }),
9
- //-----------------------------------------------------------------------------
10
- log = ololog.unlimited.noLocate.handleNodeErrors ();(async function main () {
11
-
12
- const symbol = 'BTC/USDT'
13
-
14
- const exchange = new ccxt.latoken ({
15
- 'verbose': process.argv.includes ('--verbose'),
16
- // uncomment and change for your keys to enable private calls
17
- // 'apiKey': 'YOUR_API_KEY',
18
- // 'secret': 'YOUR_API_SECRET',
19
- })
20
-
21
- await exchange.loadMarkets ()
22
-
23
- log ('-------------------------------------------------------------------')
24
-
25
- log (exchange.id, 'has', exchange.has)
26
-
27
- // public API
28
-
29
- log ('-------------------------------------------------------------------')
30
-
31
- const markets = Object.values (exchange.markets)
32
- log ('Loaded', markets.length, exchange.id, 'markets:')
33
- log (table (markets.map (x => exchange.omit (x, [ 'info', 'limits', 'precision' ]))))
34
-
35
- log ('-------------------------------------------------------------------')
36
-
37
- const currencies = Object.values (exchange.currencies)
38
- log ('Loaded', currencies.length, exchange.id, 'currencies:')
39
- log (table (currencies.map (x => exchange.omit (x, [ 'info', 'limits' ]))))
40
-
41
- log ('-------------------------------------------------------------------')
42
-
43
- const time = await exchange.fetchTime ()
44
- log ('Exchange time:', exchange.iso8601 (time))
45
-
46
- log ('-------------------------------------------------------------------')
47
-
48
- const ticker = await exchange.fetchTicker (symbol)
49
- log (ticker)
50
-
51
- log ('-------------------------------------------------------------------')
52
-
53
- const tickers = await exchange.fetchTickers ()
54
- log (table (Object.values (tickers).map (x =>
55
- exchange.omit (x, [ 'info', 'bid', 'ask', 'bidVolume', 'askVolume', 'timestamp' ]))))
56
-
57
- log ('-------------------------------------------------------------------')
58
-
59
- const orderbook = await exchange.fetchOrderBook (symbol)
60
- log (orderbook)
61
-
62
- log ('-------------------------------------------------------------------')
63
-
64
- const trades = await exchange.fetchTrades (symbol)
65
- log (table (trades.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
66
-
67
- log ('-------------------------------------------------------------------')
68
-
69
- // private API
70
-
71
- if (exchange.checkRequiredCredentials (false)) {
72
-
73
- const balance = await exchange.fetchBalance ()
74
- log (exchange.omit (balance, [ 'info' ]))
75
-
76
- log ('-------------------------------------------------------------------')
77
-
78
- const order = await exchange.createOrder (symbol, 'limit', 'buy', 0.001, 10000)
79
- log (order)
80
-
81
- log ('-------------------------------------------------------------------')
82
-
83
- const openOrders = await exchange.fetchOpenOrders (symbol)
84
- log (table (openOrders.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
85
-
86
- log ('-------------------------------------------------------------------')
87
-
88
- const canceled = await exchange.cancelOrder (order['id'], order['symbol'])
89
- log (canceled)
90
-
91
- log ('-------------------------------------------------------------------')
92
-
93
- const closedOrders = await exchange.fetchClosedOrders (symbol)
94
- log (table (closedOrders.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
95
-
96
- log ('-------------------------------------------------------------------')
97
-
98
- const canceledOrders = await exchange.fetchCanceledOrders (symbol)
99
- log (table (canceledOrders.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
100
-
101
- log ('-------------------------------------------------------------------')
102
-
103
- const myTrades = await exchange.fetchMyTrades (symbol)
104
- log (table (myTrades.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
105
-
106
- }
107
-
108
- }) ()