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.
- package/README.md +6 -5
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +3 -0
- package/dist/cjs/src/binance.js +56 -0
- package/dist/cjs/src/bingx.js +2 -2
- package/dist/cjs/src/bitget.js +69 -5
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/coinbase.js +2 -1
- package/dist/cjs/src/coinbasepro.js +1 -1
- package/dist/cjs/src/coinex.js +164 -206
- package/dist/cjs/src/cryptocom.js +5 -5
- package/dist/cjs/src/hyperliquid.js +74 -0
- package/dist/cjs/src/kraken.js +8 -3
- package/dist/cjs/src/kucoin.js +13 -11
- package/dist/cjs/src/okx.js +76 -5
- package/dist/cjs/src/pro/kraken.js +2 -2
- package/dist/cjs/src/woo.js +40 -0
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/base/Exchange.d.ts +2 -1
- package/js/src/base/Exchange.js +3 -0
- package/js/src/base/types.d.ts +5 -0
- package/js/src/binance.d.ts +3 -1
- package/js/src/binance.js +56 -0
- package/js/src/bingx.js +3 -3
- package/js/src/bitget.d.ts +1 -0
- package/js/src/bitget.js +69 -5
- package/js/src/bybit.js +1 -1
- package/js/src/coinbase.js +2 -1
- package/js/src/coinbasepro.d.ts +1 -1
- package/js/src/coinbasepro.js +1 -1
- package/js/src/coinex.js +164 -206
- package/js/src/cryptocom.js +5 -5
- package/js/src/hyperliquid.d.ts +2 -1
- package/js/src/hyperliquid.js +75 -1
- package/js/src/kraken.js +8 -3
- package/js/src/kucoin.js +13 -11
- package/js/src/okx.d.ts +1 -0
- package/js/src/okx.js +76 -5
- package/js/src/pro/kraken.js +2 -2
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
- package/js/src/woo.d.ts +1 -0
- package/js/src/woo.js +40 -0
- package/package.json +2 -1
- package/.dockerignore +0 -6
- package/.eslintignore +0 -1
- package/.git-templates/hooks/pre-push +0 -55
- package/.gitattributes +0 -7
- package/CHANGELOG.md +0 -6003
- package/CODEOWNERS +0 -1
- package/CONTRIBUTING.md +0 -1099
- package/build.sh +0 -217
- package/change.sh +0 -18
- package/cleanup.sh +0 -18
- package/composer-install.sh +0 -20
- package/dist/ccxt.browser.js +0 -327256
- package/dist/ccxt.browser.min.js +0 -30
- package/dist/ccxt.browser.min.js.LICENSE.txt +0 -12
- package/doc/FAQ.rst +0 -1
- package/doc/Makefile +0 -20
- package/doc/_static/css/dark.css +0 -101
- package/doc/_static/css/index.css +0 -128
- package/doc/_static/favicon.ico +0 -0
- package/doc/_static/javascript/binance-portal.min.js +0 -2369
- package/doc/_static/javascript/index.js +0 -195
- package/doc/_static/javascript/jquery-ui.min.js +0 -6
- package/doc/ccxt.pro.install.rst +0 -1
- package/doc/ccxt.pro.manual.rst +0 -1665
- package/doc/exchange-markets-by-country.rst +0 -1423
- package/doc/exchange-markets.rst +0 -1441
- package/doc/index.rst +0 -35
- package/doc/install.rst +0 -1
- package/doc/make.bat +0 -36
- package/doc/manual.rst +0 -7471
- package/doc/readme.rst +0 -2191
- package/doc/requirements.txt +0 -6
- package/examples/ccxt.pro/html/watchTicker.html +0 -51
- package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +0 -55
- package/examples/ccxt.pro/js/binance-https-proxy.js +0 -48
- package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +0 -38
- package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +0 -64
- package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +0 -62
- package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +0 -68
- package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +0 -82
- package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +0 -59
- package/examples/ccxt.pro/js/exchange-capabitities.js +0 -72
- package/examples/ccxt.pro/js/exchange-close.js +0 -46
- package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +0 -30
- package/examples/ccxt.pro/js/gateio-watch-balance.js +0 -23
- package/examples/ccxt.pro/js/gateio-watch-order-book.js +0 -71
- package/examples/ccxt.pro/js/graceful-shutdown.js +0 -43
- package/examples/ccxt.pro/js/many-exchanges-many-streams.js +0 -37
- package/examples/ccxt.pro/js/okex-create-futures-order.js +0 -48
- package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +0 -54
- package/examples/ccxt.pro/js/okx-watch-tickers.js +0 -31
- package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +0 -46
- package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +0 -26
- package/examples/ccxt.pro/js/one-exchange-many-streams.js +0 -28
- package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +0 -30
- package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +0 -40
- package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +0 -38
- package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +0 -40
- package/examples/ccxt.pro/js/watch-many-orderbooks.js +0 -27
- package/examples/ccxt.pro/js/watch-new-trades-only.js +0 -43
- package/examples/ccxt.pro/js/watch-new-trades.js +0 -42
- package/examples/ccxt.pro/js/watch-trades-many-symbols.js +0 -29
- package/examples/ccxt.pro/js/watch-vs-fetch.js +0 -29
- package/examples/cs/Examples.sln +0 -22
- package/examples/cs/c#.csproj +0 -19
- package/examples/html/basic-cors-proxy.html +0 -46
- package/examples/html/basic-inheritance.html +0 -47
- package/examples/html/basic-poller.html +0 -52
- package/examples/html/basic-rate-limiting.html +0 -49
- package/examples/html/basic.html +0 -43
- package/examples/html/binance-cors-proxy.html +0 -28
- package/examples/html/bitmex-browser-cors-proxy.js +0 -7
- package/examples/html/bitmex-cors.html +0 -46
- package/examples/html/tradingview-charts.html +0 -61
- package/examples/html/webworker/index.html +0 -97
- package/examples/html/webworker/worker.js +0 -43
- package/examples/js/advanced-error-handling.js +0 -39
- package/examples/js/aggregate-orderbook.js +0 -54
- package/examples/js/arbitrage-pairs.js +0 -130
- package/examples/js/basic-chart.js +0 -29
- package/examples/js/basic-orderbook-polling.js +0 -13
- package/examples/js/bcc-vs-bch.js +0 -115
- package/examples/js/benchmark.js +0 -104
- package/examples/js/binance-fetch-all-deposits.js +0 -45
- package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +0 -34
- package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +0 -33
- package/examples/js/binance-fetchTicker-delivery-vs-future.js +0 -31
- package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +0 -41
- package/examples/js/binance-margin-stop-order.js +0 -39
- package/examples/js/binance-server-time.js +0 -34
- package/examples/js/binance-universal-transfer.js +0 -16
- package/examples/js/bitfinex-fetch-trades.js +0 -35
- package/examples/js/bitfinex2-fetch-trades.js +0 -35
- package/examples/js/bitmex-browser-cors-proxy.js +0 -7
- package/examples/js/bitpanda-fetchMyTrades-reduce.js +0 -36
- package/examples/js/bitrue-fetch-balance.js +0 -28
- package/examples/js/bitstamp-private-api.js +0 -115
- package/examples/js/bitstamp-public-api.js +0 -39
- package/examples/js/bittrex-balance.js +0 -50
- package/examples/js/bittrex-fetch-closed-orders-history.js +0 -69
- package/examples/js/blockchaincom-withdrawal.js +0 -59
- package/examples/js/build-ohlcv-bars.js +0 -48
- package/examples/js/builtin-rate-limiting-rest-poller.js +0 -25
- package/examples/js/bybit-trailing.js +0 -62
- package/examples/js/bybit-updated.cjs +0 -154
- package/examples/js/coinbase-fetch-all-balances.js +0 -36
- package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +0 -47
- package/examples/js/coinex-futures.js +0 -75
- package/examples/js/coinone-fetch-tickers.js +0 -54
- package/examples/js/coinone-markets.js +0 -16
- package/examples/js/compare-two-exchanges-capabilities.js +0 -36
- package/examples/js/cors-proxy.js +0 -5
- package/examples/js/create-order-handle-errors.js +0 -55
- package/examples/js/create-order-position-with-takeprofit-stoploss.js +0 -71
- package/examples/js/create-order-with-retry.js +0 -65
- package/examples/js/create-order-ws-example.js +0 -25
- package/examples/js/create-orders-example.js +0 -17
- package/examples/js/create-trailing-amount-order.js +0 -36
- package/examples/js/create-trailing-percent-order.js +0 -36
- package/examples/js/credentials.json +0 -5
- package/examples/js/custom-proxy-agent-for-js.js +0 -10
- package/examples/js/custom-proxy-url.js +0 -23
- package/examples/js/delta-maintenance-margin-rate-max-leverage.js +0 -60
- package/examples/js/env-variables.js +0 -26
- package/examples/js/error-handling.js +0 -89
- package/examples/js/exchange-capabilities.js +0 -135
- package/examples/js/exchanges-by-volume.js +0 -60
- package/examples/js/exchanges.js +0 -40
- package/examples/js/fetch-all-balances.js +0 -219
- package/examples/js/fetch-all-tickers-to-files-2.js +0 -53
- package/examples/js/fetch-all-tickers-to-files.js +0 -77
- package/examples/js/fetch-balance.js +0 -28
- package/examples/js/fetch-create-deposit-address.js +0 -101
- package/examples/js/fetch-from-many-exchanges-simultaneously.js +0 -21
- package/examples/js/fetch-funding-rate-history.js +0 -25
- package/examples/js/fetch-futures/prettier.config.js +0 -5
- package/examples/js/fetch-futures/src/index.js +0 -25
- package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +0 -72
- package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +0 -39
- package/examples/js/fetch-ohlcv.js +0 -16
- package/examples/js/fetch-okex-futures.js +0 -22
- package/examples/js/fetch-orders.js +0 -27
- package/examples/js/fetch-ticker-from-multiple-exchanges.js +0 -35
- package/examples/js/fetch-ticker-where-available.js +0 -75
- package/examples/js/fetch-tickers/build/index.js +0 -19
- package/examples/js/fetch-tickers/prettier.config.js +0 -5
- package/examples/js/fetch-tickers/src/index.js +0 -17
- package/examples/js/gateio-create-batch-order.js +0 -43
- package/examples/js/gateio-futures.js +0 -49
- package/examples/js/gateio-open-close-contract.js +0 -49
- package/examples/js/gateio-swaps.js +0 -74
- package/examples/js/gdax-fetch-trades-pagination.js +0 -29
- package/examples/js/hitbtc2-withdraw.js +0 -61
- package/examples/js/how-to-import-one-exchange-esm.js +0 -10
- package/examples/js/huobi-futures.js +0 -71
- package/examples/js/huobi-open-close-contract.js +0 -63
- package/examples/js/huobi-swaps.js +0 -70
- package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +0 -98
- package/examples/js/hybridCJSExample.cjs +0 -19
- package/examples/js/hybridESMExample.js +0 -19
- package/examples/js/idex-fetch-balance.js +0 -13
- package/examples/js/instantiate-all-at-once.js +0 -46
- package/examples/js/instantiate-all-from-json.js +0 -31
- package/examples/js/kraken-create-and-close-position.js +0 -54
- package/examples/js/kraken-fetch-order-trades.js +0 -33
- package/examples/js/kraken-margin-trading.js +0 -89
- package/examples/js/kucoin-rate-limit.js +0 -38
- package/examples/js/latoken-example.js +0 -108
- package/examples/js/live-orderbook.js +0 -106
- package/examples/js/live-ticker.js +0 -80
- package/examples/js/live-tickers.js +0 -74
- package/examples/js/load-all-contracts.js +0 -41
- package/examples/js/load-all-symbols-at-once.js +0 -69
- package/examples/js/load-all-tickers-at-once.js +0 -91
- package/examples/js/load-markets-to-files.js +0 -57
- package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +0 -61
- package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +0 -91
- package/examples/js/margin-loan-borrow-buy-sell-repay.js +0 -70
- package/examples/js/market-status-and-currency-status.js +0 -29
- package/examples/js/ohlcv-console-chart.js +0 -29
- package/examples/js/okex-fetch-closed-orders-archive.js +0 -31
- package/examples/js/okex-transfer.js +0 -51
- package/examples/js/okx-poll-fetch-my-trades.js +0 -37
- package/examples/js/okx-poll-rate-limit.js +0 -48
- package/examples/js/order-book-extra-level-depth-param.js +0 -20
- package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +0 -49
- package/examples/js/poll-ohlcv.js +0 -43
- package/examples/js/poloniex-fetch-order-books.js +0 -35
- package/examples/js/poloniex-limits-amount-min.js +0 -62
- package/examples/js/proxy-round-robin.js +0 -98
- package/examples/js/proxy-usage.js +0 -32
- package/examples/js/sample-local-proxy-server-with-cors.js +0 -12
- package/examples/js/search-all-exchanges.js +0 -159
- package/examples/js/shared-load-markets.js +0 -80
- package/examples/js/sort-swap-markets-by-hourly-price-change.js +0 -55
- package/examples/js/symbols.js +0 -110
- package/examples/js/theocean.js +0 -41
- package/examples/js/tickers.js +0 -106
- package/examples/js/validate-paginated-data.js +0 -61
- package/examples/js/watch-OHLCV-For-Symbols.js +0 -15
- package/examples/js/watch-OHLCV.js +0 -12
- package/examples/js/watch-OrderBook-For-Symbols.js +0 -11
- package/examples/js/watch-Trades-For-Symbols.js +0 -11
- package/examples/js/watch-tickers.js +0 -11
- package/examples/js/watchOHLCVForSymbols.js +0 -15
- package/examples/js/watchOrderBookForSymbols.js +0 -11
- package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +0 -2
- package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +0 -1
- package/examples/js/watchPositions-many-exchanges-continuosly.js +0 -49
- package/examples/js/watchPositions.d.ts +0 -2
- package/examples/js/watchPositions.d.ts.map +0 -1
- package/examples/js/watchPositions.js +0 -13
- package/examples/js/watchPositionsForSymbols.d.ts +0 -2
- package/examples/js/watchPositionsForSymbols.d.ts.map +0 -1
- package/examples/js/watchPositionsForSymbols.js +0 -14
- package/examples/js/watchTradesForSymbols.js +0 -11
- package/examples/js/withdraw-from-one-exchange-to-another.js +0 -50
- package/examples/php/README.md +0 -7
- package/examples/py/README.md +0 -15
- package/examples/py/playing_with_ccxt_example.ipynb +0 -222
- package/examples/ts/.eslintrc +0 -111
- package/examples/ts/benchmark.ts +0 -134
- package/examples/ts/build-ohlcv-bars.ts +0 -53
- package/examples/ts/cli.ts +0 -397
- package/examples/ts/compare-two-exchanges-capabilities.ts +0 -36
- package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +0 -89
- package/examples/ts/create-order-ws-example.ts +0 -33
- package/examples/ts/create-orders-example.ts +0 -21
- package/examples/ts/create-trailing-amount-order.ts +0 -37
- package/examples/ts/create-trailing-percent-order.ts +0 -37
- package/examples/ts/custom-proxy-agent-for-js.ts +0 -14
- package/examples/ts/fetch-futures/package-lock.json +0 -116
- package/examples/ts/fetch-futures/package.json +0 -34
- package/examples/ts/fetch-futures/prettier.config.js +0 -4
- package/examples/ts/fetch-futures/src/index.ts +0 -28
- package/examples/ts/fetch-futures/tsconfig.json +0 -28
- package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +0 -44
- package/examples/ts/fetch-ohlcv.ts +0 -17
- package/examples/ts/fetch-tickers/package-lock.json +0 -116
- package/examples/ts/fetch-tickers/package.json +0 -34
- package/examples/ts/fetch-tickers/prettier.config.js +0 -4
- package/examples/ts/fetch-tickers/src/index.ts +0 -21
- package/examples/ts/fetch-tickers/tsconfig.json +0 -28
- package/examples/ts/how-to-import-one-exchange-esm.ts +0 -11
- package/examples/ts/kraken-create-and-close-position.ts +0 -69
- package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +0 -72
- package/examples/ts/nextjs-page-router/.eslintrc.json +0 -3
- package/examples/ts/nextjs-page-router/README.md +0 -43
- package/examples/ts/nextjs-page-router/next.config.js +0 -6
- package/examples/ts/nextjs-page-router/package-lock.json +0 -7425
- package/examples/ts/nextjs-page-router/package.json +0 -28
- package/examples/ts/nextjs-page-router/postcss.config.js +0 -6
- package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
- package/examples/ts/nextjs-page-router/src/pages/_app.tsx +0 -6
- package/examples/ts/nextjs-page-router/src/pages/_document.tsx +0 -13
- package/examples/ts/nextjs-page-router/src/pages/balance.tsx +0 -46
- package/examples/ts/nextjs-page-router/src/pages/index.tsx +0 -8
- package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +0 -61
- package/examples/ts/nextjs-page-router/src/styles/globals.css +0 -27
- package/examples/ts/nextjs-page-router/tailwind.config.ts +0 -20
- package/examples/ts/nextjs-page-router/tsconfig.json +0 -22
- package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +0 -62
- package/examples/ts/proxy-usage.ts +0 -41
- package/examples/ts/sample-local-proxy-server-with-cors.ts +0 -15
- package/examples/ts/watch-OHLCV-For-Symbols.ts +0 -17
- package/examples/ts/watch-OHLCV.ts +0 -14
- package/examples/ts/watch-OrderBook-For-Symbols.ts +0 -13
- package/examples/ts/watch-Trades-For-Symbols.ts +0 -13
- package/examples/ts/watch-tickers.ts +0 -13
- package/examples/ts/watchPositions-many-exchanges-continuosly.ts +0 -53
- package/examples/ts/watchPositions.ts +0 -15
- package/examples/ts/watchPositionsForSymbols.ts +0 -16
- package/examples/tsconfig.json +0 -27
- package/examples2md.js +0 -79
- package/gource.sh +0 -3
- package/index.html +0 -7
- package/jsdoc2md.js +0 -122
- package/multilang.sh +0 -164
- package/pro-tests.json +0 -57
- package/pyproject.toml +0 -8
- package/rollup.config.js +0 -60
- package/skip-tests.json +0 -1653
- package/test-commonjs.cjs +0 -65
- package/tests-manager.sh +0 -96
- package/tsconfig.json +0 -111
- package/webpack.config.js +0 -46
|
@@ -1,70 +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_KEY',
|
|
6
|
-
'options': {
|
|
7
|
-
'defaultType': 'swap',
|
|
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 swap (limit) order
|
|
17
|
-
let symbol = 'ADA/USDT:USDT'
|
|
18
|
-
let type = 'limit'
|
|
19
|
-
let side = 'buy'
|
|
20
|
-
let offset= 'open'
|
|
21
|
-
let leverage = 1
|
|
22
|
-
let amount = 1
|
|
23
|
-
let price = 1 // 1 contract = 10 ADA = 10 usd in this case
|
|
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 an inverse swap (limit) order
|
|
50
|
-
symbol = 'ADA/USD:ADA'
|
|
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
|
-
}) ()
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import ccxt from '../../js/ccxt.js';
|
|
2
|
-
import ololog from 'ololog'
|
|
3
|
-
|
|
4
|
-
const log = ololog.configure .unlimited.handleNodeErrors (),
|
|
5
|
-
{ NotSupported } = ccxt,
|
|
6
|
-
enableRateLimit = true,
|
|
7
|
-
symbol = 'ADA/BTC',
|
|
8
|
-
side = 'buy',
|
|
9
|
-
// set createMarketBuyOrderRequiresPrice to true or false to see the difference
|
|
10
|
-
type = 'market',
|
|
11
|
-
// default is true
|
|
12
|
-
createMarketBuyOrderRequiresPrice = true,
|
|
13
|
-
amount = 191.03,
|
|
14
|
-
price = 0.000011,
|
|
15
|
-
options = { createMarketBuyOrderRequiresPrice },
|
|
16
|
-
exchange = new ccxt.huobipro ({ enableRateLimit, options });
|
|
17
|
-
|
|
18
|
-
// This is an example that demonstrates the issues discussed here:
|
|
19
|
-
// https://github.com/ccxt/ccxt/issues/564
|
|
20
|
-
// https://github.com/ccxt/ccxt/issues/3427
|
|
21
|
-
// https://github.com/ccxt/ccxt/issues/3460
|
|
22
|
-
// https://github.com/ccxt/ccxt/issues/4799
|
|
23
|
-
|
|
24
|
-
log.green ('CCXT', ccxt.version)
|
|
25
|
-
|
|
26
|
-
;(async () => {
|
|
27
|
-
|
|
28
|
-
// preload them first
|
|
29
|
-
await exchange.loadMarkets ()
|
|
30
|
-
|
|
31
|
-
// huobipro has this
|
|
32
|
-
if (!exchange.has['fetchTradingLimits']) {
|
|
33
|
-
throw new NotSupported (exchange.id + ' does not have fetchTradingLimits() yet, make sure your version of CCXT is up to date');
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// In this particular case it requires an array of symbols
|
|
37
|
-
// otherwise it will load all of them one by one.
|
|
38
|
-
// Loading all limits without specifying
|
|
39
|
-
// the array of symbols might take a lot of time.
|
|
40
|
-
|
|
41
|
-
// The array of symbols will contain just one symbol of interest.
|
|
42
|
-
const arrayOfSymbols = [ symbol ]
|
|
43
|
-
|
|
44
|
-
const allLimits = await exchange.fetchTradingLimits (arrayOfSymbols)
|
|
45
|
-
|
|
46
|
-
// { 'ADA/BTC': { info: { symbol: "adabtc",
|
|
47
|
-
// 'buy-limit-must-less-than': 1.1,
|
|
48
|
-
// 'sell-limit-must-greater-than': 0.9,
|
|
49
|
-
// 'limit-order-must-greater-than': 0.1,
|
|
50
|
-
// 'limit-order-must-less-than': 5000000,
|
|
51
|
-
// 'market-buy-order-must-greater-than': 0.0001,
|
|
52
|
-
// 'market-buy-order-must-less-than': 100,
|
|
53
|
-
// 'market-sell-order-must-greater-than': 0.1,
|
|
54
|
-
// 'market-sell-order-must-less-than': 500000,
|
|
55
|
-
// 'limit-order-before-open-greater-than': 999999999,
|
|
56
|
-
// 'limit-order-before-open-less-than': 0,
|
|
57
|
-
// 'circuit-break-when-greater-than': 10000,
|
|
58
|
-
// 'circuit-break-when-less-than': 10,
|
|
59
|
-
// 'market-sell-order-rate-must-less-than': 0.1,
|
|
60
|
-
// 'market-buy-order-rate-must-less-than': 0.1 },
|
|
61
|
-
// limits: { amount: { min: 0.1, max: 5000000 } } } }
|
|
62
|
-
|
|
63
|
-
const limits = allLimits[symbol]
|
|
64
|
-
log.yellow (symbol, 'limits:')
|
|
65
|
-
log.yellow (limits)
|
|
66
|
-
|
|
67
|
-
// To make things a bit more complicated huobipro specifies
|
|
68
|
-
// different minimums for market and limit orders
|
|
69
|
-
// and different minimums for buy/sell directions
|
|
70
|
-
// therefore we have to work with it in an exchange-specific way
|
|
71
|
-
// using the 'info' field from the response – that is
|
|
72
|
-
// until this aspect is completely unified in ccxt.
|
|
73
|
-
|
|
74
|
-
const info = limits['info']
|
|
75
|
-
const typeSide = type + '-' + side
|
|
76
|
-
|
|
77
|
-
const min = info[typeSide + '-order-must-greater-than']
|
|
78
|
-
const max = info[typeSide + '-order-must-less-than']
|
|
79
|
-
|
|
80
|
-
// huobipro requires the amount in quote currency for market sell orders
|
|
81
|
-
// huobipro requires the cost in quote currency for market buy orders
|
|
82
|
-
// cost = amount * price
|
|
83
|
-
|
|
84
|
-
const cost = createMarketBuyOrderRequiresPrice ? (amount * price) : amount
|
|
85
|
-
|
|
86
|
-
let color = 'red'
|
|
87
|
-
|
|
88
|
-
if ((min !== undefined) && (cost < min)) {
|
|
89
|
-
log[color] ('The cost is below minimum:', cost, '<', min)
|
|
90
|
-
} else if ((max !== undefined) && (cost > max)) {
|
|
91
|
-
log[color] ('The cost is above maximum:', cost, '>', max)
|
|
92
|
-
} else {
|
|
93
|
-
color = 'green'
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
log[color] ({ min, max, cost })
|
|
97
|
-
|
|
98
|
-
}) ()
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
const ccxt = require('ccxt');
|
|
3
|
-
|
|
4
|
-
console.log('--------------------------------------------')
|
|
5
|
-
console.log('Yey importing ccxt as a cjs module!!!!!')
|
|
6
|
-
console.log('Version:', ccxt.version)
|
|
7
|
-
console.log('--------------------------------------------')
|
|
8
|
-
|
|
9
|
-
const exchange = new ccxt.huobi ({
|
|
10
|
-
'apiKey': 'YOUR_API_KEY',
|
|
11
|
-
'secret': 'YOUR_SECRET_KEY',
|
|
12
|
-
'options': {
|
|
13
|
-
'defaultType': 'swap',
|
|
14
|
-
},
|
|
15
|
-
})
|
|
16
|
-
;(async () => {
|
|
17
|
-
const result = await exchange.fetchBalance();
|
|
18
|
-
console.log(result)
|
|
19
|
-
}) ()
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import {version, huobi} from 'ccxt';
|
|
2
|
-
|
|
3
|
-
console.log('--------------------------------------------')
|
|
4
|
-
console.log('Yey importing ccxt as an ESM module!!!!!')
|
|
5
|
-
console.log('Version:', version)
|
|
6
|
-
console.log('--------------------------------------------')
|
|
7
|
-
|
|
8
|
-
const exchange = new huobi ({
|
|
9
|
-
'apiKey': 'YOUR_API_KEY',
|
|
10
|
-
'secret': 'YOUR_SECRET_KEY',
|
|
11
|
-
'options': {
|
|
12
|
-
'defaultType': 'swap',
|
|
13
|
-
},
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
;(async () => {
|
|
17
|
-
const result = await exchange.fetchBalance();
|
|
18
|
-
console.log(result)
|
|
19
|
-
}) ()
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import ccxt from '../../js/ccxt.js';
|
|
2
|
-
|
|
3
|
-
const idex = ccxt.idex ({
|
|
4
|
-
'apiKey': 'YOUR_IDEX_API_KEY',
|
|
5
|
-
'secret': 'YOUR_IDEX_SECRET',
|
|
6
|
-
'walletAddress': '0xYOUR_ETHEREUM_WALLET_ADDRESS',
|
|
7
|
-
'privateKey': '0xYOUR_ETHEREUM_PRIVATE_KEY',
|
|
8
|
-
'verbose': 0,
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
;(async () => {
|
|
12
|
-
console.log (await idex.fetchBalance ())
|
|
13
|
-
}) ()
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import ccxt from '../../js/ccxt.js';
|
|
4
|
-
|
|
5
|
-
async function test () {
|
|
6
|
-
|
|
7
|
-
let exchanges = {
|
|
8
|
-
"bittrex": {
|
|
9
|
-
"apiKey": "YOUR_API_KEY",
|
|
10
|
-
"secret": "YOUR_SECRET",
|
|
11
|
-
},
|
|
12
|
-
"bitfinex": {
|
|
13
|
-
"apiKey": "YOUR_API_KEY",
|
|
14
|
-
"secret": "YOUR_SECRET"
|
|
15
|
-
},
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
let ids = ccxt.exchanges.filter (id => id in exchanges)
|
|
19
|
-
|
|
20
|
-
await Promise.all (ids.map (async id => {
|
|
21
|
-
|
|
22
|
-
console.log (exchanges[id])
|
|
23
|
-
|
|
24
|
-
// instantiate the exchange
|
|
25
|
-
let exchange = new ccxt[id] (exchanges[id])
|
|
26
|
-
console.log (exchange.id, exchange.apiKey)
|
|
27
|
-
exchanges[id] = exchange
|
|
28
|
-
|
|
29
|
-
// load markets
|
|
30
|
-
await exchange.loadMarkets ()
|
|
31
|
-
console.log (exchange.id, 'loaded')
|
|
32
|
-
|
|
33
|
-
// check the balance
|
|
34
|
-
if (exchange.apiKey) {
|
|
35
|
-
let balance = await exchange.fetchBalance ()
|
|
36
|
-
console.log (exchange.id, balance)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return exchange
|
|
40
|
-
}))
|
|
41
|
-
|
|
42
|
-
// when all of them are ready, do your other things
|
|
43
|
-
console.log ('Loaded exchanges:', ids.join (', '))
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
test ()
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import ccxt from '../../js/ccxt.js';
|
|
4
|
-
import settings from './credentials.json';
|
|
5
|
-
|
|
6
|
-
async function test () {
|
|
7
|
-
|
|
8
|
-
const ids = ccxt.exchanges.filter (id => id in settings)
|
|
9
|
-
|
|
10
|
-
const exchanges = ccxt.indexBy (await Promise.all (ids.map (async id => {
|
|
11
|
-
|
|
12
|
-
// instantiate the exchange
|
|
13
|
-
let exchange = new ccxt[id] (settings[id])
|
|
14
|
-
|
|
15
|
-
// load markets
|
|
16
|
-
await exchange.loadMarkets ()
|
|
17
|
-
|
|
18
|
-
// check the balance
|
|
19
|
-
if (exchange.apiKey) {
|
|
20
|
-
let balance = await exchange.fetchBalance ()
|
|
21
|
-
console.log (exchange.id, balance['free'])
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return exchange
|
|
25
|
-
})), 'id')
|
|
26
|
-
|
|
27
|
-
// when all of them are ready, do your other things
|
|
28
|
-
console.log ('Loaded exchanges:', Object.keys (exchanges).join (', '))
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
test ()
|
|
@@ -1,54 +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
|
-
const exchange = new ccxt.kraken({
|
|
8
|
-
"apiKey": "YOUR_API_KEY",
|
|
9
|
-
"secret": "YOUR_API_SECRET",
|
|
10
|
-
});
|
|
11
|
-
const symbol = 'UNI/USD';
|
|
12
|
-
let side = 'buy'; // set it to 'buy' for a long position, 'sell' for a short position
|
|
13
|
-
const order_type = 'market'; // set it to 'market' or 'limit'
|
|
14
|
-
const amount = 1;
|
|
15
|
-
const leverage = 2;
|
|
16
|
-
await exchange.loadMarkets();
|
|
17
|
-
const market = exchange.market(symbol);
|
|
18
|
-
// if order_type is 'market', then price is not needed
|
|
19
|
-
let price = undefined;
|
|
20
|
-
// if order_type is 'limit', then set a price at your desired level
|
|
21
|
-
// you can fetch the ticker and update price
|
|
22
|
-
// const ticker = await exchange.fetchTicker (symbol);
|
|
23
|
-
// const last_price = ticker['last'];
|
|
24
|
-
// const ask_price = ticker['ask'];
|
|
25
|
-
// const bid_price = ticker['bid'];
|
|
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
|
-
const params = {
|
|
30
|
-
'leverage': leverage,
|
|
31
|
-
};
|
|
32
|
-
// log
|
|
33
|
-
console.log('Going to open a position', 'for', amount, 'worth', amount, market['base'], '~', market['settle'], 'using', side, order_type, 'order (', (order_type === 'limit' ? exchange.priceToPrecision(symbol, price) : ''), '), using the following params:');
|
|
34
|
-
console.log(params);
|
|
35
|
-
console.log('-----------------------------------------------------------------------');
|
|
36
|
-
// exchange.verbose = True // uncomment for debugging purposes if necessary
|
|
37
|
-
try {
|
|
38
|
-
const created_order = await exchange.createOrder(symbol, order_type, side, amount, price, params);
|
|
39
|
-
console.log("Created an order", created_order);
|
|
40
|
-
// Fetch all your closed orders for this symbol (because we used market order)
|
|
41
|
-
// - use 'fetchClosedOrders' or 'fetchOrders' and filter with 'closed' status
|
|
42
|
-
const all_closed_orders = await exchange.fetchClosedOrders(symbol);
|
|
43
|
-
console.log("Fetched all your closed orders for this symbol", all_closed_orders);
|
|
44
|
-
const all_open_positions = await exchange.fetchPositions(symbol);
|
|
45
|
-
console.log("Fetched all your positions for this symbol", all_open_positions);
|
|
46
|
-
// To close a position:
|
|
47
|
-
// - long position (buy), you can create a sell order: exchange.createOrder (symbol, order_type, 'sell', amount, price, params);
|
|
48
|
-
// - short position (sell), you can create a buy order: exchange.createOrder (symbol, order_type, 'buy', amount, price, params);
|
|
49
|
-
}
|
|
50
|
-
catch (e) {
|
|
51
|
-
console.log(e.toString());
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
await example();
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import ccxt from '../../js/ccxt.js';
|
|
2
|
-
|
|
3
|
-
(async () => {
|
|
4
|
-
|
|
5
|
-
const exchange = new ccxt.kraken ({
|
|
6
|
-
'apiKey': 'YOUR_API_KEY',
|
|
7
|
-
'secret': 'YOUR_SECRET',
|
|
8
|
-
// 'verbose': true,
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
const orders = await exchange.fetchClosedOrders ();
|
|
12
|
-
|
|
13
|
-
for (let i = 0; i < orders.length; i++) {
|
|
14
|
-
const order = await exchange.fetchOrder (orders[i]['id']);
|
|
15
|
-
const trades = await exchange.fetchOrderTrades (order['id'], undefined, undefined, undefined, order);
|
|
16
|
-
console.log (trades);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
// alternatively:
|
|
21
|
-
//
|
|
22
|
-
// const params = {
|
|
23
|
-
// 'trades': [
|
|
24
|
-
// 'TT5UC3-GOIRW-6AZZ6R',
|
|
25
|
-
// 'TIY6G4-LKLAI-Y3GD4A',
|
|
26
|
-
// 'T57FVC-OB4LN-Z55WUL',
|
|
27
|
-
// 'TIMIRG-WUNNE-RRJ6GT',
|
|
28
|
-
// ]
|
|
29
|
-
// }
|
|
30
|
-
//
|
|
31
|
-
// const trades = await exchange.fetchOrderTrades (order['id'], undefined, undefined, undefined, params);
|
|
32
|
-
|
|
33
|
-
}) ()
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import ccxt from '../../js/ccxt.js';
|
|
4
|
-
|
|
5
|
-
console.log ('CCXT Version:', ccxt.version)
|
|
6
|
-
|
|
7
|
-
async function main () {
|
|
8
|
-
|
|
9
|
-
const exchange = new ccxt.kraken ({
|
|
10
|
-
"apiKey": "YOUR_API_KEY",
|
|
11
|
-
"secret": "YOUR_SECRET",
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
console.log ('-----------------------------------------------------------')
|
|
15
|
-
|
|
16
|
-
console.log ('Loading markets...')
|
|
17
|
-
const markets = await exchange.loadMarkets ()
|
|
18
|
-
console.log ('Markets loaded')
|
|
19
|
-
|
|
20
|
-
// exchange.verbose = true // uncomment for debugging purposes
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
|
|
24
|
-
const symbol = 'ETH/USDT'
|
|
25
|
-
, market = exchange.market (symbol)
|
|
26
|
-
, { base, quote } = market
|
|
27
|
-
, type = 'market'
|
|
28
|
-
, amount = market['limits']['amount']['min']
|
|
29
|
-
, price = undefined
|
|
30
|
-
, params = {
|
|
31
|
-
'leverage': 2,
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
console.log ('-----------------------------------------------------------')
|
|
35
|
-
|
|
36
|
-
// https://www.kraken.com/en-us/features/api#add-standard-order
|
|
37
|
-
|
|
38
|
-
console.log ('Placing order...')
|
|
39
|
-
let order = await exchange.createOrder (symbol, type, 'buy', amount, price, params)
|
|
40
|
-
console.log ('Order placed:')
|
|
41
|
-
console.log (order)
|
|
42
|
-
|
|
43
|
-
console.log ('-----------------------------------------------------------')
|
|
44
|
-
|
|
45
|
-
// https://www.kraken.com/en-us/features/api#get-open-positions
|
|
46
|
-
|
|
47
|
-
console.log ('Fetching open positions...')
|
|
48
|
-
const positionsParams = { 'docalcs': true }
|
|
49
|
-
let openPositions = await exchange.fetchPositions (positionsParams)
|
|
50
|
-
console.log ('Current positions:')
|
|
51
|
-
console.log (openPositions)
|
|
52
|
-
|
|
53
|
-
console.log ('-----------------------------------------------------------')
|
|
54
|
-
|
|
55
|
-
console.log ('Fetching balance...')
|
|
56
|
-
let balance = await exchange.fetchTotalBalance ()
|
|
57
|
-
console.log ('Fetched balance:')
|
|
58
|
-
console.log (base, balance[base], '(base)')
|
|
59
|
-
console.log (quote, balance[quote], '(quote)')
|
|
60
|
-
|
|
61
|
-
console.log ('-----------------------------------------------------------')
|
|
62
|
-
|
|
63
|
-
console.log ('Closing the position...')
|
|
64
|
-
order = await exchange.createOrder (symbol, type, 'sell', amount, price, params)
|
|
65
|
-
console.log ('Got a response:')
|
|
66
|
-
console.log (order)
|
|
67
|
-
|
|
68
|
-
console.log ('-----------------------------------------------------------')
|
|
69
|
-
|
|
70
|
-
console.log ('Fetching open positions again...')
|
|
71
|
-
openPositions = await exchange.fetchPositions (positionsParams)
|
|
72
|
-
console.log ('Current positions:')
|
|
73
|
-
console.log (openPositions)
|
|
74
|
-
|
|
75
|
-
console.log ('-----------------------------------------------------------')
|
|
76
|
-
|
|
77
|
-
console.log ('Fetching balance...')
|
|
78
|
-
balance = await exchange.fetchTotalBalance ()
|
|
79
|
-
console.log ('Fetched balance:')
|
|
80
|
-
console.log (base, balance[base], '(base)')
|
|
81
|
-
console.log (quote, balance[quote], '(quote)')
|
|
82
|
-
|
|
83
|
-
} catch (e) {
|
|
84
|
-
|
|
85
|
-
console.log (e.constructor.name, e.message)
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
main ()
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import ccxt from '../../js/ccxt.js';
|
|
4
|
-
|
|
5
|
-
async function main () {
|
|
6
|
-
|
|
7
|
-
const exchange = new ccxt.kucoin()
|
|
8
|
-
const markets = await exchange.loadMarkets ()
|
|
9
|
-
const timeframe = '5m'
|
|
10
|
-
const symbol = 'BTC/USDT'
|
|
11
|
-
const since = undefined
|
|
12
|
-
const limit = 1000
|
|
13
|
-
|
|
14
|
-
let i = 0
|
|
15
|
-
while (true) {
|
|
16
|
-
try {
|
|
17
|
-
const ohlcvs = await exchange.fetchOHLCV(symbol, timeframe, since, limit)
|
|
18
|
-
const now = exchange.milliseconds()
|
|
19
|
-
const datetime = exchange.iso8601(now)
|
|
20
|
-
console.log(datetime, i, 'fetched', ohlcvs.length, symbol, timeframe, 'candles',
|
|
21
|
-
'from', exchange.iso8601(ohlcvs[0][0]),
|
|
22
|
-
'to', exchange.iso8601(ohlcvs[ohlcvs.length-1][0]))
|
|
23
|
-
} catch (e) {
|
|
24
|
-
if (e instanceof ccxt.RateLimitExceeded) {
|
|
25
|
-
const now = exchange.milliseconds()
|
|
26
|
-
const datetime = exchange.iso8601(now)
|
|
27
|
-
console.log(datetime, i, e.constructor.name, e.message)
|
|
28
|
-
await exchange.sleep(10000)
|
|
29
|
-
} else {
|
|
30
|
-
console.log(e.constructor.name, e.message)
|
|
31
|
-
throw e
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
i += 1
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
main ()
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import ccxt from '../../js/ccxt.js';
|
|
4
|
-
import ololog from 'ololog';
|
|
5
|
-
import asTable from 'as-table';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const table = asTable.configure ({ delimiter: ' | ' }),
|
|
9
|
-
//-----------------------------------------------------------------------------
|
|
10
|
-
log = ololog.unlimited.noLocate.handleNodeErrors ();(async function main () {
|
|
11
|
-
|
|
12
|
-
const symbol = 'BTC/USDT'
|
|
13
|
-
|
|
14
|
-
const exchange = new ccxt.latoken ({
|
|
15
|
-
'verbose': process.argv.includes ('--verbose'),
|
|
16
|
-
// uncomment and change for your keys to enable private calls
|
|
17
|
-
// 'apiKey': 'YOUR_API_KEY',
|
|
18
|
-
// 'secret': 'YOUR_API_SECRET',
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
await exchange.loadMarkets ()
|
|
22
|
-
|
|
23
|
-
log ('-------------------------------------------------------------------')
|
|
24
|
-
|
|
25
|
-
log (exchange.id, 'has', exchange.has)
|
|
26
|
-
|
|
27
|
-
// public API
|
|
28
|
-
|
|
29
|
-
log ('-------------------------------------------------------------------')
|
|
30
|
-
|
|
31
|
-
const markets = Object.values (exchange.markets)
|
|
32
|
-
log ('Loaded', markets.length, exchange.id, 'markets:')
|
|
33
|
-
log (table (markets.map (x => exchange.omit (x, [ 'info', 'limits', 'precision' ]))))
|
|
34
|
-
|
|
35
|
-
log ('-------------------------------------------------------------------')
|
|
36
|
-
|
|
37
|
-
const currencies = Object.values (exchange.currencies)
|
|
38
|
-
log ('Loaded', currencies.length, exchange.id, 'currencies:')
|
|
39
|
-
log (table (currencies.map (x => exchange.omit (x, [ 'info', 'limits' ]))))
|
|
40
|
-
|
|
41
|
-
log ('-------------------------------------------------------------------')
|
|
42
|
-
|
|
43
|
-
const time = await exchange.fetchTime ()
|
|
44
|
-
log ('Exchange time:', exchange.iso8601 (time))
|
|
45
|
-
|
|
46
|
-
log ('-------------------------------------------------------------------')
|
|
47
|
-
|
|
48
|
-
const ticker = await exchange.fetchTicker (symbol)
|
|
49
|
-
log (ticker)
|
|
50
|
-
|
|
51
|
-
log ('-------------------------------------------------------------------')
|
|
52
|
-
|
|
53
|
-
const tickers = await exchange.fetchTickers ()
|
|
54
|
-
log (table (Object.values (tickers).map (x =>
|
|
55
|
-
exchange.omit (x, [ 'info', 'bid', 'ask', 'bidVolume', 'askVolume', 'timestamp' ]))))
|
|
56
|
-
|
|
57
|
-
log ('-------------------------------------------------------------------')
|
|
58
|
-
|
|
59
|
-
const orderbook = await exchange.fetchOrderBook (symbol)
|
|
60
|
-
log (orderbook)
|
|
61
|
-
|
|
62
|
-
log ('-------------------------------------------------------------------')
|
|
63
|
-
|
|
64
|
-
const trades = await exchange.fetchTrades (symbol)
|
|
65
|
-
log (table (trades.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
|
|
66
|
-
|
|
67
|
-
log ('-------------------------------------------------------------------')
|
|
68
|
-
|
|
69
|
-
// private API
|
|
70
|
-
|
|
71
|
-
if (exchange.checkRequiredCredentials (false)) {
|
|
72
|
-
|
|
73
|
-
const balance = await exchange.fetchBalance ()
|
|
74
|
-
log (exchange.omit (balance, [ 'info' ]))
|
|
75
|
-
|
|
76
|
-
log ('-------------------------------------------------------------------')
|
|
77
|
-
|
|
78
|
-
const order = await exchange.createOrder (symbol, 'limit', 'buy', 0.001, 10000)
|
|
79
|
-
log (order)
|
|
80
|
-
|
|
81
|
-
log ('-------------------------------------------------------------------')
|
|
82
|
-
|
|
83
|
-
const openOrders = await exchange.fetchOpenOrders (symbol)
|
|
84
|
-
log (table (openOrders.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
|
|
85
|
-
|
|
86
|
-
log ('-------------------------------------------------------------------')
|
|
87
|
-
|
|
88
|
-
const canceled = await exchange.cancelOrder (order['id'], order['symbol'])
|
|
89
|
-
log (canceled)
|
|
90
|
-
|
|
91
|
-
log ('-------------------------------------------------------------------')
|
|
92
|
-
|
|
93
|
-
const closedOrders = await exchange.fetchClosedOrders (symbol)
|
|
94
|
-
log (table (closedOrders.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
|
|
95
|
-
|
|
96
|
-
log ('-------------------------------------------------------------------')
|
|
97
|
-
|
|
98
|
-
const canceledOrders = await exchange.fetchCanceledOrders (symbol)
|
|
99
|
-
log (table (canceledOrders.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
|
|
100
|
-
|
|
101
|
-
log ('-------------------------------------------------------------------')
|
|
102
|
-
|
|
103
|
-
const myTrades = await exchange.fetchMyTrades (symbol)
|
|
104
|
-
log (table (myTrades.map (x => exchange.omit (x, [ 'info', 'timestamp' ]))))
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
}) ()
|