ccxt 4.2.99 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/ccxt.js +1 -1
  3. package/dist/cjs/src/ascendex.js +1 -1
  4. package/dist/cjs/src/binance.js +56 -0
  5. package/dist/cjs/src/bingx.js +2 -2
  6. package/dist/cjs/src/bitget.js +64 -2
  7. package/dist/cjs/src/bybit.js +1 -1
  8. package/dist/cjs/src/coinex.js +55 -60
  9. package/dist/cjs/src/kraken.js +8 -3
  10. package/dist/cjs/src/kucoin.js +19 -17
  11. package/dist/cjs/src/okx.js +76 -5
  12. package/dist/cjs/src/pro/kraken.js +2 -2
  13. package/dist/cjs/src/woo.js +40 -0
  14. package/js/ccxt.d.ts +1 -1
  15. package/js/ccxt.js +1 -1
  16. package/js/src/ascendex.js +2 -2
  17. package/js/src/binance.d.ts +3 -1
  18. package/js/src/binance.js +56 -0
  19. package/js/src/bingx.js +3 -3
  20. package/js/src/bitget.d.ts +1 -0
  21. package/js/src/bitget.js +64 -2
  22. package/js/src/bybit.js +1 -1
  23. package/js/src/coinex.js +55 -60
  24. package/js/src/kraken.js +8 -3
  25. package/js/src/kucoin.js +19 -17
  26. package/js/src/okx.d.ts +1 -0
  27. package/js/src/okx.js +76 -5
  28. package/js/src/pro/kraken.js +2 -2
  29. package/js/src/woo.d.ts +1 -0
  30. package/js/src/woo.js +40 -0
  31. package/package.json +2 -1
  32. package/.dockerignore +0 -6
  33. package/.eslintignore +0 -1
  34. package/.git-templates/hooks/pre-push +0 -55
  35. package/.gitattributes +0 -7
  36. package/CHANGELOG.md +0 -6003
  37. package/CODEOWNERS +0 -1
  38. package/CONTRIBUTING.md +0 -1099
  39. package/build.sh +0 -217
  40. package/change.sh +0 -18
  41. package/cleanup.sh +0 -18
  42. package/composer-install.sh +0 -20
  43. package/dist/ccxt.browser.js +0 -327256
  44. package/dist/ccxt.browser.min.js +0 -30
  45. package/dist/ccxt.browser.min.js.LICENSE.txt +0 -12
  46. package/doc/FAQ.rst +0 -1
  47. package/doc/Makefile +0 -20
  48. package/doc/_static/css/dark.css +0 -101
  49. package/doc/_static/css/index.css +0 -128
  50. package/doc/_static/favicon.ico +0 -0
  51. package/doc/_static/javascript/binance-portal.min.js +0 -2369
  52. package/doc/_static/javascript/index.js +0 -195
  53. package/doc/_static/javascript/jquery-ui.min.js +0 -6
  54. package/doc/ccxt.pro.install.rst +0 -1
  55. package/doc/ccxt.pro.manual.rst +0 -1665
  56. package/doc/exchange-markets-by-country.rst +0 -1423
  57. package/doc/exchange-markets.rst +0 -1441
  58. package/doc/index.rst +0 -35
  59. package/doc/install.rst +0 -1
  60. package/doc/make.bat +0 -36
  61. package/doc/manual.rst +0 -7471
  62. package/doc/readme.rst +0 -2191
  63. package/doc/requirements.txt +0 -6
  64. package/examples/ccxt.pro/html/watchTicker.html +0 -51
  65. package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +0 -55
  66. package/examples/ccxt.pro/js/binance-https-proxy.js +0 -48
  67. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +0 -38
  68. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +0 -64
  69. package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +0 -62
  70. package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +0 -68
  71. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +0 -82
  72. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +0 -59
  73. package/examples/ccxt.pro/js/exchange-capabitities.js +0 -72
  74. package/examples/ccxt.pro/js/exchange-close.js +0 -46
  75. package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +0 -30
  76. package/examples/ccxt.pro/js/gateio-watch-balance.js +0 -23
  77. package/examples/ccxt.pro/js/gateio-watch-order-book.js +0 -71
  78. package/examples/ccxt.pro/js/graceful-shutdown.js +0 -43
  79. package/examples/ccxt.pro/js/many-exchanges-many-streams.js +0 -37
  80. package/examples/ccxt.pro/js/okex-create-futures-order.js +0 -48
  81. package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +0 -54
  82. package/examples/ccxt.pro/js/okx-watch-tickers.js +0 -31
  83. package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +0 -46
  84. package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +0 -26
  85. package/examples/ccxt.pro/js/one-exchange-many-streams.js +0 -28
  86. package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +0 -30
  87. package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +0 -40
  88. package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +0 -38
  89. package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +0 -40
  90. package/examples/ccxt.pro/js/watch-many-orderbooks.js +0 -27
  91. package/examples/ccxt.pro/js/watch-new-trades-only.js +0 -43
  92. package/examples/ccxt.pro/js/watch-new-trades.js +0 -42
  93. package/examples/ccxt.pro/js/watch-trades-many-symbols.js +0 -29
  94. package/examples/ccxt.pro/js/watch-vs-fetch.js +0 -29
  95. package/examples/cs/Examples.sln +0 -22
  96. package/examples/cs/c#.csproj +0 -19
  97. package/examples/html/basic-cors-proxy.html +0 -46
  98. package/examples/html/basic-inheritance.html +0 -47
  99. package/examples/html/basic-poller.html +0 -52
  100. package/examples/html/basic-rate-limiting.html +0 -49
  101. package/examples/html/basic.html +0 -43
  102. package/examples/html/binance-cors-proxy.html +0 -28
  103. package/examples/html/bitmex-browser-cors-proxy.js +0 -7
  104. package/examples/html/bitmex-cors.html +0 -46
  105. package/examples/html/tradingview-charts.html +0 -61
  106. package/examples/html/webworker/index.html +0 -97
  107. package/examples/html/webworker/worker.js +0 -43
  108. package/examples/js/advanced-error-handling.js +0 -39
  109. package/examples/js/aggregate-orderbook.js +0 -54
  110. package/examples/js/arbitrage-pairs.js +0 -130
  111. package/examples/js/basic-chart.js +0 -29
  112. package/examples/js/basic-orderbook-polling.js +0 -13
  113. package/examples/js/bcc-vs-bch.js +0 -115
  114. package/examples/js/benchmark.js +0 -104
  115. package/examples/js/binance-fetch-all-deposits.js +0 -45
  116. package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +0 -34
  117. package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +0 -33
  118. package/examples/js/binance-fetchTicker-delivery-vs-future.js +0 -31
  119. package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +0 -41
  120. package/examples/js/binance-margin-stop-order.js +0 -39
  121. package/examples/js/binance-server-time.js +0 -34
  122. package/examples/js/binance-universal-transfer.js +0 -16
  123. package/examples/js/bitfinex-fetch-trades.js +0 -35
  124. package/examples/js/bitfinex2-fetch-trades.js +0 -35
  125. package/examples/js/bitmex-browser-cors-proxy.js +0 -7
  126. package/examples/js/bitpanda-fetchMyTrades-reduce.js +0 -36
  127. package/examples/js/bitrue-fetch-balance.js +0 -28
  128. package/examples/js/bitstamp-private-api.js +0 -115
  129. package/examples/js/bitstamp-public-api.js +0 -39
  130. package/examples/js/bittrex-balance.js +0 -50
  131. package/examples/js/bittrex-fetch-closed-orders-history.js +0 -69
  132. package/examples/js/blockchaincom-withdrawal.js +0 -59
  133. package/examples/js/build-ohlcv-bars.js +0 -48
  134. package/examples/js/builtin-rate-limiting-rest-poller.js +0 -25
  135. package/examples/js/bybit-trailing.js +0 -62
  136. package/examples/js/bybit-updated.cjs +0 -154
  137. package/examples/js/coinbase-fetch-all-balances.js +0 -36
  138. package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +0 -47
  139. package/examples/js/coinex-futures.js +0 -75
  140. package/examples/js/coinone-fetch-tickers.js +0 -54
  141. package/examples/js/coinone-markets.js +0 -16
  142. package/examples/js/compare-two-exchanges-capabilities.js +0 -36
  143. package/examples/js/cors-proxy.js +0 -5
  144. package/examples/js/create-order-handle-errors.js +0 -55
  145. package/examples/js/create-order-position-with-takeprofit-stoploss.js +0 -71
  146. package/examples/js/create-order-with-retry.js +0 -65
  147. package/examples/js/create-order-ws-example.js +0 -25
  148. package/examples/js/create-orders-example.js +0 -17
  149. package/examples/js/create-trailing-amount-order.js +0 -36
  150. package/examples/js/create-trailing-percent-order.js +0 -36
  151. package/examples/js/credentials.json +0 -5
  152. package/examples/js/custom-proxy-agent-for-js.js +0 -10
  153. package/examples/js/custom-proxy-url.js +0 -23
  154. package/examples/js/delta-maintenance-margin-rate-max-leverage.js +0 -60
  155. package/examples/js/env-variables.js +0 -26
  156. package/examples/js/error-handling.js +0 -89
  157. package/examples/js/exchange-capabilities.js +0 -135
  158. package/examples/js/exchanges-by-volume.js +0 -60
  159. package/examples/js/exchanges.js +0 -40
  160. package/examples/js/fetch-all-balances.js +0 -219
  161. package/examples/js/fetch-all-tickers-to-files-2.js +0 -53
  162. package/examples/js/fetch-all-tickers-to-files.js +0 -77
  163. package/examples/js/fetch-balance.js +0 -28
  164. package/examples/js/fetch-create-deposit-address.js +0 -101
  165. package/examples/js/fetch-from-many-exchanges-simultaneously.js +0 -21
  166. package/examples/js/fetch-funding-rate-history.js +0 -25
  167. package/examples/js/fetch-futures/prettier.config.js +0 -5
  168. package/examples/js/fetch-futures/src/index.js +0 -25
  169. package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +0 -72
  170. package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +0 -39
  171. package/examples/js/fetch-ohlcv.js +0 -16
  172. package/examples/js/fetch-okex-futures.js +0 -22
  173. package/examples/js/fetch-orders.js +0 -27
  174. package/examples/js/fetch-ticker-from-multiple-exchanges.js +0 -35
  175. package/examples/js/fetch-ticker-where-available.js +0 -75
  176. package/examples/js/fetch-tickers/build/index.js +0 -19
  177. package/examples/js/fetch-tickers/prettier.config.js +0 -5
  178. package/examples/js/fetch-tickers/src/index.js +0 -17
  179. package/examples/js/gateio-create-batch-order.js +0 -43
  180. package/examples/js/gateio-futures.js +0 -49
  181. package/examples/js/gateio-open-close-contract.js +0 -49
  182. package/examples/js/gateio-swaps.js +0 -74
  183. package/examples/js/gdax-fetch-trades-pagination.js +0 -29
  184. package/examples/js/hitbtc2-withdraw.js +0 -61
  185. package/examples/js/how-to-import-one-exchange-esm.js +0 -10
  186. package/examples/js/huobi-futures.js +0 -71
  187. package/examples/js/huobi-open-close-contract.js +0 -63
  188. package/examples/js/huobi-swaps.js +0 -70
  189. package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +0 -98
  190. package/examples/js/hybridCJSExample.cjs +0 -19
  191. package/examples/js/hybridESMExample.js +0 -19
  192. package/examples/js/idex-fetch-balance.js +0 -13
  193. package/examples/js/instantiate-all-at-once.js +0 -46
  194. package/examples/js/instantiate-all-from-json.js +0 -31
  195. package/examples/js/kraken-create-and-close-position.js +0 -54
  196. package/examples/js/kraken-fetch-order-trades.js +0 -33
  197. package/examples/js/kraken-margin-trading.js +0 -89
  198. package/examples/js/kucoin-rate-limit.js +0 -38
  199. package/examples/js/latoken-example.js +0 -108
  200. package/examples/js/live-orderbook.js +0 -106
  201. package/examples/js/live-ticker.js +0 -80
  202. package/examples/js/live-tickers.js +0 -74
  203. package/examples/js/load-all-contracts.js +0 -41
  204. package/examples/js/load-all-symbols-at-once.js +0 -69
  205. package/examples/js/load-all-tickers-at-once.js +0 -91
  206. package/examples/js/load-markets-to-files.js +0 -57
  207. package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +0 -61
  208. package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +0 -91
  209. package/examples/js/margin-loan-borrow-buy-sell-repay.js +0 -70
  210. package/examples/js/market-status-and-currency-status.js +0 -29
  211. package/examples/js/ohlcv-console-chart.js +0 -29
  212. package/examples/js/okex-fetch-closed-orders-archive.js +0 -31
  213. package/examples/js/okex-transfer.js +0 -51
  214. package/examples/js/okx-poll-fetch-my-trades.js +0 -37
  215. package/examples/js/okx-poll-rate-limit.js +0 -48
  216. package/examples/js/order-book-extra-level-depth-param.js +0 -20
  217. package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +0 -49
  218. package/examples/js/poll-ohlcv.js +0 -43
  219. package/examples/js/poloniex-fetch-order-books.js +0 -35
  220. package/examples/js/poloniex-limits-amount-min.js +0 -62
  221. package/examples/js/proxy-round-robin.js +0 -98
  222. package/examples/js/proxy-usage.js +0 -32
  223. package/examples/js/sample-local-proxy-server-with-cors.js +0 -12
  224. package/examples/js/search-all-exchanges.js +0 -159
  225. package/examples/js/shared-load-markets.js +0 -80
  226. package/examples/js/sort-swap-markets-by-hourly-price-change.js +0 -55
  227. package/examples/js/symbols.js +0 -110
  228. package/examples/js/theocean.js +0 -41
  229. package/examples/js/tickers.js +0 -106
  230. package/examples/js/validate-paginated-data.js +0 -61
  231. package/examples/js/watch-OHLCV-For-Symbols.js +0 -15
  232. package/examples/js/watch-OHLCV.js +0 -12
  233. package/examples/js/watch-OrderBook-For-Symbols.js +0 -11
  234. package/examples/js/watch-Trades-For-Symbols.js +0 -11
  235. package/examples/js/watch-tickers.js +0 -11
  236. package/examples/js/watchOHLCVForSymbols.js +0 -15
  237. package/examples/js/watchOrderBookForSymbols.js +0 -11
  238. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +0 -2
  239. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +0 -1
  240. package/examples/js/watchPositions-many-exchanges-continuosly.js +0 -49
  241. package/examples/js/watchPositions.d.ts +0 -2
  242. package/examples/js/watchPositions.d.ts.map +0 -1
  243. package/examples/js/watchPositions.js +0 -13
  244. package/examples/js/watchPositionsForSymbols.d.ts +0 -2
  245. package/examples/js/watchPositionsForSymbols.d.ts.map +0 -1
  246. package/examples/js/watchPositionsForSymbols.js +0 -14
  247. package/examples/js/watchTradesForSymbols.js +0 -11
  248. package/examples/js/withdraw-from-one-exchange-to-another.js +0 -50
  249. package/examples/php/README.md +0 -7
  250. package/examples/py/README.md +0 -15
  251. package/examples/py/playing_with_ccxt_example.ipynb +0 -222
  252. package/examples/ts/.eslintrc +0 -111
  253. package/examples/ts/benchmark.ts +0 -134
  254. package/examples/ts/build-ohlcv-bars.ts +0 -53
  255. package/examples/ts/cli.ts +0 -397
  256. package/examples/ts/compare-two-exchanges-capabilities.ts +0 -36
  257. package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +0 -89
  258. package/examples/ts/create-order-ws-example.ts +0 -33
  259. package/examples/ts/create-orders-example.ts +0 -21
  260. package/examples/ts/create-trailing-amount-order.ts +0 -37
  261. package/examples/ts/create-trailing-percent-order.ts +0 -37
  262. package/examples/ts/custom-proxy-agent-for-js.ts +0 -14
  263. package/examples/ts/fetch-futures/package-lock.json +0 -116
  264. package/examples/ts/fetch-futures/package.json +0 -34
  265. package/examples/ts/fetch-futures/prettier.config.js +0 -4
  266. package/examples/ts/fetch-futures/src/index.ts +0 -28
  267. package/examples/ts/fetch-futures/tsconfig.json +0 -28
  268. package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +0 -44
  269. package/examples/ts/fetch-ohlcv.ts +0 -17
  270. package/examples/ts/fetch-tickers/package-lock.json +0 -116
  271. package/examples/ts/fetch-tickers/package.json +0 -34
  272. package/examples/ts/fetch-tickers/prettier.config.js +0 -4
  273. package/examples/ts/fetch-tickers/src/index.ts +0 -21
  274. package/examples/ts/fetch-tickers/tsconfig.json +0 -28
  275. package/examples/ts/how-to-import-one-exchange-esm.ts +0 -11
  276. package/examples/ts/kraken-create-and-close-position.ts +0 -69
  277. package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +0 -72
  278. package/examples/ts/nextjs-page-router/.eslintrc.json +0 -3
  279. package/examples/ts/nextjs-page-router/README.md +0 -43
  280. package/examples/ts/nextjs-page-router/next.config.js +0 -6
  281. package/examples/ts/nextjs-page-router/package-lock.json +0 -7425
  282. package/examples/ts/nextjs-page-router/package.json +0 -28
  283. package/examples/ts/nextjs-page-router/postcss.config.js +0 -6
  284. package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
  285. package/examples/ts/nextjs-page-router/src/pages/_app.tsx +0 -6
  286. package/examples/ts/nextjs-page-router/src/pages/_document.tsx +0 -13
  287. package/examples/ts/nextjs-page-router/src/pages/balance.tsx +0 -46
  288. package/examples/ts/nextjs-page-router/src/pages/index.tsx +0 -8
  289. package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +0 -61
  290. package/examples/ts/nextjs-page-router/src/styles/globals.css +0 -27
  291. package/examples/ts/nextjs-page-router/tailwind.config.ts +0 -20
  292. package/examples/ts/nextjs-page-router/tsconfig.json +0 -22
  293. package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +0 -62
  294. package/examples/ts/proxy-usage.ts +0 -41
  295. package/examples/ts/sample-local-proxy-server-with-cors.ts +0 -15
  296. package/examples/ts/watch-OHLCV-For-Symbols.ts +0 -17
  297. package/examples/ts/watch-OHLCV.ts +0 -14
  298. package/examples/ts/watch-OrderBook-For-Symbols.ts +0 -13
  299. package/examples/ts/watch-Trades-For-Symbols.ts +0 -13
  300. package/examples/ts/watch-tickers.ts +0 -13
  301. package/examples/ts/watchPositions-many-exchanges-continuosly.ts +0 -53
  302. package/examples/ts/watchPositions.ts +0 -15
  303. package/examples/ts/watchPositionsForSymbols.ts +0 -16
  304. package/examples/tsconfig.json +0 -27
  305. package/examples2md.js +0 -79
  306. package/gource.sh +0 -3
  307. package/index.html +0 -7
  308. package/jsdoc2md.js +0 -122
  309. package/multilang.sh +0 -164
  310. package/pro-tests.json +0 -57
  311. package/pyproject.toml +0 -8
  312. package/rollup.config.js +0 -60
  313. package/skip-tests.json +0 -1653
  314. package/test-commonjs.cjs +0 -65
  315. package/tests-manager.sh +0 -96
  316. package/tsconfig.json +0 -111
  317. package/webpack.config.js +0 -46
