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,6 +0,0 @@
1
- m2r2==0.2.7
2
- # mistune should remain on 0.8.4 for now
3
- # https://github.com/CrossNox/m2r2/issues/47
4
- mistune==0.8.4
5
- sphinx-rtd-theme==0.5.2
6
- readthedocs-sphinx-search==0.3.2
@@ -1,51 +0,0 @@
1
- <!DOCTYPE HTML>
2
- <html>
3
- <head>
4
- <title>CCXT Basic example for the browser</title>
5
- <script type="text/javascript" src="https://unpkg.com/ccxt"></script>
6
- <script>
7
-
8
- document.addEventListener ("DOMContentLoaded", function () {
9
-
10
- const pollTickerContinuously = async function (exchange, symbol) {
11
-
12
- while (true) {
13
-
14
- try {
15
-
16
- const ticker = await exchange.watchTicker (symbol)
17
-
18
- const text = [
19
- exchange.id,
20
- symbol,
21
- JSON.stringify (ticker, undefined, '\n\t')
22
- ]
23
-
24
- document.getElementById ('content').innerHTML = text.join (' ');
25
-
26
- } catch (e) {
27
-
28
- const text = [
29
- e.constructor.name,
30
- e.message,
31
- ]
32
-
33
- document.getElementById ('content').innerHTML = text.join (' ');
34
-
35
- }
36
- }
37
- }
38
-
39
- const exchange = new ccxt.pro.binance ({ enableRateLimit: true })
40
- const symbol = 'ETH/BTC'
41
-
42
- pollTickerContinuously (exchange, symbol)
43
- })
44
- </script>
45
- </head>
46
- <body>
47
- <h1>Hello, CCXT!</h1>
48
- <p>This example uses websockets to watch changes in price of ETH/BTC</p>
49
- <pre id="content"></pre>
50
- </body>
51
- </html>
@@ -1,55 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt')
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- // This example will run silent and will return your balance only when the balance is updated.
8
- //
9
- // 1. launch the example with your keys and keep it running
10
- // 2. go to the trading section on the website
11
- // 3. place a order on a spot market
12
- // 4. see your balance updated in the example
13
- //
14
- // Warning! This example might produce a lot of output to your screen
15
-
16
-
17
- async function watchBalance (exchange) {
18
- let balance = await exchange.fetchBalance ()
19
- console.log ('---------------------------------------------------------')
20
- console.log (exchange.iso8601 (exchange.milliseconds ()))
21
- console.log (balance, '\n')
22
- while (true) {
23
- try {
24
- const update = await exchange.watchBalance ()
25
- balance = exchange.deep_extend (balance, update)
26
- // it will print the balance update when the balance changes
27
- // if the balance remains unchanged the exchange will not send it
28
- console.log ('---------------------------------------------------------')
29
- console.log (exchange.iso8601 (exchange.milliseconds ()))
30
- console.log (balance, '\n')
31
- } catch (e) {
32
- console.log (e.constructor.name, e.message)
33
- break
34
- }
35
- }
36
- }
37
-
38
-
39
- async function main() {
40
-
41
- const exchange = new ccxt.pro.binance ({
42
- 'apiKey': 'YOUR_API_KEY',
43
- 'secret': 'YOUR_SECRET',
44
- })
45
-
46
- await exchange.loadMarkets ()
47
-
48
- // exchange.verbose = true // uncomment for debugging purposes if necessary
49
-
50
- await watchBalance (exchange)
51
-
52
- await exchange.close ()
53
- }
54
-
55
- main ()
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt')
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- let HttpsProxyAgent = undefined
8
-
9
- try {
10
- HttpsProxyAgent = require ('https-proxy-agent')
11
- } catch (e) {
12
- console.log (e.constructor.name, e.message)
13
- console.log ("\nCould not load the HTTPS proxy agent")
14
- console.log ("\nPlease, run this command to make sure it's properly installed:")
15
- console.log ("\nnpm install https-proxy-agent\n")
16
- process.exit ()
17
- }
18
-
19
- async function main () {
20
-
21
- console.log ('Using proxy server', httpsProxyUrl);
22
-
23
- // adjust for your HTTPS proxy URL
24
- const httpsProxyUrl = process.env.https_proxy || 'https://username:password@your-proxy.com'
25
- , httpsAgent = new HttpsProxyAgent (httpsProxyUrl)
26
- , exchange = new ccxt.binance ({
27
- httpsAgent: httpsAgent, // ←--------------------- httpsAgent here
28
- options: {
29
- 'ws': {
30
- 'options': { agent: httpsAgent }, // ←--- httpsAgent here
31
- },
32
- },
33
- })
34
-
35
- const symbol = 'BTC/USDT'
36
- await exchange.loadMarkets ()
37
- console.log ('Markets loaded')
38
- while (true) {
39
- try {
40
- const orderbook = await exchange.watchOrderBook (symbol)
41
- console.log (exchange.iso8601 (exchange.milliseconds()), symbol, orderbook['asks'][0], orderbook['bids'][0])
42
- } catch (e) {
43
- console.log (e.constructor.name, e.message)
44
- }
45
- }
46
- }
47
-
48
- main ()
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- const ccxt = require ('ccxt')
4
-
5
- const ohlcvsBySymbol = {}
6
-
7
- function handleAllOHLCVs (exchange, ohlcvs, symbol, timeframe) {
8
- const now = exchange.iso8601 (exchange.milliseconds ())
9
- const lastCandle = exchange.safeValue (ohlcvs, ohlcvs.length - 1)
10
- const datetime = exchange.iso8601 (lastCandle[0])
11
- console.log (now, datetime, symbol, timeframe, lastCandle.slice (1))
12
- }
13
-
14
- async function pollOHLCV (exchange, symbol, timeframe) {
15
- await exchange.throttle (1000) // 1000ms delay between subscriptions
16
- while (true) {
17
- try {
18
- const response = await exchange.watchOHLCV (symbol, timeframe)
19
- ohlcvsBySymbol[symbol] = response
20
- handleAllOHLCVs(exchange, response, symbol, timeframe)
21
- } catch (e) {
22
- console.log (e.constructor.name, e.message)
23
- }
24
- }
25
- }
26
-
27
- async function main () {
28
-
29
- const exchange = new ccxt.pro.binance()
30
- const markets = await exchange.loadMarkets ()
31
- const timeframe = '5m'
32
-
33
- const firstOneHundredSymbols = exchange.symbols.slice (0, 100)
34
-
35
- await Promise.all (firstOneHundredSymbols.map (symbol => pollOHLCV (exchange, symbol, timeframe)))
36
- }
37
-
38
- main ()
@@ -1,64 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt');
4
-
5
- // your version must be 0.7+
6
- console.log ('CCXT Version:', ccxt.version)
7
-
8
- function handle (exchange, symbol, timeframe, candles) {
9
- const lastCandle = candles[candles.length - 1]
10
- const lastClosingPrice = lastCandle[4]
11
- console.log (new Date (), exchange.id, timeframe, symbol, '\t', lastClosingPrice)
12
- }
13
-
14
- async function loop (exchange, symbol, timeframe) {
15
- while (true) {
16
- try {
17
- const candles = await exchange.watchOHLCV (symbol, timeframe)
18
- handle (exchange, symbol, timeframe, candles)
19
- } catch (e) {
20
- console.log (symbol, e)
21
- // do nothing and retry on next loop iteration
22
- // throw e // uncomment to break all loops in case of an error in any one of them
23
- // break // you can also break just this one loop if it fails
24
- }
25
- }
26
- }
27
-
28
- async function main () {
29
-
30
- const exchange = new ccxt.pro.binanceusdm () // usd(s)-margined contracts
31
- //
32
- // or
33
- //
34
- // const exchange = new ccxt.pro.binance () // spot markets
35
- //
36
- // WARNING: when using the spot markets mind subscription limits!
37
- // don't attempt to subscribe to all of them
38
- // the exchanges will not allow that in general
39
- // instead, specify a shorter list of symbols to subscribe to
40
- //
41
- // or
42
- //
43
- // const exchange = new ccxt.pro.binancecoinm () // coin-margined contracts
44
-
45
- if (exchange.has['watchOHLCV']) {
46
- await exchange.loadMarkets ()
47
- const timeframe = '15m'
48
- // many symbols
49
- await Promise.all (exchange.symbols.map (symbol => loop (exchange, symbol, timeframe)))
50
- //
51
- // or
52
- //
53
- // const symbols = [ 'BTC/USDT', 'ETH/USDT' ] // specific symbols
54
- // await Promise.all (symbols.map (symbol => loop (exchange, symbol, timeframe)))
55
- //
56
- // or
57
- //
58
- // await loop (exchange, 'BTC/USDT', timeframe) // one symbol
59
- } else {
60
- console.log (exchange.id, 'does not support watchOHLCV yet')
61
- }
62
- }
63
-
64
- main ()
@@ -1,62 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt');
4
-
5
- // your version must be 0.7+
6
- console.log ('CCXT Version:', ccxt.version)
7
-
8
- function handle (exchange, symbol, ticker) {
9
- console.log (new Date (), exchange.id, symbol, ticker['last'])
10
- }
11
-
12
- async function loop (exchange, symbol) {
13
- while (true) {
14
- try {
15
- const ticker = await exchange.watchTicker (symbol)
16
- handle (exchange, symbol, ticker)
17
- } catch (e) {
18
- console.log (symbol, e)
19
- // do nothing and retry on next loop iteration
20
- // throw e // uncomment to break all loops in case of an error in any one of them
21
- // break // you can also break just this one loop if it fails
22
- }
23
- }
24
- }
25
-
26
- async function main () {
27
-
28
- const exchange = new ccxt.pro.binanceusdm () // usd(s)-margined contracts
29
- //
30
- // or
31
- //
32
- // const exchange = new ccxt.pro.binance () // spot markets
33
- //
34
- // WARNING: when using the spot markets mind subscription limits!
35
- // don't attempt to subscribe to all of them
36
- // the exchanges will not allow that in general
37
- // instead, specify a shorter list of symbols to subscribe to
38
- //
39
- // or
40
- //
41
- // const exchange = new ccxt.pro.binancecoinm () // coin-margined contracts
42
-
43
- if (exchange.has['watchTicker']) {
44
- await exchange.loadMarkets ()
45
- // many symbols
46
- await Promise.all (exchange.symbols.map (symbol => loop (exchange, symbol)))
47
- //
48
- // or
49
- //
50
- // const symbols = [ 'BTC/USDT', 'ETH/USDT' ] // specific symbols
51
- // await Promise.all (symbols.map (symbol => loop (exchange, symbol)))
52
- //
53
- // or
54
- //
55
- // await loop (exchange, 'BTC/USDT') // one symbol
56
-
57
- } else {
58
- console.log (exchange.id, 'does not support watchTicker yet')
59
- }
60
- }
61
-
62
- main ()
@@ -1,68 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('ccxt');
4
- const asTable = require ('as-table').configure ({ delimiter: ' | ' })
5
-
6
- console.log ('CCXT Version:', ccxt.version)
7
-
8
-
9
- async function loop (exchange, symbol, timeframe, completeCandlesOnly = false) {
10
- const durationInSeconds = exchange.parseTimeframe (timeframe)
11
- const durationInMs = durationInSeconds * 1000
12
- while (true) {
13
- try {
14
- const trades = await exchange.watchTrades (symbol)
15
- if (trades.length > 0) {
16
- const currentMinute = parseInt (exchange.milliseconds () / durationInMs)
17
- let ohlcvc = exchange.buildOHLCVC (trades, timeframe)
18
- if (completeCandlesOnly) {
19
- ohlcvc = ohlcvc.filter (candle => parseInt (candle[0] / durationInMs) < currentMinute)
20
- }
21
- if (ohlcvc.length > 0) {
22
- console.log("Symbol:", symbol, "timeframe:", timeframe);
23
- console.log ('-----------------------------------------------------------')
24
- console.log (asTable (ohlcvc))
25
- console.log ('-----------------------------------------------------------')
26
- }
27
- }
28
- } catch (e) {
29
- console.log (symbol, e)
30
- // do nothing and retry on next loop iteration
31
- // throw e // uncomment to break all loops in case of an error in any one of them
32
- // break // you can also break just this one loop if it fails
33
- }
34
- }
35
- }
36
-
37
- async function main () {
38
- // select the exchange
39
- const exchange = new ccxt.pro.ftx ()
40
-
41
- if (exchange.has['watchTrades']) {
42
- await exchange.loadMarkets ()
43
- // Change this value accordingly
44
- const timeframe = '1m'
45
-
46
- const allSymbols = exchange.symbols;
47
-
48
- // arbitrary n symbols
49
- const limit = 5;
50
- // const selectedSymbols = allSymbols.slice(0, limit);
51
- // you can also specify the symbols manually
52
- // example:
53
- // const selectedSymbols = ['BTC/USDT', 'LTC/USDT']
54
-
55
- console.log(selectedSymbols);
56
-
57
- // Use this variable to choose if only complete candles
58
- // should be considered
59
- const completeCandlesOnly = true
60
-
61
- await Promise.all (selectedSymbols.map (symbol => loop (exchange, symbol, timeframe, completeCandlesOnly)))
62
-
63
- } else {
64
- console.log (exchange.id, 'does not support watchTrades yet')
65
- }
66
- }
67
-
68
- main ()
@@ -1,82 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- let ohlcvs = {}
8
-
9
- async function log (exchange, symbol, timeframe) {
10
- const market = exchange.market (symbol)
11
- const duration = exchange.parseTimeframe (timeframe) * 1000
12
- console.log (exchange.iso8601 (exchange.milliseconds ()), 'Warming up, waiting for at least one trade...')
13
- while (!Object.keys (ohlcvs).length) {
14
- await exchange.throttle (1)
15
- }
16
- let now = exchange.milliseconds ()
17
- const start = (parseInt (now / duration) + 1) * duration
18
- console.log (exchange.iso8601 (exchange.milliseconds ()), 'Trades started arriving, waiting till', exchange.iso8601 (start))
19
- await exchange.sleep (start - now)
20
- console.log (exchange.iso8601 (exchange.milliseconds ()), 'Done warming up')
21
- for (let i = 0;; i++) {
22
- now = exchange.milliseconds ()
23
- let candle = Object.values (ohlcvs)[0]
24
- console.log ('')
25
- console.log (exchange.iso8601 (now), '------------------------------------------------------')
26
- console.log ('Datetime ', 'Timestamp ', ... [ 'Open', 'High', 'Low', 'Close', market['base'], market['quote'] ].map (x => x.toString ().padEnd (10, ' ')))
27
- for (let j = start; j < now; j += duration) {
28
- if (!(j in ohlcvs)) {
29
- ohlcvs[j] = [ j, candle[4], candle[4], candle[4], candle[4], 0, 0 ]
30
- }
31
- candle = exchange.safeValue (ohlcvs, j);
32
- console.log (exchange.iso8601 (j), ... candle.map (x => x.toString ().padEnd (10, ' ')))
33
- }
34
- ohlcvs = exchange.indexBy (Object.values (ohlcvs).slice (-1000), 0)
35
- await exchange.sleep(1000)
36
- }
37
- }
38
-
39
- async function watch (exchange, symbol, timeframe) {
40
- console.log ('Starting', exchange.id, symbol)
41
- const duration = exchange.parseTimeframe (timeframe) * 1000
42
- while (true) {
43
- try {
44
- const trades = await exchange.watchTrades(symbol)
45
- for (const trade of trades) {
46
- const timestamp = parseInt(trade['timestamp'] / duration) * duration
47
- let candle = exchange.safe_value(ohlcvs, timestamp)
48
- if (candle) {
49
- candle[2] = Math.max(trade['price'], candle[2])
50
- candle[3] = Math.min(trade['price'], candle[3])
51
- candle[4] = trade['price']
52
- candle[5] = exchange.parseNumber(exchange.amountToPrecision(symbol, trade['amount'] + candle[5]))
53
- candle[6] = exchange.parseNumber(exchange.costToPrecision(symbol, trade['cost'] + candle[6]))
54
- } else {
55
- candle = [
56
- timestamp,
57
- trade['price'],
58
- trade['price'],
59
- trade['price'],
60
- trade['price'],
61
- exchange.parseNumber(exchange.amountToPrecision(symbol, trade['amount'])),
62
- exchange.parseNumber(exchange.costToPrecision(symbol, trade['cost'])),
63
- ]
64
- }
65
- ohlcvs[timestamp] = candle
66
- }
67
- } catch (e) {
68
- console.log (e.constructor.name, e.message)
69
- }
70
- }
71
- }
72
-
73
- async function main() {
74
- const symbol = 'BTC/USDT'
75
- const exchange = new ccxt.pro.binance ({ 'newUpdates': true })
76
- await exchange.loadMarkets ()
77
- const timeframe = '1m'
78
- await Promise.all ([ watch (exchange, symbol, timeframe), log (exchange, symbol, timeframe) ])
79
- await exchange.close ()
80
- }
81
-
82
- main()
@@ -1,59 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../../ccxt');
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
-
8
- async function main() {
9
- let ohlcvs = {}
10
- const symbol = 'BTC/USDT'
11
- const exchange = new ccxt.pro.binance ({ 'newUpdates': true })
12
- await exchange.loadMarkets ()
13
- const market = exchange.market (symbol)
14
- const timeframe = '1m'
15
- const duration = exchange.parseTimeframe (timeframe) * 1000
16
- console.log ('Starting', exchange.id, symbol)
17
- while (true) {
18
- try {
19
- const trades = await exchange.watchTrades(symbol)
20
- for (const trade of trades) {
21
- const timestamp = parseInt(trade['timestamp'] / duration) * duration
22
- let candle = exchange.safe_value(ohlcvs, timestamp)
23
- if (candle) {
24
- candle[2] = Math.max(trade['price'], candle[2])
25
- candle[3] = Math.min(trade['price'], candle[3])
26
- candle[4] = trade['price']
27
- candle[5] = exchange.parseNumber(exchange.amountToPrecision(symbol, trade['amount'] + candle[5]))
28
- candle[6] = exchange.parseNumber(exchange.costToPrecision(symbol, trade['cost'] + candle[6]))
29
- } else {
30
- candle = [
31
- timestamp,
32
- trade['price'],
33
- trade['price'],
34
- trade['price'],
35
- trade['price'],
36
- exchange.parseNumber(exchange.amountToPrecision(symbol, trade['amount'])),
37
- exchange.parseNumber(exchange.costToPrecision(symbol, trade['cost'])),
38
- ]
39
- }
40
- ohlcvs[timestamp] = candle
41
- }
42
- console.log ('')
43
- console.log (exchange.iso8601 (exchange.milliseconds ()), '------------------------------------------------------')
44
- const values = Object.values (ohlcvs).slice (-1000)
45
- ohlcvs = exchange.indexBy (values, 0)
46
- console.log ('Datetime ', 'Timestamp ', ... [ 'Open', 'High', 'Low', 'Close', market['base'], market['quote'] ].map (x => x.toString ().padEnd (10, ' ')))
47
- for (let i = 0; i < values.length; i++) {
48
- const candle = values[i]
49
- console.log (exchange.iso8601 (candle[0]), ... candle.map (x => x.toString ().padEnd (10, ' ')))
50
- }
51
-
52
- } catch (e) {
53
- console.log (e.constructor.name, e.message)
54
- }
55
- }
56
- await exchange.close ()
57
- }
58
-
59
- main()
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- /* ------------------------------------------------------------------------ */
4
-
5
- const ccxt = require ('../../../ccxt.js').pro
6
- , asTable = require ('as-table') // .configure ({ print: require ('string.ify').noPretty })
7
- , log = require ('ololog').noLocate
8
- , ansi = require ('ansicolor').nice
9
-
10
- ;(async function test () {
11
-
12
- let total = 0
13
- let missing = 0
14
- let implemented = 0
15
- let emulated = 0
16
-
17
- const exchanges = ccxt.exchanges
18
- .map (id => new ccxt[id]())
19
- .filter (exchange => exchange.has.ws)
20
-
21
- log (
22
- asTable (
23
- exchanges
24
- .map (exchange => {
25
-
26
- let result = {};
27
-
28
- [
29
- 'ws',
30
- 'watchOrderBook',
31
- 'watchTicker',
32
- 'watchTrades',
33
- 'watchOHLCV',
34
- 'watchBalance',
35
- 'watchOrders',
36
- 'watchMyTrades',
37
-
38
- ].forEach (key => {
39
-
40
- total += 1
41
-
42
- let capability = (key in exchange.has) ?
43
- exchange.has[key].toString () :
44
- 'undefined'
45
-
46
- if (!exchange.has[key]) {
47
- capability = exchange.id.red.dim
48
- missing += 1
49
- } else if (exchange.has[key] === 'emulated') {
50
- capability = exchange.id.yellow
51
- emulated += 1
52
- } else {
53
- capability = exchange.id.green
54
- implemented += 1
55
- }
56
-
57
- result[key] = capability
58
- })
59
-
60
- return result
61
- })
62
- )
63
- )
64
-
65
- log ('Summary:',
66
- exchanges.length.toString ().green, 'exchanges,',
67
- implemented.toString ().green, 'methods implemented,',
68
- emulated.toString ().yellow, 'emulated,',
69
- missing.toString ().red, 'missing,',
70
- total.toString (), 'total')
71
-
72
- }) ()
@@ -1,46 +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
- let run = true
10
-
11
- async function watchOrderBook (exchange, symbol) {
12
- while (run) {
13
- try {
14
- const orderbook = await exchange.watchOrderBook (symbol)
15
- orderbooks[symbol] = orderbook
16
- console.log (exchange.iso8601 (exchange.milliseconds ()), orderbook['datetime'], orderbook['nonce'], symbol, orderbook['asks'][0], orderbook['bids'][0])
17
- } catch (e) {
18
- console.log (e.constructor.name, e.message)
19
- }
20
- }
21
- }
22
-
23
-
24
- async function stop (exchange) {
25
- await exchange.sleep (10000)
26
- run = false
27
- await exchange.close ()
28
- }
29
-
30
-
31
- async function main () {
32
- const exchange = new ccxt.pro.binance ()
33
- await exchange.loadMarkets ()
34
- exchange.verbose = true
35
- const symbols = [
36
- 'BTC/USDT',
37
- 'ETH/USDT',
38
- ]
39
- stop (exchange).then (() => {})
40
- await Promise.all (symbols.map (symbol => watchOrderBook (exchange, symbol)))
41
- console.log ('Sleeping for a moment...')
42
- await exchange.sleep (10000)
43
- console.log ('Done')
44
- }
45
-
46
- main ()