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,62 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../ccxt');
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- const exchange = new ccxt.bybit({
8
- 'apiKey': 'YOUR_API_KEY',
9
- 'secret': 'YOUR_API_KEY',
10
- })
11
-
12
- // exchange.set_sandbox_mode(true) // enable sandbox mode
13
-
14
- // Example 1 :: Swap : open position and set trailing stop and close it
15
- async function example1 () {
16
- exchange['options']['defaultType'] = 'swap'; // very important set swap as default type
17
- await exchange.loadMarkets ();
18
-
19
- const symbol = 'LTC/USDT:USDT';
20
- const market = exchange.market(symbol);
21
-
22
- // fetch swap balance
23
- const balance = await exchange.fetchBalance ();
24
- console.log (balance)
25
-
26
- // create order and open position
27
- const type = 'market';
28
- const side = 'buy';
29
- const amount = 0.1
30
- const price = undefined;
31
- const createOrder = await exchange.createOrder (symbol, type, side, amount, price);
32
- console.log ('Created order id:', createOrder['id'])
33
-
34
- // set trailing stop
35
- const rawSide = 'Buy'; // or 'Sell'
36
- const trailing_stop = 30; // YOUR TRAILING STOP HERE
37
- const trailingParams = {
38
- 'symbol': market['id'],
39
- 'side': rawSide,
40
- 'trailing_stop': trailing_stop
41
- }
42
- const trailing_response = await exchange.privatePostPrivateLinearPositionTradingStop (trailingParams);
43
- console.log(trailing_response)
44
-
45
- // check opened position
46
- const symbols = [ symbol ];
47
- const positions = await exchange.fetchPositions (symbols);
48
- console.log (positions)
49
-
50
- // Close position by issuing a order in the opposite direction
51
- const params = {
52
- 'reduce_only': true
53
- }
54
- const closePositionOrder = await exchange.createOrder (symbol, type, side, amount, price, params);
55
- console.log (closePositionOrder);
56
- }
57
-
58
- async function main () {
59
- await example1 ();
60
- }
61
-
62
- main ();
@@ -1,154 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../dist/ccxt.bundle.cjs');
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- const exchange = new ccxt.bybit ({
8
- 'apiKey': 'YOUR_API_KEY',
9
- 'secret': 'YOUR_SECRET_KEY',
10
- })
11
-
12
- // Example 1: Spot : fetch balance, create order, cancel it and check canceled orders
13
- async function example1 () {
14
- exchange['options']['defaultType'] = 'spot'; // very important set spot as default type
15
-
16
- await exchange.loadMarkets ();
17
-
18
- // fetch spot balance
19
- const balance = await exchange.fetchBalance ();
20
- console.log (balance)
21
-
22
- // create order
23
- const symbol = 'LTC/USDT';
24
- const createOrder = await exchange.createOrder (symbol, 'limit', 'buy', 50, 0.1);
25
- console.log ('Created order id:', createOrder['id'])
26
-
27
- // cancel order
28
- const cancelOrder = await exchange.cancelOrder (createOrder['id'], symbol);
29
-
30
- // Check canceled orders (bybit does not have a single endpoint to check orders
31
- // we have to choose whether to check open or closed orders and call fetchOpenOrders
32
- // or fetchClosedOrders respectively
33
- const canceledOrders = await exchange.fetchClosedOrders (symbol);
34
- console.log (canceledOrders);
35
- }
36
-
37
- // -----------------------------------------------------------------------------------------
38
-
39
- // Example 2 :: Swap : fetch balance, open a position and close it
40
- async function example2 () {
41
- exchange['options']['defaultType'] = 'swap'; // very important set swap as default type
42
- await exchange.loadMarkets ();
43
-
44
- // fetch swap balance
45
- const balance = await exchange.fetchBalance ();
46
- console.log (balance)
47
-
48
- // create order and open position
49
- const symbol = 'LTC/USDT:USDT';
50
- const createOrder = await exchange.createOrder (symbol, 'market', 'buy', 0.1);
51
- console.log ('Created order id:', createOrder['id'])
52
-
53
- // check opened position
54
- const symbols = [ symbol ];
55
- const positions = await exchange.fetchPositions (symbols);
56
- console.log (positions)
57
-
58
- // Close position by issuing a order in the opposite direction
59
- const params = {
60
- 'reduce_only': true
61
- }
62
- const closePositionOrder = await exchange.createOrder (symbol, 'market', 'sell', 0.1, undefined, params);
63
- console.log (closePositionOrder);
64
- }
65
-
66
- // -----------------------------------------------------------------------------------------
67
-
68
- // Example 3 :: USDC Swap : fetch balance, open a position and close it
69
- async function example3 () {
70
- exchange['options']['defaultType'] = 'swap'; // very important set swap as default type
71
- await exchange.loadMarkets ();
72
-
73
- // fetch USDC swap balance
74
- // when no symbol is available we can show our intent
75
- // of using USDC endpoints by either using defaultSettle in options or
76
- // settle in params
77
- // Using Options: exchange['options']['defaultSettle'] = 'USDC';
78
- // Using params:
79
- const balanceParams = {
80
- 'settle': 'USDC'
81
- }
82
- const balance = await exchange.fetchBalance (balanceParams);
83
- console.log (balance)
84
-
85
- // create order and open position
86
- // taking into consideration that USDC markets do not support
87
- // market orders
88
- const symbol = 'BTC/USD:USDC';
89
- const amount = 0.1;
90
- const price = 29940 // adjust this accordingly
91
- const createOrder = await exchange.createOrder (symbol, 'limit', 'buy', amount, price);
92
- console.log ('Created order id:', createOrder['id'])
93
-
94
- // check if the order was filled and the position opened
95
- const symbols = [ symbol ];
96
- const positions = await exchange.fetchPositions (symbols);
97
- console.log (positions)
98
-
99
- // close position (assuming it was already opened) by issuing an order in the opposite direction
100
- const params = {
101
- 'reduce_only': true
102
- }
103
- const closePositionOrder = await exchange.createOrder (symbol, 'limit', 'sell', amount, price, params);
104
- console.log (closePositionOrder);
105
- }
106
-
107
- // -----------------------------------------------------------------------------------------
108
-
109
- // Example 4 :: Future : fetch balance, create stop-order and check open stop-orders
110
- async function example4 () {
111
- exchange['options']['defaultType'] = 'future'; // very important set future as default type
112
- await exchange.loadMarkets ();
113
-
114
- // fetch future balance
115
- const balance = await exchange.fetchBalance ();
116
- console.log (balance)
117
-
118
- // create stop-order
119
- const symbol = 'ETH/USD:ETH-220930';
120
- const amount = 10; // in USD for inverse futures
121
- const price = 1200;
122
- const side = 'buy';
123
- const type = 'limit';
124
- const stopOrderParams = {
125
- 'position_idx': 0, // 0 One-Way Mode, 1 Buy-side, 2 Sell-side, default = 0
126
- 'stopPrice': 1000, // mandatory for stop orders
127
- 'basePrice': 1100 // mandatory for stop orders
128
- }
129
- const stopOrder = await exchange.createOrder (symbol, type, side, amount, price, stopOrderParams);
130
- console.log ('Created order id:', stopOrder['id'])
131
-
132
- // check opened stop-order
133
- const openOrderParams = {
134
- 'stop': true
135
- }
136
- const openOrders = await exchange.fetchOpenOrders (symbol, undefined, undefined, openOrderParams);
137
- console.log (openOrders)
138
-
139
- // Cancell open stop-order
140
- const cancelOrder = await exchange.cancelOrder (stopOrder['id'], symbol, openOrderParams);
141
- console.log (cancelOrder);
142
- }
143
-
144
- // -----------------------------------------------------------------------------------------
145
-
146
- async function main () {
147
- await example1 ();
148
- await example2 ();
149
- await example3 ();
150
- await example4 ();
151
-
152
- }
153
-
154
- main ();
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- const ccxt = require ('../../ccxt.js')
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- async function fetchAllBalances (exchange) {
8
- const params = {}
9
- let balance = {}
10
- while (true) {
11
- const response = await exchange.fetchBalance (params)
12
- balance = exchange.extend (balance, response)
13
- const info = exchange.safeValue (response, 'info', {})
14
- const pagination = exchange.safeValue (info, 'pagination', {})
15
- const startingAfter = exchange.safeString (pagination, 'next_starting_after')
16
- if (startingAfter !== undefined) {
17
- params['starting_after'] = startingAfter
18
- } else {
19
- break
20
- }
21
- }
22
- return balance
23
- }
24
-
25
- async function main () {
26
- const exchange = new ccxt.coinbase ({
27
- apiKey: 'YOUR_API_KEY',
28
- secret: 'YOUR_API_SECRET',
29
- })
30
- const markets = await exchange.loadMarkets ()
31
- // coinbase.verbose = true // uncomment for debugging purposes if necessary
32
- const balance = await fetchAllBalances (exchange)
33
- console.log (balance)
34
- }
35
-
36
- main ()
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- const ccxt = require ('../../ccxt')
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- // https://github.com/ccxt/ccxt/issues/15405
8
-
9
- async function main () {
10
-
11
- const exchange = new ccxt.coinex ({
12
- 'apiKey': 'YOUR_API_KEY',
13
- 'secret': 'YOUR_API_SECRET',
14
- });
15
-
16
- // exchange.verbose = true // uncomment for debugging purposes
17
-
18
- await exchange.loadMarkets ();
19
- const addresses = {};
20
- const promises = [];
21
-
22
- async function fetchDepositAddress (currency, network) {
23
- try {
24
- const response = await exchange.fetchDepositAddress(currency, { 'network': network });
25
- addresses[currency][network] = response['address']
26
- }
27
- catch (err) {
28
- console.error(err)
29
- }
30
- }
31
-
32
- const currencies = Object.keys (exchange.currencies);
33
-
34
- for (const currency of currencies) {
35
- const networks = Object.keys (exchange.currencies[currency]['networks']);
36
- for (const network of networks) {
37
- addresses[currency] = {};
38
- promises.push (fetchDepositAddress (currency, network));
39
- }
40
- }
41
-
42
- await Promise.all (promises);
43
-
44
- console.log (addresses)
45
- };
46
-
47
- main ();
@@ -1,75 +0,0 @@
1
- 'use strict';
2
-
3
- const ccxt = require ('../../ccxt');
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- let exchange = new ccxt.coinex({
8
- 'apiKey': 'YOUR_API_KEY',
9
- 'secret': 'YOUR_SECRET_KEY',
10
- })
11
-
12
- // Example 1 :: Swap : fetch balance, create a limit swap order with leverage
13
- async function example1 () {
14
- exchange['options']['defaultType'] = 'swap';
15
- exchange.options['defaultMarginMode'] = 'cross' // or isolated
16
- await exchange.loadMarkets ();
17
-
18
- const symbol = 'ADA/USDT:USDT';
19
-
20
- // fetchBalance
21
- const balance = await exchange.fetchBalance ();
22
- console.log (balance)
23
-
24
- // set the desired leverage (has to be made before placing the order and for a specific symbol)
25
- const leverage = 8;
26
- const leverage_response = await exchange.setLeverage(leverage, symbol)
27
-
28
- // create limit order
29
- const amount = 50;
30
- const price = 0.3 // adjust this accordingly
31
- const createOrder = await exchange.createOrder (symbol, 'limit', 'buy', amount, price);
32
- console.log ('Created order id:', createOrder['id'])
33
- }
34
-
35
- // Example 2 :: Swap :: open a position and close it
36
- async function example2 () {
37
- exchange['options']['defaultType'] = 'swap';
38
- exchange.options['defaultMarginMode'] = 'cross' // or isolated
39
- await exchange.loadMarkets ();
40
-
41
- const symbol = 'ADA/USDT:USDT';
42
-
43
- // fetchBalance
44
- const balance = await exchange.fetchBalance ();
45
- console.log (balance)
46
-
47
- // set the desired leverage (has to be made before placing the order and for a specific symbol)
48
- const leverage = 8;
49
- const leverage_response = await exchange.setLeverage(leverage, symbol)
50
-
51
- // create market order and open position
52
- const amount = 50;
53
- const createOrder = await exchange.createOrder (symbol, 'market', 'buy', amount);
54
- console.log ('Created order id:', createOrder['id'])
55
-
56
- // check if the order was filled and the position opened
57
- const position = await exchange.fetchPositions (symbol);
58
- console.log (position)
59
-
60
- // close position (assuming it was already opened) by issuing an order in the opposite direction
61
- const params = {
62
- 'reduce_only': true
63
- }
64
- const closePositionOrder = await exchange.createOrder (symbol, 'market', 'sell', amount, undefined, params);
65
- console.log (closePositionOrder);
66
- }
67
-
68
- // -----------------------------------------------------------------------------------------
69
-
70
- async function main () {
71
- await example1 ();
72
- await example2 ();
73
- }
74
-
75
- main ();
@@ -1,54 +0,0 @@
1
-
2
-
3
- import { nice as ansi } from 'ansicolor';
4
- import ololog from 'ololog';
5
- import asTable from 'as-table';
6
-
7
- import ccxt from '../../js/ccxt.js';
8
-
9
- const { noLocate } = ololog;
10
- const log = noLocate;
11
-
12
- const table = asTable.configure ({
13
- delimiter: ' | '.dim,
14
- right: true,
15
- });
16
-
17
- const exchange = new ccxt.coinone ({
18
- 'verbose': process.argv.includes ('--verbose'),
19
- })
20
-
21
- let printTickersAsTable = function (exchange, tickers) {
22
- log (exchange.id.green, exchange.iso8601 (exchange.milliseconds ()))
23
- log ('Fetched', Object.values (tickers).length.toString ().green, 'tickers:')
24
- log (table (ccxt.sortBy (Object.values (tickers), 'symbol', false)))
25
- }
26
-
27
- async function fetchAllAndPrint () {
28
- const tickers = await exchange.fetchTickers ()
29
- log ('---------------------------------------- fetchTickers ----------------------------------------')
30
- printTickersAsTable (exchange, tickers)
31
- }
32
-
33
- async function fetchOneByOneAndPrint () {
34
- const markets = await exchange.loadMarkets ()
35
- const symbols = Object.keys (markets)
36
- const tickers = []
37
-
38
- log ('---------------------------------------- fetchTicker (one by one) ----------------------------------------')
39
-
40
- for (let i = 0; i < symbols.length; i++) {
41
- const ticker = await exchange.fetchTicker (symbols[i])
42
- tickers.push (ticker)
43
- log (`${i+1} / ${symbols.length}`)
44
- log ('\u001b[1A'.repeat (2)) // cursor up
45
- }
46
-
47
- printTickersAsTable (exchange, tickers)
48
- }
49
-
50
- (async () => {
51
- await fetchAllAndPrint ()
52
- log ('\n')
53
- await fetchOneByOneAndPrint ()
54
- }) ()
@@ -1,16 +0,0 @@
1
-
2
-
3
- import log from 'ololog';
4
- import ccxt from '../../js/ccxt.js';
5
-
6
- const exchange = new ccxt.coinone ({
7
- 'verbose': process.argv.includes ('--verbose'),
8
- })
9
-
10
- ;(async function main () {
11
-
12
- const markets = await exchange.loadMarkets ()
13
- log (markets)
14
- log ('\n' + exchange['name'] + ' supports ' + Object.keys (markets).length + ' pairs')
15
-
16
- }) ()
@@ -1,36 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- // AUTO-TRANSPILE //
3
- async function example() {
4
- const prefix = '-';
5
- const exchange_1 = new ccxt.okx();
6
- const exchange_2 = new ccxt.htx();
7
- const keys_1 = Object.keys(exchange_1.has);
8
- const keys_2 = Object.keys(exchange_2.has);
9
- // check missing from exchange-1
10
- console.log('### checking missing functionalities from exchange-1:', exchange_1.id);
11
- for (let i = 0; i < keys_2.length; i++) {
12
- const key = keys_2[i];
13
- if (exchange_2.has[key]) {
14
- if (!keys_1.includes(key)) {
15
- console.log(prefix, key, 'does not exist in', exchange_1.id, 'as opposed to', exchange_2.id);
16
- }
17
- else if (exchange_2.has[key] !== exchange_1.has[key]) {
18
- console.log(prefix, key, '> ', exchange_1.id, ':', exchange_1.has[key], ',', exchange_2.id, ':', exchange_2.has[key]);
19
- }
20
- }
21
- }
22
- // check missing from exchange-2
23
- console.log('### checking missing functionalities from exchange-2:', exchange_2.id);
24
- for (let i = 0; i < keys_1.length; i++) {
25
- const key = keys_1[i];
26
- if (exchange_1.has[key]) {
27
- if (!keys_2.includes(key)) {
28
- console.log(prefix, key, 'does not exist in', exchange_2.id, 'as opposed to', exchange_1.id);
29
- }
30
- else if (exchange_1.has[key] !== exchange_2.has[key]) {
31
- console.log(prefix, key, '> ', exchange_2.id, ':', exchange_2.has[key], ',', exchange_1.id, ':', exchange_1.has[key]);
32
- }
33
- }
34
- }
35
- }
36
- await example();
@@ -1,5 +0,0 @@
1
- // JavaScript CORS Proxy
2
- // Save this in a file like cors.js and run with `node cors [port]`
3
- // It will listen for your requests on the port you pass in command line or port 8080 by default
4
- let port = (process.argv.length > 2) ? parseInt (process.argv[2]) : 8080 // default
5
- require ('cors-anywhere').createServer ().listen (port, '0.0.0.0')
@@ -1,55 +0,0 @@
1
-
2
-
3
- // ----------------------------------------------------------------------------
4
-
5
- import ccxt from '../../js/ccxt.js';
6
-
7
- // ----------------------------------------------------------------------------
8
-
9
- (async () => {
10
-
11
- const exchange = new ccxt.bittrex ({
12
- 'apiKey': 'YOUR_API_KEY',
13
- 'secret': 'YOUR_SECRET_KEY',
14
- 'verbose': false, // set to true to see more debugging output
15
- 'timeout': 60000,
16
- })
17
-
18
- // try to load markets first, retry on request timeouts until it succeeds:
19
-
20
- while (true) {
21
-
22
- try {
23
-
24
- await exchange.loadMarkets ();
25
- break;
26
-
27
- } catch (e) {
28
-
29
- if (e instanceof ccxt.RequestTimeout)
30
- console.log (exchange.iso8601 (Date.now ()), e.constructor.name, e.message)
31
- }
32
- }
33
-
34
- const symbol = 'ETH/BTC'
35
- const orderType = 'limit'
36
- const side = 'sell'
37
- const amount = 0.321;
38
- const price = 0.123;
39
-
40
- // try just one attempt to create an order
41
-
42
- try {
43
-
44
- const response = await exchange.createOrder (symbol, orderType, side, amount, price);
45
- console.log (response);
46
- console.log ('Succeeded');
47
-
48
- } catch (e) {
49
-
50
- console.log (exchange.iso8601 (Date.now ()), e.constructor.name, e.message)
51
- console.log ('Failed');
52
-
53
- }
54
-
55
- }) ()
@@ -1,71 +0,0 @@
1
- // @ts-nocheck
2
- import ccxt from '../../js/ccxt.js';
3
- // AUTO-TRANSPILE //
4
- console.log('CCXT Version:', ccxt.version);
5
- // ------------------------------------------------------------------------------
6
- async function example() {
7
- // at this moment, only OKX support embedded stop-loss & take-profit orders in unified manner. other exchanges are being added actively and will be available soon.
8
- const exchange = new ccxt.okx({
9
- "apiKey": "YOUR_API_KEY",
10
- "secret": "YOUR_API_SECRET",
11
- "password": "YOUR_API_PASSWORD", // if exchange does not require password, comment out this line
12
- });
13
- const symbol = 'DOGE/USDT:USDT';
14
- const side = 'buy'; // 'buy' | 'sell'
15
- const order_type = 'limit'; // 'market' | 'limit'
16
- const amount = 1; // how many contracts (see `market(symbol).contractSize` to find out coin portion per one contract)
17
- await exchange.loadMarkets();
18
- const market = exchange.market(symbol);
19
- const ticker = await exchange.fetchTicker(symbol);
20
- const last_price = ticker['last'];
21
- const ask_price = ticker['ask'];
22
- const bid_price = ticker['bid'];
23
- // if order_type is 'market', then price is not needed
24
- let price = undefined;
25
- // if order_type is 'limit', then set a price at your desired level
26
- if (order_type === 'limit') {
27
- price = (side === 'buy') ? bid_price * 0.95 : ask_price * 1.05; // i.e. 5% from current price
28
- }
29
- // set trigger price for stop-loss/take-profit to 2% from current price
30
- // (note, across different exchanges "trigger" price can be also mentioned with different synonyms, like "activation price", "stop price", "conditional price", etc. )
31
- const stop_loss_trigger_price = (order_type === 'market' ? last_price : price) * (side === 'buy' ? 0.98 : 1.02);
32
- const take_profit_trigger_price = (order_type === 'market' ? last_price : price) * (side === 'buy' ? 1.02 : 0.98);
33
- // when symbol's price reaches your predefined "trigger price", stop-loss order would be activated as a "market order". but if you want it to be activated as a "limit order", then set a 'price' parameter for it
34
- const params = {
35
- 'stopLoss': {
36
- 'triggerPrice': stop_loss_trigger_price,
37
- // set a 'price' to act as limit order, otherwise remove it for a market order
38
- 'price': stop_loss_trigger_price * 0.98,
39
- },
40
- 'takeProfit': {
41
- 'triggerPrice': take_profit_trigger_price,
42
- // set a 'price' to act as limit order, otherwise remove it for a market order
43
- 'price': take_profit_trigger_price * 0.98,
44
- },
45
- // note that some exchanges might require some exchange specific parameter when opening a position, i.e.:
46
- // 'posSide': 'long', // for phemex hedge-mode api
47
- };
48
- const position_amount = market['contractSize'] * amount;
49
- const position_value = position_amount * last_price;
50
- // log
51
- console.log('Going to open a position', 'for', amount, 'contracts worth', position_amount, market['base'], '~', position_value, market['settle'], 'using', side, order_type, 'order (', (order_type === 'limit' ? exchange.priceToPrecision(symbol, price) : ''), '), using the following params:');
52
- console.log(params);
53
- console.log('-----------------------------------------------------------------------');
54
- // exchange.verbose = True // uncomment for debugging purposes if necessary
55
- try {
56
- const created_order = await exchange.createOrder(symbol, order_type, side, amount, price, params);
57
- console.log("Created an order", created_order);
58
- // Fetch all your open orders for this symbol
59
- // - use 'fetchOpenOrders' or 'fetchOrders' and filter with 'open' status
60
- // - note, that some exchanges might return one order object with embedded stoploss/takeprofit fields, while other exchanges might have separate stoploss/takeprofit order objects
61
- const all_open_orders = await exchange.fetchOpenOrders(symbol);
62
- console.log("Fetched all your orders for this symbol", all_open_orders);
63
- // To cancel a limit order, use "exchange.cancel_order(created_order['id'], symbol)""
64
- }
65
- catch (e) {
66
- console.log(e.toString());
67
- }
68
- }
69
- await example();
70
- // NOTES:
71
- // - Sometimes you might experience, when their stop-loss/take-profit order might not become activated, even though on chart the price had crossed that "trigger-price" order was not executed . That happens because some exchange might be using mark-price (instead of last-price) as a reference-price, so that mark-price might reach your trigger-price and it would activate your SL/TP order (even though on your symbol's chart you are viewing the "last-price" by default, which could have different movements than the mark-price).