@@ -1,65 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- // ----------------------------------------------------------------------------
6
-
7
- const tryToCreateOrder = async function (exchange, symbol, type, side, amount, price, params) {
8
-
9
- try {
10
-
11
- const order = await exchange.createOrder (symbol, type, side, amount, price, params)
12
- return order
13
-
14
- } catch (e) {
15
-
16
- console.log (e.constructor.name, e.message)
17
-
18
- if (e instanceof ccxt.NetworkError) {
19
-
20
- // retry on networking errors
21
- return false
22
-
23
- } else {
24
-
25
- throw e // break on all other exceptions
26
- }
27
- }
28
- }
29
-
30
- // ----------------------------------------------------------------------------
31
-
32
- const exchange = new ccxt.bytetrade ({
33
- 'apiKey': 'classic123', // edit here
34
- 'secret': 'ebcefff7de475ffe15e864ca3e3e410edf7e94fffd1f9af34edf9434e2bfff1b', // edit here
35
- })
36
-
37
- //
38
- // make a classic bytetrade account - one that is linked to an email or phone number
39
- // then click on your username in the top right and then export
40
- // you will get a file like this:
41
- //
42
- // future garage icon motion panda garage motion task science head garage notable
43
- // ebcefff7de475ffe15e864ca3e3e410edf7e94fffd1f9af34edf9434e2bfff1b
44
- // classic123
45
- //
46
- // the second line is your secret and the third line is your apiKey
47
- //
48
-
49
- const symbol = 'XRP/USDT' // edit here
50
- const type = 'limit ' // edit here
51
- const side = 'buy' // edit here
52
- const amount = 10 // edit here
53
- const price = 1 // edit here
54
- const params = {} // edit here
55
-
56
- ;(async () => {
57
- let order = false
58
- while (true) {
59
- order = await tryToCreateOrder (exchange, symbol, type, side, amount, price, params)
60
- if (order !== false) {
61
- break
62
- }
63
- }
64
- console.log (order)
65
- }) ()
@@ -1,25 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- // AUTO-TRANSPILE //
3
- async function example() {
4
- const exchange = new ccxt.pro.binance({
5
- 'apiKey': 'MY_API_KEY',
6
- 'secret': 'MY_SECRET',
7
- });
8
- exchange.setSandboxMode(true);
9
- exchange.verbose = true; // uncomment for debugging purposes if necessary
10
- // load markets
11
- await exchange.loadMarkets();
12
- const symbol = 'ETH/USDT';
13
- const type = 'limit';
14
- const side = 'buy';
15
- const amount = 0.01;
16
- let price = 1000;
17
- let orders = [];
18
- for (let i = 1; i < 5; i++) {
19
- const response = await exchange.createOrderWs(symbol, type, side, amount, price);
20
- price += i;
21
- orders.push(response);
22
- }
23
- console.log(orders);
24
- }
25
- await example();
@@ -1,17 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- // AUTO-TRANSPILE //
3
- async function example() {
4
- const exchange = new ccxt.binance({
5
- 'apiKey': 'MY_API_KEY',
6
- 'secret': 'MY_SECRET',
7
- });
8
- exchange.setSandboxMode(true);
9
- await exchange.loadMarkets();
10
- exchange.verbose = true; // uncomment for debugging purposes if necessary
11
- const orders = await exchange.createOrders([
12
- { 'symbol': 'LTC/USDT:USDT', 'type': 'limit', 'side': 'buy', 'amount': 10, 'price': 55 },
13
- { 'symbol': 'ETH/USDT:USDT', 'type': 'market', 'side': 'buy', 'amount': 0.5 },
14
- ]);
15
- console.log(orders);
16
- }
17
- await example();
@@ -1,36 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- // AUTO-TRANSPILE //
3
- async function example() {
4
- const exchange = new ccxt.bingx({
5
- 'apiKey': 'MY_API_KEY',
6
- 'secret': 'MY_SECRET',
7
- });
8
- // exchange.setSandboxMode (true);
9
- // exchange.verbose = true; // uncomment for debugging purposes if necessary
10
- await exchange.loadMarkets();
11
- const symbol = 'BTC/USDT:USDT';
12
- const order_type = 'market';
13
- const side = 'sell';
14
- const amount = 0.0001;
15
- const price = undefined;
16
- const reduceOnly = true;
17
- const trailingAmount = 100;
18
- // const trailingTriggerPrice = undefined; // not supported on all exchanges
19
- const params = {
20
- 'reduceOnly': reduceOnly,
21
- 'trailingAmount': trailingAmount,
22
- // 'trailingTriggerPrice': trailingTriggerPrice,
23
- };
24
- try {
25
- const create_order = await exchange.createOrder(symbol, order_type, side, amount, price, params);
26
- // Alternatively use the createTrailingAmountOrder method:
27
- // const create_order = await exchange.createTrailingAmountOrder (symbol, order_type, side, amount, price, trailingAmount, trailingTriggerPrice, {
28
- // 'reduceOnly': reduceOnly,
29
- // });
30
- console.log(create_order);
31
- }
32
- catch (e) {
33
- console.log(e.toString());
34
- }
35
- }
36
- await example();
@@ -1,36 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- // AUTO-TRANSPILE //
3
- async function example() {
4
- const exchange = new ccxt.bingx({
5
- 'apiKey': 'MY_API_KEY',
6
- 'secret': 'MY_SECRET',
7
- });
8
- // exchange.setSandboxMode (true);
9
- // exchange.verbose = true; // uncomment for debugging purposes if necessary
10
- await exchange.loadMarkets();
11
- const symbol = 'BTC/USDT:USDT';
12
- const order_type = 'market';
13
- const side = 'sell';
14
- const amount = 0.0001;
15
- const price = undefined;
16
- const reduceOnly = true;
17
- const trailingPercent = 10;
18
- // const trailingTriggerPrice = undefined; // not supported on all exchanges
19
- const params = {
20
- 'reduceOnly': reduceOnly,
21
- 'trailingPercent': trailingPercent,
22
- // 'trailingTriggerPrice': trailingTriggerPrice,
23
- };
24
- try {
25
- const create_order = await exchange.createOrder(symbol, order_type, side, amount, price, params);
26
- // Alternatively use the createTrailingAmountOrder method:
27
- // const create_order = await exchange.createTrailingPercentOrder (symbol, order_type, side, amount, price, trailingPercent, trailingTriggerPrice, {
28
- // 'reduceOnly': reduceOnly,
29
- // });
30
- console.log(create_order);
31
- }
32
- catch (e) {
33
- console.log(e.toString());
34
- }
35
- }
36
- await example();
@@ -1,5 +0,0 @@
1
- {
2
- "hitbtc": { "apiKey": "b6aad581670b30fb25d1c91cdbe8ca5c", "secret": "fa394ced37a488f9b5826a2d9ce39ae3" },
3
- "bitso": { "apiKey": "xZnHRmdlgJ", "secret": "e156bb7f7ab3a831afbc7a80f7866b9e" },
4
- "coincheck": { "apiKey": "dCyzY2T6w0DFhaco", "secret": "JpI0eMmxfa0tEpk3X-dNwyclSASJkl-S" }
5
- }
@@ -1,10 +0,0 @@
1
- // @ts-nocheck
2
- // to set custom "proxy-agent" for ccxt
3
- import ccxt from 'ccxt';
4
- import HttpProxyAgent from 'http-proxy-agent';
5
- const proxy = 'http://1.2.3.4:5678';
6
- const agent = new HttpProxyAgent(proxy); // or HttpsProxyAgent if you need http
7
- // then pass it through constructor:
8
- const kraken = new ccxt.kraken({ agent });
9
- // or set it later:
10
- kraken.agent = agent;
@@ -1,23 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- (async function main () {
6
-
7
- const kraken1 = new ccxt.kraken ({
8
- proxy: function (url) {
9
- return 'https://example.com/?url=' + encodeURIComponent (url)
10
- },
11
- })
12
-
13
- console.log (await kraken1.loadMarkets ())
14
-
15
- const kraken2 = new ccxt.kraken ({
16
- proxy: function (url) {
17
- return 'https://cors-anywhere.herokuapp.com/' + url
18
- },
19
- })
20
-
21
- console.log (await kraken2.loadMarkets ())
22
-
23
- }) ()
@@ -1,60 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- console.log ('CCXT Version:', ccxt.version);
4
-
5
- function getMaxLeverage (market, positionSize) {
6
- /**
7
- * @description Equation taken from https://www.delta.exchange/contracts/
8
- * @param {object} market CCXT market
9
- * @param {float} positionSize The value of the position in quote currency
10
- * @returns The maximum leverage available for the market for the given position size
11
- */
12
- const info = market['info'];
13
- const maxLeverageNotional = Number (info['max_leverage_notional']);
14
- const initialMarginScalingFactor = Number (info['initial_margin_scaling_factor']);
15
- let initialMargin = Number (info['initial_margin']);
16
-
17
- if (positionSize <= maxLeverageNotional) {
18
- const initialMarginRatio = initialMargin / 100;
19
- return 1 / initialMarginRatio;
20
- } else {
21
- initialMargin = initialMargin + (initialMarginScalingFactor * (positionSize - maxLeverageNotional));
22
- const initialMarginRatio = initialMargin / 100;
23
- return 1 / initialMarginRatio;
24
- }
25
- }
26
-
27
- function getMaintenanceMarginRate (market, positionSize) {
28
- /**
29
- * @description Equation taken from https://www.delta.exchange/contracts/
30
- * @param {object} market CCXT market
31
- * @param {float} positionSize The value of the position in quote currency
32
- * @returns The maintenance margin rate as a percentage for the market with the given position size
33
- */
34
- const info = market['info'];
35
- const maxLeverageNotional = Number (info['max_leverage_notional']);
36
- const maintenanceMarginScalingFactor = Number (info['maintenance_margin_scaling_factor']);
37
- const maintenanceMargin = Number (info['maintenance_margin']);
38
-
39
- if (positionSize <= maxLeverageNotional) {
40
- return maintenanceMargin;
41
- } else {
42
- return maintenanceMargin + (maintenanceMarginScalingFactor * (positionSize - maxLeverageNotional));
43
- }
44
- }
45
-
46
- async function main () {
47
-
48
- const exchange = new ccxt.delta();
49
- await exchange.loadMarkets ();
50
-
51
- const symbol = 'ADA/USDT:USDT';
52
- const market = exchange.market (symbol);
53
-
54
- // Gets the maximum leverage and maintenance margin rate for a position worth 100,000 USDT on the ADA/USDT:USDT market
55
- const maxLeverage = getMaxLeverage(market, 100000);
56
- const maintenanceMarginRate = getMaintenanceMarginRate(market, 100000);
57
- console.log(maxLeverage, maintenanceMarginRate);
58
- }
59
-
60
- main ()
@@ -1,26 +0,0 @@
1
-
2
-
3
- // ----------------------------------------------------------------------------
4
-
5
- import ccxt from '../../js/ccxt.js';
6
- import ololog from 'ololog'
7
-
8
- // ----------------------------------------------------------------------------
9
-
10
- const log = ololog.configure.handleNodeErrors (), asTable = require("as-table").configure({ delimiter: " | " });
11
-
12
- // ----------------------------------------------------------------------------
13
-
14
- (async () => {
15
-
16
- const exchange = new ccxt.coinbase ({
17
- verbose: process.argv.includes ('--verbose'),
18
- timeout: 60000,
19
- apiKey: process.env.KEY,
20
- secret: process.env.SECRET
21
- });
22
-
23
- const balance = await exchange.fetchBalance ()
24
- log.green (balance)
25
-
26
- })()
@@ -1,89 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- const verbose = process.argv.includes ('--verbose');
6
-
7
- //-----------------------------------------------------------------------------
8
-
9
- const printSupportedExchanges = () => console.log ('Supported exchanges:', ccxt.exchanges.join (', '))
10
-
11
- const printUsage = () => {
12
- console.log ('Usage: node', process.argv[1], 'id'.green)
13
- printSupportedExchanges ()
14
- }
15
-
16
- const run = async (id) => {
17
-
18
- // check if the exchange is supported by ccxt
19
- const exchangeFound = ccxt.exchanges.indexOf (id) > -1
20
-
21
- if (exchangeFound) {
22
-
23
- console.log ('Instantiating', id, 'exchange')
24
-
25
- // instantiate the exchange by id
26
- const exchange = new ccxt[id] ({ verbose })
27
-
28
- // try to load markets and catch the errors if any
29
- try {
30
-
31
- await exchange.loadMarkets ()
32
-
33
- } catch (e) {
34
-
35
- if (e instanceof ccxt.NetworkError) {
36
- console.log (exchange.id, 'loadMarkets failed due to a network error:', e.message)
37
- } else if (e instanceof ccxt.ExchangeError) {
38
- console.log (exchange.id, 'loadMarkets failed due to exchange error:', e.message)
39
- } else {
40
- console.log (exchange.id, 'loadMarkets failed with:', e.message)
41
- }
42
-
43
- // rethrow the error "higher up" the call chain
44
- throw e
45
- }
46
-
47
- // try to fetch a ticker and catch the errors if any
48
- try {
49
-
50
- const symbol = 'ETH/BTC'
51
- const response = await exchange.fetchTicker (symbol)
52
- console.log (response)
53
-
54
- } catch (e) {
55
-
56
- if (e instanceof ccxt.NetworkError) {
57
- console.log (exchange.id, 'fetchTicker failed due to a network error:', e.message)
58
- } else if (e instanceof ccxt.ExchangeError) {
59
- console.log (exchange.id, 'fetchTicker failed due to exchange error:', e.message)
60
- } else {
61
- console.log (exchange.id, 'fetchTicker failed with:', e.message)
62
- }
63
-
64
- // rethrow the error "higher up" the call chain
65
- throw e
66
- }
67
-
68
- } else {
69
-
70
- console.log ('Exchange', id, 'not found')
71
- printSupportedExchanges ()
72
- }
73
- }
74
-
75
- ;(async function main () {
76
-
77
- if (process.argv.length > 2) {
78
-
79
- let id = process.argv[2]
80
- await run (id)
81
-
82
- } else {
83
-
84
- printUsage ()
85
- }
86
-
87
- process.exit ()
88
-
89
- }) ()
@@ -1,135 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import ololog from 'ololog';
5
- import ansicolor from 'ansicolor';
6
- import asTable from 'as-table';
7
-
8
- const { noLocate } = ololog;
9
- const log = noLocate;
10
-
11
- ansicolor.nice
12
-
13
-
14
-
15
- const csv = process.argv.includes ('--csv'), delimiter = csv ? ',' : '|', asTableConfig = { delimiter: ' ' + delimiter + ' ', /* print: require ('string.ify').noPretty */ }
16
-
17
- asTable.configure (asTableConfig);
18
-
19
- const sortCertified = process.argv.includes ('--sort-certified') || process.argv.includes ('--certified')
20
- const exchangesArgument = process.argv.find (arg => arg.startsWith ('--exchanges='))
21
- const exchangesArgumentParts = exchangesArgument ? exchangesArgument.split ('=') : []
22
- const selectedExchanges = (exchangesArgumentParts.length > 1) ? exchangesArgumentParts[1].split (',') : []
23
-
24
- console.log (ccxt.iso8601 (ccxt.milliseconds ()))
25
- console.log ('CCXT v' + ccxt.version)
26
-
27
- async function main () {
28
-
29
- let total = 0
30
- let notImplemented = 0
31
- let inexistentApi = 0
32
- let implemented = 0
33
- let emulated = 0
34
-
35
- const exchangeNames = ccxt.exchanges
36
- let exchanges = exchangeNames.map (id => new ccxt[id] ())
37
- exchanges = exchanges.map (exchange => exchange.pro ? new ccxt.pro[exchange.id] () : exchange)
38
- if (sortCertified) {
39
- exchanges.sort((a, b) => {
40
- if (a.certified && !b.certified) {
41
- return -1;
42
- } else if (!a.certified && b.certified) {
43
- return 1;
44
- } else {
45
- return 0;
46
- }
47
- });
48
- }
49
- const metainfo = ccxt.flatten (exchanges.map (exchange => Object.keys (exchange.has)))
50
- const reduced = metainfo.reduce ((previous, current) => {
51
- previous[current] = (previous[current] || 0) + 1
52
- return previous
53
- }, {})
54
- const unified = Object.entries (reduced).filter (([ _, count ]) => count > 1)
55
- const methods = unified.map (([ method, _ ]) => method).sort ()
56
- if (selectedExchanges.length > 0) {
57
- exchanges = exchanges.filter ((exchange) => selectedExchanges.includes(exchange.id))
58
- }
59
- const table = asTable (exchanges.map (exchange => {
60
- let result = {};
61
- const basics = [
62
- 'CORS',
63
- 'spot',
64
- 'margin',
65
- 'swap',
66
- 'future',
67
- 'option',
68
- ];
69
-
70
- ccxt.unique (basics.concat (methods)).forEach (key => {
71
-
72
- total += 1
73
-
74
- let coloredString = '';
75
-
76
- const feature = exchange.has[key]
77
- const isFunction = (typeof exchange[key] === 'function')
78
- const isBasic = basics.includes (key)
79
-
80
- if (feature === false) {
81
- // if explicitly set to 'false' in exchange.has (to exclude mistake, we check if it's undefined too)
82
- coloredString = exchange.id.red.dim
83
- inexistentApi += 1
84
- } else if (feature === 'emulated') {
85
- // if explicitly set to 'emulated' in exchange.has
86
- coloredString = exchange.id.yellow
87
- emulated += 1
88
- } else if (feature) {
89
- if (isBasic) {
90
- // if neither 'false' nor 'emulated', and if method exists
91
- coloredString = exchange.id.green
92
- implemented += 1
93
- } else {
94
- if (isFunction) {
95
- coloredString = exchange.id.green
96
- implemented += 1
97
- } else {
98
- // the feature is available in exchange.has and not implemented
99
- // this is an error
100
- coloredString = exchange.id.lightMagenta
101
- }
102
- }
103
- } else {
104
- coloredString = exchange.id.lightRed
105
- notImplemented += 1
106
- }
107
-
108
- result[key] = coloredString
109
- })
110
-
111
- return result
112
- }))
113
-
114
- if (csv) {
115
- let lines = table.split ("\n")
116
- lines = lines.slice (0, 1).concat (lines.slice (2))
117
- log (lines.join ("\n"))
118
- } else {
119
- log (table)
120
- }
121
-
122
- log ('Summary: ',
123
- ccxt.exchanges.length.toString (), 'exchanges; ',
124
- 'Methods [' + total.toString () + ' total]: ',
125
- implemented.toString ().green, 'implemented,',
126
- emulated.toString ().yellow, 'emulated,',
127
- (inexistentApi.toString ().red.dim), 'inexistentApi,',
128
- (notImplemented.toString ().lightRed), 'notImplemented',
129
- )
130
-
131
- log("\nMessy? Try piping to less (e.g. node script.js | less -S -R)\n".red)
132
-
133
- }
134
-
135
- main ()
@@ -1,60 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- (async () => {
6
-
7
- // const exchanges = [
8
- // 'bittrex',
9
- // 'poloniex',
10
- // 'bitfinex'
11
- // ]
12
-
13
- const exchanges = ccxt.exchanges
14
-
15
- const symbol = 'BTC/USDT'
16
- const tickers = {}
17
- const volumeField = 'baseVolume'
18
-
19
- console.log ('-----------------------------------------------------------')
20
-
21
- await Promise.all (exchanges.map (exchangeId =>
22
-
23
- new Promise (async (resolve, reject) => {
24
-
25
- try {
26
-
27
- const exchange = new ccxt[exchangeId] ()
28
-
29
- const ticker = await exchange.fetchTicker (symbol)
30
-
31
- if (ticker[volumeField] !== undefined) {
32
- tickers[exchangeId] = ticker
33
- }
34
-
35
- } catch (e) {
36
-
37
- console.log (exchangeId, e.message.slice (0, 100))
38
- }
39
-
40
- resolve ()
41
-
42
- })
43
-
44
- ))
45
-
46
- console.log ('-----------------------------------------------------------')
47
-
48
- console.log (Object
49
- .keys (tickers)
50
- .sort ((a, b) =>
51
- ((tickers[a][volumeField] > tickers[b][volumeField]) ? 1 : ((tickers[a][volumeField] < tickers[b][volumeField]) ? -1 : 0)))
52
- .reverse ()
53
- .map (id => ({
54
- id,
55
- symbol,
56
- 'volume': tickers[id][volumeField],
57
- }))
58
- )
59
-
60
- }) ()
@@ -1,40 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import countries from '../../build/countries.js';
5
- import asTable from 'as-table';
6
- import ololog from 'ololog'
7
- import ansicolor from 'ansicolor';
8
- const log = ololog.configure ({ locate: false })
9
-
10
- ansicolor.nice
11
-
12
- process.on ('uncaughtException', e => { log.bright.red.error (e); process.exit (1) })
13
- process.on ('unhandledRejection', e => { log.bright.red.error (e); process.exit (1) })
14
-
15
- let exchanges = {}
16
-
17
- ccxt.exchanges.forEach (id => { exchanges[id] = new (ccxt)[id] () })
18
-
19
- log ('The ccxt library supports', (ccxt.exchanges.length.toString ()).green, 'exchanges:')
20
-
21
- var countryName = function (code) {
22
- return ((countries[code] !== undefined) ? countries[code] : code)
23
- }
24
-
25
- log (asTable.configure ({ delimiter: ' | ' }) (Object.values (exchanges).map (exchange => {
26
-
27
- let countries = Array.isArray (exchange.countries) ?
28
- exchange.countries.map (countryName).join (', ') :
29
- countryName (exchange.countries)
30
-
31
- let website = Array.isArray (exchange.urls.www) ? exchange.urls.www[0] : exchange.urls.www
32
-
33
- return {
34
- id: exchange.id,
35
- name: exchange.name,
36
- url: website,
37
- countries: countries,
38
- }
39
-
40
- })))