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,30 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt')
4
-
5
- console.log ("CCXT Pro Version:", ccxt.version)
6
-
7
- async function loop (exchange, method, symbol) {
8
- while (true) {
9
- try {
10
- const orderbook = await exchange[method] (symbol)
11
- console.log (exchange.iso8601 (exchange.milliseconds ()), orderbook['datetime'], orderbook['nonce'], symbol, orderbook['asks'][0], orderbook['bids'][0])
12
- } catch (e) {
13
- console.log (e.constructor.name, e.message)
14
- }
15
- }
16
- }
17
-
18
- async function main () {
19
- const exchange = new ccxt.pro.gateio ({
20
- 'options': {'defaultType':'swap'}
21
- })
22
- await exchange.loadMarkets ()
23
- // exchange.verbose = true // uncomment for debugging purposes if necessary
24
- const symbols = [
25
- 'ANC/USDT:USDT',
26
- ]
27
- await Promise.all (symbols.map (symbol => loop (exchange, 'fetchOrderBook', symbol)))
28
- }
29
-
30
- main ()
@@ -1,23 +0,0 @@
1
- const ccxt = require ('../../../ccxt')
2
-
3
- console.log ('CCXT Pro version:', ccxt.version)
4
-
5
- async function main () {
6
- const exchange = new ccxt.pro.gateio ({
7
- 'apiKey': 'YOUR_API_KEY',
8
- 'secret': 'YOUR_SECRET',
9
- })
10
- await exchange.loadMarkets ()
11
- exchange.verbose = true
12
- while (true) {
13
- try {
14
- const response = await exchange.watchBalance ()
15
- console.log (new Date (), response)
16
- } catch (e) {
17
- console.log (e.constructor.name, e.message)
18
- await exchange.sleep (1000)
19
- }
20
- }
21
- }
22
-
23
- main ()
@@ -1,71 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt')
4
-
5
- console.log ("CCXT Pro Version:", ccxt.version)
6
-
7
- const orderbooks = {}
8
-
9
- async function watchAllSymbols (exchange, symbols) {
10
- while (true) {
11
- const keys = Object.keys (orderbooks);
12
- if (symbols.length === keys.length) {
13
- console.log ('\n\n\n\n\n')
14
- console.log ('----------------------------------------------------')
15
- console.log ('All orderbooks received at least one update:');
16
- for (let i = 0; i < symbols.length; i++) {
17
- const symbol = symbols[i]
18
- const orderbook = orderbooks[symbol]
19
- console.log (exchange.iso8601 (exchange.milliseconds ()), orderbook['datetime'], orderbook['nonce'], symbol, orderbook['asks'][0], orderbook['bids'][0])
20
- }
21
- console.log ('----------------------------------------------------')
22
- console.log ('\n\n\n\n\n')
23
- // process.exit () // stop here if you want
24
- break
25
- } else {
26
- await exchange.sleep (1000);
27
- }
28
- }
29
- }
30
-
31
- async function watchOrderBook (exchange, symbol) {
32
- while (true) {
33
- try {
34
- const orderbook = await exchange.watchOrderBook (symbol)
35
- orderbooks[symbol] = orderbook
36
- console.log (exchange.iso8601 (exchange.milliseconds ()), orderbook['datetime'], orderbook['nonce'], symbol, orderbook['asks'][0], orderbook['bids'][0])
37
- } catch (e) {
38
- console.log (e.constructor.name, e.message)
39
- }
40
- }
41
- }
42
-
43
- async function main () {
44
- const exchange = new ccxt.pro.gateio ({
45
- 'options': {
46
- 'defaultType': 'swap',
47
- },
48
- })
49
- await exchange.loadMarkets ()
50
- // exchange.verbose = true // uncomment for debugging purposes if necessary
51
- const symbols = [
52
- // 'SOS/USDT:USDT',
53
- // 'JASMY/USDT:USDT',
54
- // 'SLP/USDT:USDT',
55
- 'ACH/USDT:USDT',
56
- 'MKISHU/USDT:USDT',
57
- // 'GMT/USDT:USDT',
58
- // 'ASTR/USDT:USDT',
59
- 'RAMP/USDT:USDT',
60
- 'RSR/USDT:USDT',
61
- // 'RACA/USDT:USDT',
62
- // 'ROOK/USDT:USDT',
63
- // 'ROSE/USDT:USDT',
64
- ]
65
- await Promise.all ([
66
- watchAllSymbols (exchange, symbols),
67
- ... symbols.map (symbol => watchOrderBook (exchange, symbol))
68
- ])
69
- }
70
-
71
- main ()
@@ -1,43 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- let stop = false
6
-
7
- async function shutdown (milliseconds) {
8
- await ccxt.sleep (10000)
9
- stop = true
10
- }
11
-
12
- async function watchOrderBook (exchangeId, symbol) {
13
-
14
- const exchange = new ccxt.pro[exchangeId] ()
15
- await exchange.loadMarkets ()
16
- // exchange.verbose = true
17
- while (!stop) {
18
- try {
19
- const orderbook = await exchange.watchOrderBook (symbol)
20
- console.log (new Date (), exchange.id, symbol, orderbook['asks'][0], orderbook['bids'][0])
21
- } catch (e) {
22
- console.log (symbol, e)
23
- stop = true
24
- break
25
- }
26
- }
27
- await exchange.close ()
28
- }
29
-
30
- async function main () {
31
- const streams = {
32
- 'binance': 'BTC/USDT',
33
- 'ftx': 'BTC/USDT',
34
- };
35
-
36
- await Promise.all ([
37
- shutdown (10000),
38
- ... Object.entries (streams).map (([ exchangeId, symbol ]) => watchOrderBook (exchangeId, symbol))
39
- ])
40
-
41
- }
42
-
43
- main()
@@ -1,37 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- (async () => {
6
-
7
- const streams = {
8
- 'binance': 'BTC/USDT',
9
- 'bittrex': 'BTC/USDT',
10
- 'poloniex': 'BTC/USDT',
11
- 'bitfinex': 'BTC/USDT',
12
- 'hitbtc': 'BTC/USDT',
13
- 'upbit': 'BTC/USDT',
14
- 'coinbasepro': 'BTC/USD',
15
- 'ftx': 'BTC/USDT',
16
- 'okex': 'BTC/USDT',
17
- 'gateio': 'BTC/USDT',
18
- };
19
-
20
- await Promise.all (Object.keys (streams).map (exchangeId =>
21
-
22
- (async () => {
23
-
24
- const exchange = new ccxt.pro[exchangeId] ({ enableRateLimit: true })
25
- const symbol = streams[exchangeId]
26
- while (true) {
27
- try {
28
- const orderbook = await exchange.watchOrderBook (symbol)
29
- console.log (new Date (), exchange.id, symbol, orderbook['asks'][0], orderbook['bids'][0])
30
- } catch (e) {
31
- console.log (symbol, e)
32
- }
33
- }
34
-
35
- }) ())
36
- )
37
- }) ()
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt')
4
- , exchange = new ccxt.okex ({
5
- apiKey: 'YOUR_API_KEY',
6
- secret: 'YOUR_API_SECRET',
7
- password: 'YOUR_API_PASSWORD',
8
- enableRateLimit: true,
9
- options: { defaultType: 'futures' },
10
- })
11
- , symbol = 'BTC/USDT:USDT-201225'
12
- , amount = 1 // how may contracts
13
- , price = undefined // or your limit price
14
- , side = 'buy' // or 'sell'
15
- , type = '1' // 1 open long, 2 open short, 3 close long, 4 close short for futures
16
- , order_type = '4' // 0 = limit order, 4 = market order
17
-
18
- console.log ('CCXT Pro Version: ', ccxt.version)
19
-
20
- async function main () {
21
-
22
- try {
23
-
24
- await exchange.loadMarkets ()
25
-
26
- // exchange.verbose = true // uncomment for debugging
27
- // open long market price order
28
- const order = await exchange.createOrder(symbol, 'market', side, amount, price, { type });
29
- // --------------------------------------------------------------------
30
- // open long market price order
31
- // const order = await exchange.createOrder(symbol, type, side, amount, price, { order_type });
32
- // --------------------------------------------------------------------
33
- // close short market price order
34
- // const order = await exchange.createOrder(symbol, 'market', side, amount, price, { type, order_type });
35
- // --------------------------------------------------------------------
36
- // close short market price order
37
- // const order = await exchange.createOrder(symbol, '4', side, amount, price, { order_type });
38
- // ...
39
-
40
- console.log (order)
41
-
42
- } catch (e) {
43
-
44
- console.log (e.constructor.name, e.message)
45
- }
46
- }
47
-
48
- main ()
@@ -1,54 +0,0 @@
1
- const ccxt = require ('ccxt')
2
-
3
- console.log ('Node.js:', process.version)
4
- console.log ('CCXT Pro v' + ccxt.version)
5
-
6
- const exchange = new ccxt.pro.okex ({
7
- 'apiKey': 'YOUR_API_KEY',
8
- 'secret': 'YOUR_API_SECRET',
9
- 'password': 'YOUR_API_PASWORD'
10
- })
11
-
12
- async function watchBalance (code) {
13
-
14
- while (true) {
15
- const balance = await exchange.watchBalance ({
16
- 'code': code,
17
- })
18
- console.log ('New', code, 'balance is: ', balance[code])
19
- }
20
- }
21
-
22
- async function createOrder (symbol, type, side, amount, price = undefined, params = {}) {
23
-
24
- console.log ('Creating', symbol, type, 'order')
25
- const order = await exchange.createOrder (symbol, type, side, amount, price, params);
26
- console.log (symbol, type, side, 'order created')
27
- console.log (order)
28
- }
29
-
30
- ;(async () => {
31
-
32
- await exchange.loadMarkets ()
33
- console.log (exchange.id, 'markets loaded')
34
-
35
- const symbol = 'ETH/USDT'
36
- const market = exchange.market (symbol)
37
- const quote = market['quote']
38
-
39
- // run in parallel without await
40
- console.log ('Watching', quote, 'balance')
41
- watchBalance (quote)
42
-
43
- // wait a bit to allow it to subscribe
44
- await exchange.sleep (3000)
45
-
46
- const ticker = await exchange.watchTicker (symbol)
47
- const type = 'market'
48
- const side = 'buy'
49
- const amount = 0.1
50
- const price = ticker['bid']
51
-
52
- await createOrder (symbol, type, side, amount, price)
53
-
54
- }) ()
@@ -1,31 +0,0 @@
1
- import ccxt from '../../../js/ccxt.js';
2
-
3
- async function main() {
4
- const exchange = new ccxt.pro.okx()
5
- await exchange.loadMarkets()
6
- // exchange.verbose = true
7
- while (true) {
8
- try {
9
-
10
- // don't do this, specify a list of symbols to watch for watchTickers
11
- // or a very large subscription message will crash your WS connection
12
- // const tickers = await exchange.watchTickers ()
13
-
14
- // do this instead
15
- const symbols = [
16
- 'ETH/BTC',
17
- 'BTC/USDT',
18
- 'ETH/USDT',
19
- // ...
20
- ]
21
- const tickers = await exchange.watchTickers (symbols)
22
- symbols = Object.keys(tickers)
23
- console.log (new Date(), 'received', symbols.length, 'symbols', ... symbols.slice(0,5).join(', '), '...')
24
- } catch (e) {
25
- console.log (new Date(), e.constructor.name, e.message)
26
- break
27
- }
28
- }
29
- }
30
-
31
- main()
@@ -1,46 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt')
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- async function watchOrders(exchange) {
8
- while (true) {
9
- try {
10
- const orders = await exchange.watchOrders() // await here
11
- console.log(orders)
12
- } catch (e) {
13
- console.log(e)
14
- }
15
- }
16
- }
17
-
18
- async function watchBalance(exchange) {
19
- while (true) {
20
- try {
21
- const balance = await exchange.watchBalance() // await here
22
- console.log(balance)
23
- } catch (e) {
24
- console.log(e)
25
- }
26
- }
27
- }
28
-
29
- async function main() {
30
- const exchange = new ccxt.pro.binance({
31
- 'apiKey': 'YOUR_API_KEY',
32
- 'secret': 'YOUR_SECRET',
33
- 'password': 'IF NECESSARY',
34
- // etc...
35
- })
36
- await exchange.loadMarkets () // await here
37
-
38
- // exchange.verbose = true // uncomment for debugging purposes if necessary
39
-
40
- watchOrders(exchange) // no await
41
- watchBalance(exchange) // no await
42
-
43
- await exchange.close()
44
- }
45
-
46
- main()
@@ -1,26 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt');
4
-
5
- (async () => {
6
-
7
- const exchange = new ccxt.pro.binance ({ enableRateLimit: true })
8
- const symbols = [ 'BTC/USDT', 'ETH/BTC', 'ETH/USDT' ]
9
-
10
- const loop = async (symbol) => {
11
- while (true) {
12
- try {
13
- const orderbook = await exchange.watchOrderBook (symbol)
14
- console.log (new Date (), symbol, orderbook['asks'][0], orderbook['bids'][0])
15
- } catch (e) {
16
- console.log (symbol, e)
17
- // do nothing and retry on next loop iteration
18
- // throw e // uncomment to break all loops in case of an error in any one of them
19
- // break // you can also break just this one loop if it fails
20
- }
21
- }
22
- }
23
-
24
- await Promise.all (symbols.map (symbol => loop (symbol)))
25
-
26
- }) ()
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt');
4
-
5
- (async () => {
6
-
7
- const exchange = new ccxt.pro.binance ({ enableRateLimit: true })
8
- const symbols = [ 'BTC/USDT', 'ETH/BTC', 'ETH/USDT' ]
9
-
10
- await Promise.all (symbols.map (symbol =>
11
-
12
- (async () => {
13
-
14
- while (true) {
15
- try {
16
- const orderbook = await exchange.watchOrderBook (symbol)
17
- console.log (new Date (), symbol, orderbook['asks'][0], orderbook['bids'][0])
18
- } catch (e) {
19
- console.log (symbol, e)
20
- // do nothing and retry on next loop iteration
21
- // throw e // uncomment to break all loops in case of an error in any one of them
22
- // break // you can also break just this one loop if it fails
23
- }
24
- }
25
-
26
- }) ())
27
- )
28
- }) ()
@@ -1,30 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt')
4
- , SocksProxyAgent = require ('socks-proxy-agent')
5
- , socks = 'socks://127.0.0.1:7000'
6
- , socksAgent = new SocksProxyAgent (socks)
7
- , exchange = new ccxt.binance ({
8
- enableRatLimit: true,
9
- httpsAgent: socksAgent, // ←--------------------- socksAgent here
10
- options: {
11
- 'ws': {
12
- 'options': { agent: socksAgent }, // ←--- socksAgent here
13
- },
14
- },
15
- })
16
-
17
- ;(async () => {
18
- console.log (socks)
19
- const symbol = 'BTC/USDT'
20
- await exchange.loadMarkets ()
21
- console.log ('Markets loaded')
22
- while (true) {
23
- try {
24
- const orderbook = await exchange.watchOrderBook (symbol)
25
- console.log (exchange.iso8601 (exchange.milliseconds()), symbol, orderbook['asks'][0], orderbook['bids'][0])
26
- } catch (e) {
27
- console.log (e.constructor.name, e.message)
28
- }
29
- }
30
- }) ()
@@ -1,40 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- async function watchOrderBook (exchange, symbol) {
6
- while (true) {
7
- try {
8
- const method = exchange.has.watchOrderBook ? 'watchOrderBook' : 'fetchOrderBook'
9
- const orderbook = await exchange[method](symbol)
10
- console.log (new Date (), exchange.id, symbol, orderbook['asks'][0], orderbook['bids'][0])
11
- } catch (e) {
12
- console.log (symbol, e)
13
- process.exit ()
14
- }
15
- }
16
- }
17
-
18
- async function watchExchange (exchangeId, symbols) {
19
- const exchange = new ccxt.pro[exchangeId] ()
20
- await exchange.loadMarkets ()
21
- await Promise.all (symbols.map (symbol => watchOrderBook (exchange, symbol)))
22
- }
23
-
24
- async function main () {
25
- const streams = {
26
- 'ftx': [
27
- 'BTC/USDT',
28
- 'ETH/BTC',
29
- ],
30
- 'coinex': [
31
- 'BTC/USDT',
32
- 'ETH/BTC',
33
- ],
34
- };
35
-
36
- const entries = Object.entries (streams)
37
- await Promise.all (entries.map (([ exchangeId, symbols ]) => watchExchange (exchangeId, symbols)))
38
- }
39
-
40
- main()
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- async function watchOrderBook (exchange, symbol) {
6
- while (true) {
7
- try {
8
- const orderbook = await exchange.watchOrderBook (symbol)
9
- console.log (new Date (), exchange.id, symbol, orderbook['asks'][0], orderbook['bids'][0])
10
- } catch (e) {
11
- console.log (symbol, e)
12
- }
13
- }
14
- }
15
-
16
- async function watchExchange (exchangeId, symbols) {
17
- const exchange = new ccxt.pro[exchangeId] ()
18
- await exchange.loadMarkets ()
19
- await Promise.all (symbols.map (symbol => watchOrderBook (exchange, symbol)))
20
- }
21
-
22
- async function main () {
23
- const streams = {
24
- 'binance': [
25
- 'BTC/USDT',
26
- 'ETH/BTC',
27
- ],
28
- 'ftx': [
29
- 'BTC/USDT',
30
- 'ETH/BTC',
31
- ],
32
- };
33
-
34
- const entries = Object.entries (streams)
35
- await Promise.all (entries.map (([ exchangeId, symbols ]) => watchExchange (exchangeId, symbols)))
36
- }
37
-
38
- main()
@@ -1,40 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
-
8
- async function watchTickerLoop (exchange, symbol) {
9
- // exchange.verbose = true // uncomment for debugging purposes if necessary
10
- while (true) {
11
- try {
12
- const ticker = await exchange.watchTicker (symbol)
13
- console.log (new Date (), exchange.id, symbol, ticker['last'])
14
- } catch (e) {
15
- console.log (symbol, e)
16
- // do nothing and retry on next loop iteration
17
- // throw e // uncomment to break all loops in case of an error in any one of them
18
- // break // you can also break just this one loop if it fails
19
- }
20
- }
21
- }
22
-
23
- async function exchangeLoop (exchangeId, symbols) {
24
- const exchange = new ccxt.pro[exchangeId]()
25
- await exchange.loadMarkets ()
26
- const loops = symbols.map (symbol => watchTickerLoop (exchange, symbol))
27
- await Promise.all (loops)
28
- await exchange.close ()
29
- }
30
-
31
- async function main () {
32
- const exchanges = {
33
- 'binance': [ 'BTC/USDT', 'ETH/USDT' ],
34
- 'ftx': [ 'BTC/USD', 'ETH/USD' ],
35
- }
36
- const loops = Object.entries (exchanges).map (([ exchangeId, symbols ]) => exchangeLoop (exchangeId, symbols))
37
- await Promise.all (loops)
38
- }
39
-
40
- main ()
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt');
4
-
5
- async function watchOrderBook (exchangeId, symbol) {
6
-
7
- const exchange = new ccxt.pro[exchangeId] ()
8
- while (true) {
9
- try {
10
- const orderbook = await exchange.watchOrderBook (symbol)
11
- console.log (new Date (), exchange.id, symbol, orderbook['asks'][0], orderbook['bids'][0])
12
- } catch (e) {
13
- console.log (symbol, e)
14
- }
15
- }
16
- }
17
-
18
- async function main () {
19
- const streams = {
20
- 'binance': 'BTC/USDT',
21
- 'ftx': 'BTC/USDT',
22
- };
23
-
24
- await Promise.all (Object.entries (streams).map (([ exchangeId, symbol ]) => watchOrderBook (exchangeId, symbol)))
25
- }
26
-
27
- main()
@@ -1,43 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- console.log ('CCXT Version:', ccxt.version);
6
-
7
- async function watchExchange (exchangeId, symbol) {
8
-
9
- const exchange = new ccxt.pro[exchangeId] ({
10
- newUpdates: true,
11
- })
12
-
13
- await exchange.loadMarkets ();
14
-
15
- // exchange.verbose = true // uncomment for debugging purposes if necessary
16
-
17
- while (true) {
18
- try {
19
- const trades = await exchange.watchTrades (symbol)
20
- for (let i = 0; i < trades.length; i++) {
21
- const trade = trades[i]
22
- console.log (exchange.iso8601 (exchange.milliseconds ()), exchange.id, trade['symbol'], trade['id'], trade['datetime'], trade['price'], trade['amount'])
23
- }
24
- } catch (e) {
25
- console.log (symbol, e)
26
- }
27
- }
28
- }
29
-
30
- async function main () {
31
-
32
- const streams = {
33
- 'binance': 'BTC/USDT',
34
- 'okex': 'BTC/USDT',
35
- 'kraken': 'BTC/USD',
36
- };
37
-
38
- const values = Object.entries (streams)
39
- const promises = values.map (([ exchangeId, symbol ]) => watchExchange (exchangeId, symbol))
40
- await Promise.all (promises)
41
- }
42
-
43
- main ()