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,22 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- async function test () {
6
-
7
- const exchange = new ccxt.okex ()
8
- await exchange.loadMarkets ()
9
-
10
- for (let symbol in exchange.markets) {
11
-
12
- const market = exchange.markets[symbol]
13
-
14
- if (market['future']) {
15
- console.log ('----------------------------------------------------')
16
- console.log (symbol, await exchange.fetchTicker (symbol))
17
- await ccxt.sleep (exchange.rateLimit)
18
- }
19
- }
20
- }
21
-
22
- test ()
@@ -1,27 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import asTable from 'as-table';
5
- import log from 'ololog';
6
- import ansicolor from 'ansicolor';
7
-
8
-
9
- ansicolor.nice
10
-
11
- const exchange = new ccxt.bittrex ({
12
- apiKey: "YOUR_API_KEY",
13
- secret: "YOUR_SECRET",
14
- })
15
-
16
- async function test () {
17
-
18
- const orders = await exchange.fetchOrders ()
19
-
20
- log (asTable (orders.map (order => ccxt.omit (order, [ 'timestamp', 'info' ]))))
21
-
22
- const order = await exchange.fetchOrder (orders[0]['id'])
23
-
24
- log (order)
25
- }
26
-
27
- test ()
@@ -1,35 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- (async () => {
5
-
6
- const exchanges = [
7
- 'bittrex',
8
- 'poloniex',
9
- ]
10
-
11
- const symbol = 'BTC/USDT'
12
- const tickers = {}
13
-
14
- await Promise.all (exchanges.map (exchangeId =>
15
-
16
- new Promise (async (resolve, reject) => {
17
-
18
- const exchange = new ccxt[exchangeId] ()
19
-
20
- while (true) {
21
-
22
- const ticker = await exchange.fetchTicker (symbol)
23
- tickers[exchangeId] = ticker
24
-
25
- Object.keys (tickers).map (exchangeId => {
26
- const ticker = tickers[exchangeId]
27
- console.log (ticker['datetime'], exchangeId, ticker['bid'], ticker['ask'])
28
- })
29
- }
30
-
31
- })
32
-
33
- ))
34
-
35
- }) ()
@@ -1,75 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import asTable from 'as-table';
5
- import log from 'ololog';
6
- import ansicolor from 'ansicolor';
7
-
8
-
9
- ansicolor.nice
10
-
11
- let printUsage = function () {
12
- log ('Usage: node', process.argv[1], 'symbol'.green)
13
- }
14
-
15
- ;(async function main () {
16
-
17
- if (process.argv.length > 2) {
18
-
19
- let symbol = process.argv[2].toUpperCase ()
20
-
21
- for (let i = 0; i < ccxt.exchanges.length; i++) {
22
-
23
- let id = ccxt.exchanges[i]
24
-
25
- const exchange = new ccxt[id] ()
26
- if (exchange.has.fetchTicker) {
27
-
28
- try {
29
-
30
- await exchange.loadMarkets ()
31
-
32
- if (exchange.symbols.includes (symbol)) {
33
-
34
- log (id.green)
35
-
36
- const ticker = await exchange.fetchTicker (symbol)
37
-
38
- log.dim (ticker)
39
-
40
- if (ticker['baseVolume'] && ticker['quoteVolume']) {
41
-
42
- if (ticker['bid'] > 1) {
43
-
44
- if (ticker['baseVolume'] > ticker['quoteVolume'])
45
- log (id.bright, 'baseVolume > quoteVolume ← !'.bright)
46
-
47
- } else {
48
-
49
- if (ticker['baseVolume'] < ticker['quoteVolume'])
50
- log (id.bright, 'baseVolume < quoteVolume ← !'.bright)
51
-
52
- }
53
-
54
- }
55
-
56
- } else {
57
-
58
- log (id.yellow)
59
- }
60
-
61
- } catch (e) {
62
-
63
- log.error (id.red, e.toString ().red)
64
- }
65
- }
66
- }
67
-
68
- } else {
69
-
70
- printUsage ()
71
- }
72
-
73
- process.exit ()
74
-
75
- }) ()
@@ -1,19 +0,0 @@
1
- "use strict";
2
- // Example code in typescript
3
- // Based on /examples/js/fetch-from-many-exchanges-simultaneously.js
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- const ccxt = require("ccxt");
6
- const log = require('ololog');
7
- const symbol = 'BTC/USD';
8
- const exchanges = ['coinbasepro', 'gemini', 'kraken'];
9
- const fetchTickers = async (symbol) => {
10
- const result = await Promise.all(exchanges.map(async (id) => {
11
- const CCXT = ccxt; // Hack!
12
- const exchange = new CCXT[id]({ 'enableRateLimit': true });
13
- const ticker = await exchange.fetchTicker(symbol);
14
- const exchangeExtended = exchange.extend({ 'exchange': id }, ticker);
15
- return exchangeExtended;
16
- }));
17
- log(result);
18
- };
19
- fetchTickers(symbol);
@@ -1,5 +0,0 @@
1
- "use strict";
2
- module.exports = {
3
- singleQuote: true,
4
- trailingComma: 'es5',
5
- };
@@ -1,17 +0,0 @@
1
- // Example code in typescript
2
- // Based on /examples/js/fetch-from-many-exchanges-simultaneously.js
3
- import * as ccxt from 'ccxt';
4
- const log = require('ololog');
5
- const symbol = 'BTC/USD';
6
- const exchanges = ['coinbasepro', 'gemini', 'kraken'];
7
- const fetchTickers = async (symbol) => {
8
- const result = await Promise.all(exchanges.map(async (id) => {
9
- const CCXT = ccxt; // Hack!
10
- const exchange = new CCXT[id]({ 'enableRateLimit': true });
11
- const ticker = await exchange.fetchTicker(symbol);
12
- const exchangeExtended = exchange.extend({ 'exchange': id }, ticker);
13
- return exchangeExtended;
14
- }));
15
- log(result);
16
- };
17
- fetchTickers(symbol);
@@ -1,43 +0,0 @@
1
- const ccxt = require ('../../ccxt');
2
-
3
- console.log ('CCXT Version:', ccxt.version);
4
-
5
- async function main () {
6
-
7
- const exchange = new ccxt.gateio ({
8
- 'apiKey': 'YOUR_API_KEY',
9
- 'secret': 'YOUR_API_SECRET',
10
- });
11
- await exchange.loadMarkets ();
12
-
13
- const ada = exchange.market ('ADA/USDT');
14
- const xrp = exchange.market ('XRP/USDT');
15
-
16
- const orders = await exchange.privateSpotPostBatchOrders (
17
- [
18
- {
19
- text: "t-123456",
20
- currency_pair: ada['id'],
21
- type: "limit",
22
- account: "spot",
23
- side: "buy",
24
- amount: "3",
25
- price: "0.4",
26
- },
27
- {
28
- text: "t-123456",
29
- currency_pair: xrp['id'],
30
- type: "limit",
31
- account: "spot",
32
- side: "buy",
33
- amount: "3",
34
- price: "0.47",
35
- },
36
- ]
37
- );
38
-
39
- console.log (orders);
40
-
41
- };
42
-
43
- main ();
@@ -1,49 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
-
4
- const exchange = new ccxt.gateio ({
5
- 'apiKey': 'YOUR_API_KEY',
6
- 'secret': 'YOUR_SECRET_KEY',
7
- 'options': {
8
- 'defaultType': 'future',
9
- },
10
- })
11
-
12
- ;(async () => {
13
- // exchange.setSandboxMode (true)
14
-
15
- const markets = await exchange.loadMarkets ()
16
-
17
- // exchange.verbose = true // uncomment for debugging purposes if necessary
18
-
19
- // Example 1: Creating a future (market) order
20
- try {
21
-
22
- // find a future
23
- const futures = []
24
- for (const [key, market] of Object.entries(markets)) {
25
- if (market['future']) {
26
- futures.push(market);
27
- }
28
- }
29
- if (futures.length > 0) {
30
- const market = futures[0];
31
- const symbol = market['symbol'] // example: BTC/USDT:USDT-220318
32
- const type = 'market'
33
- const side = 'buy'
34
- const amount = 1
35
-
36
- // placing an order
37
- const order = await exchange.createOrder (symbol, type, side, amount)
38
- console.log (order)
39
-
40
- // fetching open orders
41
- const openOrders = await exchange.fetchOpenOrders(symbol)
42
- console.log(openOrders)
43
- }
44
-
45
- } catch (e) {
46
- console.log (e.constructor.name, e.message)
47
- }
48
-
49
- }) ()
@@ -1,49 +0,0 @@
1
- const ccxt = require ('../../ccxt');
2
-
3
-
4
- const exchange = new ccxt.gateio ({
5
- 'apiKey': 'YOUR_API_KEY',
6
- 'secret': 'YOUR_SECRET',
7
- 'options': {
8
- 'defaultType': 'swap',
9
- 'marginMode': 'cross'
10
- },
11
- })
12
-
13
-
14
- ;(async () => {
15
-
16
- // exchange.setSandboxMode (true)
17
-
18
- const markets = await exchange.loadMarkets ()
19
-
20
- // exchange.verbose = true // uncomment for debugging purposes if necessary
21
-
22
- // Example: creating and closing a contract
23
- let symbol = 'LTC/USDT:USDT'
24
- let type = 'market'
25
- let side = 'buy'
26
- let amount = 1
27
- let price = undefined
28
-
29
- try {
30
- // fetching current balance
31
- const balance = await exchange.fetchBalance()
32
- console.log(balance)
33
-
34
- // placing an order / opening contract position
35
- const order = await exchange.createOrder (symbol, type, side, amount, price)
36
- console.log (order)
37
-
38
- // closing it by issuing an oposite contract
39
- // and therefore close our previous position
40
- side = 'sell'
41
- type = 'market'
42
- reduce_only = true
43
- params = {'reduce_only': reduce_only}
44
- const opositeOrder = await exchange.createOrder (symbol, type, side, amount, price, params)
45
- console.log (opositeOrder)
46
- } catch (e) {
47
- console.log (e.constructor.name, e.message)
48
- }
49
- }) ()
@@ -1,74 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- const exchange = new ccxt.gateio ({
4
- 'apiKey': 'YOUR_API_KEY',
5
- 'secret': 'YOUR_SECRET_KEY',
6
- 'options': {
7
- 'defaultType': 'swap',
8
- },
9
- })
10
-
11
- ;(async () => {
12
- // exchange.setSandboxMode (true)
13
-
14
- const markets = await exchange.loadMarkets ()
15
-
16
- exchange.verbose = true // uncomment for debugging purposes if necessary
17
-
18
- // Example 1: Creating and canceling a linear swap (limit) order
19
- try {
20
- const symbol = 'LTC/USDT:USDT'
21
- const type = 'limit'
22
- const side = 'buy'
23
- const amount = 1
24
- const price = 55
25
-
26
- // placing an order
27
- const order = await exchange.createOrder (symbol, type, side, amount, price)
28
- console.log (order)
29
-
30
- // fetching open orders
31
- const openOrders = await exchange.fetchOpenOrders(symbol)
32
- console.log(openOrders)
33
-
34
- // canceling an order
35
- const cancel = await exchange.cancelOrder (order['id'], symbol)
36
- console.log (cancel)
37
- } catch (e) {
38
- console.log (e.constructor.name, e.message)
39
- }
40
-
41
- // Example 2: Creating and canceling a linear swap (stop-limit) order with leverage
42
- try {
43
- const symbol = 'LTC/USDT:USDT'
44
- const type = 'limit'
45
- const side = 'buy'
46
- const amount = 1
47
- const price = 55
48
-
49
- const stopPrice = 130
50
- const params = {
51
- 'stopPrice': stopPrice,
52
- }
53
- //set leverage
54
- const leverage = await exchange.setLeverage(3, symbol);
55
- console.log(leverage)
56
-
57
- // placing an order
58
- const order = await exchange.createOrder (symbol, type, side, amount, price, params)
59
- console.log (order)
60
-
61
- // canceling an order
62
- const cancelParams = {
63
- isStop: true,
64
- };
65
- const cancel = await exchange.cancelOrder (order['id'], symbol, cancelParams)
66
- console.log (cancel)
67
-
68
- //reset leverage
69
- exchange.setLeverage(1, symbol);
70
- } catch (e) {
71
- console.log (e.constructor.name, e.message)
72
- }
73
-
74
- }) ()
@@ -1,29 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- import ololog from 'ololog';
3
-
4
- const { noLocate } = ololog;
5
- const log = noLocate;
6
-
7
- const exchange = new ccxt.coinbasepro ()
8
-
9
- ;(async () => {
10
-
11
- const symbol = 'ETH/BTC'
12
- const params = {}
13
- await exchange.loadMarkets ()
14
- while (true) {
15
- const trades = await exchange.fetchTrades (symbol, undefined, undefined, params)
16
- if (trades.length) {
17
- const firstTrade = trades[0]
18
- const lastTrade = trades[trades.length - 1]
19
- log.yellow ('Fetched', trades.length, symbol, 'trades from', firstTrade['datetime'], 'to', lastTrade['datetime'])
20
- if ('Cb-After' in exchange.last_response_headers) {
21
- params['after'] = exchange.last_response_headers['Cb-After'];
22
- }
23
- } else {
24
- log.green ('Done.')
25
- break;
26
- }
27
- }
28
-
29
- }) ()
@@ -1,61 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import asTable from 'as-table';
5
- import ololog from 'ololog';
6
- const log = ololog.configure ({ locate: false })
7
-
8
- require ('ansicolor').nice
9
-
10
- const getPositiveAccounts = function (balance) {
11
- const result = {}
12
- Object.keys (balance)
13
- .filter (currency => balance[currency] && (balance[currency] > 0))
14
- .forEach (currency => {
15
- result[currency] = balance[currency]
16
- })
17
- return result
18
- }
19
-
20
- ;(async () => {
21
-
22
- // instantiate the exchange
23
- let exchange = new ccxt.hitbtc2 ({
24
- "apiKey": "YOUR_API_KEY",
25
- "secret": "YOUR_SECRET",
26
- })
27
-
28
- try {
29
-
30
- let tradingBalance = await exchange.fetchBalance ()
31
- let accountBalance = await exchange.fetchBalance ({ type: 'account' })
32
-
33
- log.cyan ('Trading balance:', getPositiveAccounts (tradingBalance.total))
34
- log.magenta ('Account balance:', getPositiveAccounts (accountBalance.total))
35
-
36
- // withdraw
37
- let withdraw = await exchange.withdraw ('ETH', 0.01, '0x811DCfeb6dC0b9ed825808B6B060Ca469b83fB81')
38
-
39
- // output the result
40
- log (exchange.name.green, 'withdraw', withdraw)
41
-
42
- } catch (e) {
43
-
44
- if (e instanceof ccxt.DDoSProtection || e.message.includes ('ECONNRESET')) {
45
- log.bright.yellow ('[DDoS Protection] ' + e.message)
46
- } else if (e instanceof ccxt.RequestTimeout) {
47
- log.bright.yellow ('[Request Timeout] ' + e.message)
48
- } else if (e instanceof ccxt.AuthenticationError) {
49
- log.bright.yellow ('[Authentication Error] ' + e.message)
50
- } else if (e instanceof ccxt.ExchangeNotAvailable) {
51
- log.bright.yellow ('[Exchange Not Available Error] ' + e.message)
52
- } else if (e instanceof ccxt.ExchangeError) {
53
- log.bright.yellow ('[Exchange Error] ' + e.message)
54
- } else if (e instanceof ccxt.NetworkError) {
55
- log.bright.yellow ('[Network Error] ' + e.message)
56
- } else {
57
- throw e
58
- }
59
- }
60
-
61
- }) ()
@@ -1,10 +0,0 @@
1
- import { binance } from '../../js/ccxt.js';
2
- async function example() {
3
- const exchange = new binance({});
4
- const ob = await exchange.fetchOrderBook('BTC/USDT', 3);
5
- const asks = ob['asks'];
6
- const bids = ob['bids'];
7
- console.log(asks);
8
- console.log(bids);
9
- }
10
- example();
@@ -1,71 +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',
6
- 'options': {
7
- 'defaultType': 'future',
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 future (limit) order
17
- let symbol = 'ETH/USDT:USDT-220121' // the last segment is the date of expiration (can be next week, next quarter, ...) adjust it accordingly
18
- let type = 'limit'
19
- let side = 'buy'
20
- let offset= 'open'
21
- let leverage = 1
22
- let amount = 1
23
- let price = 1
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 a inverse future (limit) order
50
- symbol = 'ADA/USD:ADA-220121' // the last segment is the date of expiration (can be next week, next quarter, ...) adjust it accordingly
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
-
71
- }) ()
@@ -1,63 +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',
6
- 'options': {
7
- 'defaultType': 'swap',
8
- 'marginMode': 'cross'
9
- },
10
- })
11
-
12
- ;(async () => {
13
- const markets = await exchange.loadMarkets ()
14
-
15
- // exchange.verbose = true // uncomment for debugging purposes if necessary
16
-
17
- // Example: creating and closing a contract
18
- let symbol = 'ADA/USDT:USDT' // market positions for contracts not available
19
- let type = 'limit'
20
- let side = 'buy'
21
- let offset= 'open'
22
- let leverage = 1
23
- let amount = 1
24
- let price = 1
25
- let clientOrderId = 6;
26
- let params = {
27
- 'offset': offset,
28
- 'lever_rate': leverage,
29
- 'client_order_id': clientOrderId
30
- }
31
-
32
- try {
33
- // fetching current balance
34
- const balance = await exchange.fetchBalance()
35
- console.log(balance)
36
-
37
- // placing an order
38
- const order = await exchange.createOrder (symbol, type, side, amount, price, params)
39
- console.log (order)
40
-
41
- // fetching position
42
- const position = await exchange.fetchPosition(symbol)
43
- console.log(position)
44
-
45
-
46
- // closing it by issuing an oposite contract
47
- // warning: since we can only place limit orders
48
- // it might take a while (depending on the price we choose and market fluctuations)
49
- // to the order be fulfilled
50
- // and therefore close our previous position
51
- side = 'sell'
52
- type = 'limit'
53
- offset = 'close'
54
- reduce_only = 1 // 1 : yes, 0: no
55
- clientOrderId = 9
56
- price = 1.147 // adjust this accordingly
57
- params = {'offset': offset, 'reduce_only': reduce_only, 'client_order_id': clientOrderId}
58
- const opositeOrder = await exchange.createOrder (symbol, type, side, amount, price, params)
59
- console.log (opositeOrder)
60
- } catch (e) {
61
- console.log (e.constructor.name, e.message)
62
- }
63
- }) ()