ccxt 4.2.100 → 4.3.2

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 (330) hide show
  1. package/README.md +6 -5
  2. package/dist/cjs/ccxt.js +1 -1
  3. package/dist/cjs/src/base/Exchange.js +3 -0
  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 +69 -5
  7. package/dist/cjs/src/bybit.js +1 -1
  8. package/dist/cjs/src/coinbase.js +2 -1
  9. package/dist/cjs/src/coinbasepro.js +1 -1
  10. package/dist/cjs/src/coinex.js +164 -206
  11. package/dist/cjs/src/cryptocom.js +5 -5
  12. package/dist/cjs/src/hyperliquid.js +74 -0
  13. package/dist/cjs/src/kraken.js +8 -3
  14. package/dist/cjs/src/kucoin.js +13 -11
  15. package/dist/cjs/src/okx.js +76 -5
  16. package/dist/cjs/src/pro/kraken.js +2 -2
  17. package/dist/cjs/src/woo.js +40 -0
  18. package/js/ccxt.d.ts +1 -1
  19. package/js/ccxt.js +1 -1
  20. package/js/src/base/Exchange.d.ts +2 -1
  21. package/js/src/base/Exchange.js +3 -0
  22. package/js/src/base/types.d.ts +5 -0
  23. package/js/src/binance.d.ts +3 -1
  24. package/js/src/binance.js +56 -0
  25. package/js/src/bingx.js +3 -3
  26. package/js/src/bitget.d.ts +1 -0
  27. package/js/src/bitget.js +69 -5
  28. package/js/src/bybit.js +1 -1
  29. package/js/src/coinbase.js +2 -1
  30. package/js/src/coinbasepro.d.ts +1 -1
  31. package/js/src/coinbasepro.js +1 -1
  32. package/js/src/coinex.js +164 -206
  33. package/js/src/cryptocom.js +5 -5
  34. package/js/src/hyperliquid.d.ts +2 -1
  35. package/js/src/hyperliquid.js +75 -1
  36. package/js/src/kraken.js +8 -3
  37. package/js/src/kucoin.js +13 -11
  38. package/js/src/okx.d.ts +1 -0
  39. package/js/src/okx.js +76 -5
  40. package/js/src/pro/kraken.js +2 -2
  41. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  42. package/js/src/woo.d.ts +1 -0
  43. package/js/src/woo.js +40 -0
  44. package/package.json +2 -1
  45. package/.dockerignore +0 -6
  46. package/.eslintignore +0 -1
  47. package/.git-templates/hooks/pre-push +0 -55
  48. package/.gitattributes +0 -7
  49. package/CHANGELOG.md +0 -6003
  50. package/CODEOWNERS +0 -1
  51. package/CONTRIBUTING.md +0 -1099
  52. package/build.sh +0 -217
  53. package/change.sh +0 -18
  54. package/cleanup.sh +0 -18
  55. package/composer-install.sh +0 -20
  56. package/dist/ccxt.browser.js +0 -327256
  57. package/dist/ccxt.browser.min.js +0 -30
  58. package/dist/ccxt.browser.min.js.LICENSE.txt +0 -12
  59. package/doc/FAQ.rst +0 -1
  60. package/doc/Makefile +0 -20
  61. package/doc/_static/css/dark.css +0 -101
  62. package/doc/_static/css/index.css +0 -128
  63. package/doc/_static/favicon.ico +0 -0
  64. package/doc/_static/javascript/binance-portal.min.js +0 -2369
  65. package/doc/_static/javascript/index.js +0 -195
  66. package/doc/_static/javascript/jquery-ui.min.js +0 -6
  67. package/doc/ccxt.pro.install.rst +0 -1
  68. package/doc/ccxt.pro.manual.rst +0 -1665
  69. package/doc/exchange-markets-by-country.rst +0 -1423
  70. package/doc/exchange-markets.rst +0 -1441
  71. package/doc/index.rst +0 -35
  72. package/doc/install.rst +0 -1
  73. package/doc/make.bat +0 -36
  74. package/doc/manual.rst +0 -7471
  75. package/doc/readme.rst +0 -2191
  76. package/doc/requirements.txt +0 -6
  77. package/examples/ccxt.pro/html/watchTicker.html +0 -51
  78. package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +0 -55
  79. package/examples/ccxt.pro/js/binance-https-proxy.js +0 -48
  80. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +0 -38
  81. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +0 -64
  82. package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +0 -62
  83. package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +0 -68
  84. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +0 -82
  85. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +0 -59
  86. package/examples/ccxt.pro/js/exchange-capabitities.js +0 -72
  87. package/examples/ccxt.pro/js/exchange-close.js +0 -46
  88. package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +0 -30
  89. package/examples/ccxt.pro/js/gateio-watch-balance.js +0 -23
  90. package/examples/ccxt.pro/js/gateio-watch-order-book.js +0 -71
  91. package/examples/ccxt.pro/js/graceful-shutdown.js +0 -43
  92. package/examples/ccxt.pro/js/many-exchanges-many-streams.js +0 -37
  93. package/examples/ccxt.pro/js/okex-create-futures-order.js +0 -48
  94. package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +0 -54
  95. package/examples/ccxt.pro/js/okx-watch-tickers.js +0 -31
  96. package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +0 -46
  97. package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +0 -26
  98. package/examples/ccxt.pro/js/one-exchange-many-streams.js +0 -28
  99. package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +0 -30
  100. package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +0 -40
  101. package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +0 -38
  102. package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +0 -40
  103. package/examples/ccxt.pro/js/watch-many-orderbooks.js +0 -27
  104. package/examples/ccxt.pro/js/watch-new-trades-only.js +0 -43
  105. package/examples/ccxt.pro/js/watch-new-trades.js +0 -42
  106. package/examples/ccxt.pro/js/watch-trades-many-symbols.js +0 -29
  107. package/examples/ccxt.pro/js/watch-vs-fetch.js +0 -29
  108. package/examples/cs/Examples.sln +0 -22
  109. package/examples/cs/c#.csproj +0 -19
  110. package/examples/html/basic-cors-proxy.html +0 -46
  111. package/examples/html/basic-inheritance.html +0 -47
  112. package/examples/html/basic-poller.html +0 -52
  113. package/examples/html/basic-rate-limiting.html +0 -49
  114. package/examples/html/basic.html +0 -43
  115. package/examples/html/binance-cors-proxy.html +0 -28
  116. package/examples/html/bitmex-browser-cors-proxy.js +0 -7
  117. package/examples/html/bitmex-cors.html +0 -46
  118. package/examples/html/tradingview-charts.html +0 -61
  119. package/examples/html/webworker/index.html +0 -97
  120. package/examples/html/webworker/worker.js +0 -43
  121. package/examples/js/advanced-error-handling.js +0 -39
  122. package/examples/js/aggregate-orderbook.js +0 -54
  123. package/examples/js/arbitrage-pairs.js +0 -130
  124. package/examples/js/basic-chart.js +0 -29
  125. package/examples/js/basic-orderbook-polling.js +0 -13
  126. package/examples/js/bcc-vs-bch.js +0 -115
  127. package/examples/js/benchmark.js +0 -104
  128. package/examples/js/binance-fetch-all-deposits.js +0 -45
  129. package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +0 -34
  130. package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +0 -33
  131. package/examples/js/binance-fetchTicker-delivery-vs-future.js +0 -31
  132. package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +0 -41
  133. package/examples/js/binance-margin-stop-order.js +0 -39
  134. package/examples/js/binance-server-time.js +0 -34
  135. package/examples/js/binance-universal-transfer.js +0 -16
  136. package/examples/js/bitfinex-fetch-trades.js +0 -35
  137. package/examples/js/bitfinex2-fetch-trades.js +0 -35
  138. package/examples/js/bitmex-browser-cors-proxy.js +0 -7
  139. package/examples/js/bitpanda-fetchMyTrades-reduce.js +0 -36
  140. package/examples/js/bitrue-fetch-balance.js +0 -28
  141. package/examples/js/bitstamp-private-api.js +0 -115
  142. package/examples/js/bitstamp-public-api.js +0 -39
  143. package/examples/js/bittrex-balance.js +0 -50
  144. package/examples/js/bittrex-fetch-closed-orders-history.js +0 -69
  145. package/examples/js/blockchaincom-withdrawal.js +0 -59
  146. package/examples/js/build-ohlcv-bars.js +0 -48
  147. package/examples/js/builtin-rate-limiting-rest-poller.js +0 -25
  148. package/examples/js/bybit-trailing.js +0 -62
  149. package/examples/js/bybit-updated.cjs +0 -154
  150. package/examples/js/coinbase-fetch-all-balances.js +0 -36
  151. package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +0 -47
  152. package/examples/js/coinex-futures.js +0 -75
  153. package/examples/js/coinone-fetch-tickers.js +0 -54
  154. package/examples/js/coinone-markets.js +0 -16
  155. package/examples/js/compare-two-exchanges-capabilities.js +0 -36
  156. package/examples/js/cors-proxy.js +0 -5
  157. package/examples/js/create-order-handle-errors.js +0 -55
  158. package/examples/js/create-order-position-with-takeprofit-stoploss.js +0 -71
  159. package/examples/js/create-order-with-retry.js +0 -65
  160. package/examples/js/create-order-ws-example.js +0 -25
  161. package/examples/js/create-orders-example.js +0 -17
  162. package/examples/js/create-trailing-amount-order.js +0 -36
  163. package/examples/js/create-trailing-percent-order.js +0 -36
  164. package/examples/js/credentials.json +0 -5
  165. package/examples/js/custom-proxy-agent-for-js.js +0 -10
  166. package/examples/js/custom-proxy-url.js +0 -23
  167. package/examples/js/delta-maintenance-margin-rate-max-leverage.js +0 -60
  168. package/examples/js/env-variables.js +0 -26
  169. package/examples/js/error-handling.js +0 -89
  170. package/examples/js/exchange-capabilities.js +0 -135
  171. package/examples/js/exchanges-by-volume.js +0 -60
  172. package/examples/js/exchanges.js +0 -40
  173. package/examples/js/fetch-all-balances.js +0 -219
  174. package/examples/js/fetch-all-tickers-to-files-2.js +0 -53
  175. package/examples/js/fetch-all-tickers-to-files.js +0 -77
  176. package/examples/js/fetch-balance.js +0 -28
  177. package/examples/js/fetch-create-deposit-address.js +0 -101
  178. package/examples/js/fetch-from-many-exchanges-simultaneously.js +0 -21
  179. package/examples/js/fetch-funding-rate-history.js +0 -25
  180. package/examples/js/fetch-futures/prettier.config.js +0 -5
  181. package/examples/js/fetch-futures/src/index.js +0 -25
  182. package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +0 -72
  183. package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +0 -39
  184. package/examples/js/fetch-ohlcv.js +0 -16
  185. package/examples/js/fetch-okex-futures.js +0 -22
  186. package/examples/js/fetch-orders.js +0 -27
  187. package/examples/js/fetch-ticker-from-multiple-exchanges.js +0 -35
  188. package/examples/js/fetch-ticker-where-available.js +0 -75
  189. package/examples/js/fetch-tickers/build/index.js +0 -19
  190. package/examples/js/fetch-tickers/prettier.config.js +0 -5
  191. package/examples/js/fetch-tickers/src/index.js +0 -17
  192. package/examples/js/gateio-create-batch-order.js +0 -43
  193. package/examples/js/gateio-futures.js +0 -49
  194. package/examples/js/gateio-open-close-contract.js +0 -49
  195. package/examples/js/gateio-swaps.js +0 -74
  196. package/examples/js/gdax-fetch-trades-pagination.js +0 -29
  197. package/examples/js/hitbtc2-withdraw.js +0 -61
  198. package/examples/js/how-to-import-one-exchange-esm.js +0 -10
  199. package/examples/js/huobi-futures.js +0 -71
  200. package/examples/js/huobi-open-close-contract.js +0 -63
  201. package/examples/js/huobi-swaps.js +0 -70
  202. package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +0 -98
  203. package/examples/js/hybridCJSExample.cjs +0 -19
  204. package/examples/js/hybridESMExample.js +0 -19
  205. package/examples/js/idex-fetch-balance.js +0 -13
  206. package/examples/js/instantiate-all-at-once.js +0 -46
  207. package/examples/js/instantiate-all-from-json.js +0 -31
  208. package/examples/js/kraken-create-and-close-position.js +0 -54
  209. package/examples/js/kraken-fetch-order-trades.js +0 -33
  210. package/examples/js/kraken-margin-trading.js +0 -89
  211. package/examples/js/kucoin-rate-limit.js +0 -38
  212. package/examples/js/latoken-example.js +0 -108
  213. package/examples/js/live-orderbook.js +0 -106
  214. package/examples/js/live-ticker.js +0 -80
  215. package/examples/js/live-tickers.js +0 -74
  216. package/examples/js/load-all-contracts.js +0 -41
  217. package/examples/js/load-all-symbols-at-once.js +0 -69
  218. package/examples/js/load-all-tickers-at-once.js +0 -91
  219. package/examples/js/load-markets-to-files.js +0 -57
  220. package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +0 -61
  221. package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +0 -91
  222. package/examples/js/margin-loan-borrow-buy-sell-repay.js +0 -70
  223. package/examples/js/market-status-and-currency-status.js +0 -29
  224. package/examples/js/ohlcv-console-chart.js +0 -29
  225. package/examples/js/okex-fetch-closed-orders-archive.js +0 -31
  226. package/examples/js/okex-transfer.js +0 -51
  227. package/examples/js/okx-poll-fetch-my-trades.js +0 -37
  228. package/examples/js/okx-poll-rate-limit.js +0 -48
  229. package/examples/js/order-book-extra-level-depth-param.js +0 -20
  230. package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +0 -49
  231. package/examples/js/poll-ohlcv.js +0 -43
  232. package/examples/js/poloniex-fetch-order-books.js +0 -35
  233. package/examples/js/poloniex-limits-amount-min.js +0 -62
  234. package/examples/js/proxy-round-robin.js +0 -98
  235. package/examples/js/proxy-usage.js +0 -32
  236. package/examples/js/sample-local-proxy-server-with-cors.js +0 -12
  237. package/examples/js/search-all-exchanges.js +0 -159
  238. package/examples/js/shared-load-markets.js +0 -80
  239. package/examples/js/sort-swap-markets-by-hourly-price-change.js +0 -55
  240. package/examples/js/symbols.js +0 -110
  241. package/examples/js/theocean.js +0 -41
  242. package/examples/js/tickers.js +0 -106
  243. package/examples/js/validate-paginated-data.js +0 -61
  244. package/examples/js/watch-OHLCV-For-Symbols.js +0 -15
  245. package/examples/js/watch-OHLCV.js +0 -12
  246. package/examples/js/watch-OrderBook-For-Symbols.js +0 -11
  247. package/examples/js/watch-Trades-For-Symbols.js +0 -11
  248. package/examples/js/watch-tickers.js +0 -11
  249. package/examples/js/watchOHLCVForSymbols.js +0 -15
  250. package/examples/js/watchOrderBookForSymbols.js +0 -11
  251. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +0 -2
  252. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +0 -1
  253. package/examples/js/watchPositions-many-exchanges-continuosly.js +0 -49
  254. package/examples/js/watchPositions.d.ts +0 -2
  255. package/examples/js/watchPositions.d.ts.map +0 -1
  256. package/examples/js/watchPositions.js +0 -13
  257. package/examples/js/watchPositionsForSymbols.d.ts +0 -2
  258. package/examples/js/watchPositionsForSymbols.d.ts.map +0 -1
  259. package/examples/js/watchPositionsForSymbols.js +0 -14
  260. package/examples/js/watchTradesForSymbols.js +0 -11
  261. package/examples/js/withdraw-from-one-exchange-to-another.js +0 -50
  262. package/examples/php/README.md +0 -7
  263. package/examples/py/README.md +0 -15
  264. package/examples/py/playing_with_ccxt_example.ipynb +0 -222
  265. package/examples/ts/.eslintrc +0 -111
  266. package/examples/ts/benchmark.ts +0 -134
  267. package/examples/ts/build-ohlcv-bars.ts +0 -53
  268. package/examples/ts/cli.ts +0 -397
  269. package/examples/ts/compare-two-exchanges-capabilities.ts +0 -36
  270. package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +0 -89
  271. package/examples/ts/create-order-ws-example.ts +0 -33
  272. package/examples/ts/create-orders-example.ts +0 -21
  273. package/examples/ts/create-trailing-amount-order.ts +0 -37
  274. package/examples/ts/create-trailing-percent-order.ts +0 -37
  275. package/examples/ts/custom-proxy-agent-for-js.ts +0 -14
  276. package/examples/ts/fetch-futures/package-lock.json +0 -116
  277. package/examples/ts/fetch-futures/package.json +0 -34
  278. package/examples/ts/fetch-futures/prettier.config.js +0 -4
  279. package/examples/ts/fetch-futures/src/index.ts +0 -28
  280. package/examples/ts/fetch-futures/tsconfig.json +0 -28
  281. package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +0 -44
  282. package/examples/ts/fetch-ohlcv.ts +0 -17
  283. package/examples/ts/fetch-tickers/package-lock.json +0 -116
  284. package/examples/ts/fetch-tickers/package.json +0 -34
  285. package/examples/ts/fetch-tickers/prettier.config.js +0 -4
  286. package/examples/ts/fetch-tickers/src/index.ts +0 -21
  287. package/examples/ts/fetch-tickers/tsconfig.json +0 -28
  288. package/examples/ts/how-to-import-one-exchange-esm.ts +0 -11
  289. package/examples/ts/kraken-create-and-close-position.ts +0 -69
  290. package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +0 -72
  291. package/examples/ts/nextjs-page-router/.eslintrc.json +0 -3
  292. package/examples/ts/nextjs-page-router/README.md +0 -43
  293. package/examples/ts/nextjs-page-router/next.config.js +0 -6
  294. package/examples/ts/nextjs-page-router/package-lock.json +0 -7425
  295. package/examples/ts/nextjs-page-router/package.json +0 -28
  296. package/examples/ts/nextjs-page-router/postcss.config.js +0 -6
  297. package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
  298. package/examples/ts/nextjs-page-router/src/pages/_app.tsx +0 -6
  299. package/examples/ts/nextjs-page-router/src/pages/_document.tsx +0 -13
  300. package/examples/ts/nextjs-page-router/src/pages/balance.tsx +0 -46
  301. package/examples/ts/nextjs-page-router/src/pages/index.tsx +0 -8
  302. package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +0 -61
  303. package/examples/ts/nextjs-page-router/src/styles/globals.css +0 -27
  304. package/examples/ts/nextjs-page-router/tailwind.config.ts +0 -20
  305. package/examples/ts/nextjs-page-router/tsconfig.json +0 -22
  306. package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +0 -62
  307. package/examples/ts/proxy-usage.ts +0 -41
  308. package/examples/ts/sample-local-proxy-server-with-cors.ts +0 -15
  309. package/examples/ts/watch-OHLCV-For-Symbols.ts +0 -17
  310. package/examples/ts/watch-OHLCV.ts +0 -14
  311. package/examples/ts/watch-OrderBook-For-Symbols.ts +0 -13
  312. package/examples/ts/watch-Trades-For-Symbols.ts +0 -13
  313. package/examples/ts/watch-tickers.ts +0 -13
  314. package/examples/ts/watchPositions-many-exchanges-continuosly.ts +0 -53
  315. package/examples/ts/watchPositions.ts +0 -15
  316. package/examples/ts/watchPositionsForSymbols.ts +0 -16
  317. package/examples/tsconfig.json +0 -27
  318. package/examples2md.js +0 -79
  319. package/gource.sh +0 -3
  320. package/index.html +0 -7
  321. package/jsdoc2md.js +0 -122
  322. package/multilang.sh +0 -164
  323. package/pro-tests.json +0 -57
  324. package/pyproject.toml +0 -8
  325. package/rollup.config.js +0 -60
  326. package/skip-tests.json +0 -1653
  327. package/test-commonjs.cjs +0 -65
  328. package/tests-manager.sh +0 -96
  329. package/tsconfig.json +0 -111
  330. 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
- }) ()