@method @name cex#fetchTrades @description get the list of most recent trades for a particular symbol @see https://trade.cex.io/docs/#rest-public-api-calls-trade-history @param {string} symbol unified symbol of the market to fetch trades for @param {int} [since] timestamp in ms of the earliest trade
(Object symbol, Object... optionalArgs)
| 683 | * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=public-trades} |
| 684 | */ |
| 685 | public java.util.concurrent.CompletableFuture<Object> fetchTrades(Object symbol, Object... optionalArgs) |
| 686 | { |
| 687 | |
| 688 | return java.util.concurrent.CompletableFuture.supplyAsync(() -> { |
| 689 | |
| 690 | Object since = Helpers.getArg(optionalArgs, 0, null); |
| 691 | Object limit = Helpers.getArg(optionalArgs, 1, null); |
| 692 | Object parameters = Helpers.getArg(optionalArgs, 2, new java.util.HashMap<String, Object>() {{}}); |
| 693 | (this.loadMarkets()).join(); |
| 694 | Object market = this.market(symbol); |
| 695 | Object request = new java.util.HashMap<String, Object>() {{ |
| 696 | put( "pair", Helpers.GetValue(market, "id") ); |
| 697 | }}; |
| 698 | if (Helpers.isTrue(!Helpers.isEqual(since, null))) |
| 699 | { |
| 700 | Helpers.addElementToObject(request, "fromDateISO", this.iso8601(since)); |
| 701 | } |
| 702 | Object until = null; |
| 703 | var untilparametersVariable = this.handleParamInteger2(parameters, "until", "till"); |
| 704 | until = ((java.util.List<Object>) untilparametersVariable).get(0); |
| 705 | parameters = ((java.util.List<Object>) untilparametersVariable).get(1); |
| 706 | if (Helpers.isTrue(!Helpers.isEqual(until, null))) |
| 707 | { |
| 708 | Helpers.addElementToObject(request, "toDateISO", this.iso8601(until)); |
| 709 | } |
| 710 | if (Helpers.isTrue(!Helpers.isEqual(limit, null))) |
| 711 | { |
| 712 | Helpers.addElementToObject(request, "pageSize", Helpers.mathMin(limit, 10000)); // has a bug, still returns more trades |
| 713 | } |
| 714 | Object response = (this.publicPostGetTradeHistory(this.extend(request, parameters))).join(); |
| 715 | // |
| 716 | // { |
| 717 | // "ok": "ok", |
| 718 | // "data": { |
| 719 | // "pageSize": "10", |
| 720 | // "trades": [ |
| 721 | // { |
| 722 | // "tradeId": "1728630559823-0", |
| 723 | // "dateISO": "2024-10-11T07:09:19.823Z", |
| 724 | // "side": "SELL", |
| 725 | // "price": "60879.5", |
| 726 | // "amount": "0.00165962" |
| 727 | // }, |
| 728 | // ... followed by older trades |
| 729 | // |
| 730 | Object data = this.safeDict(response, "data", new java.util.HashMap<String, Object>() {{}}); |
| 731 | Object trades = this.safeList(data, "trades", new java.util.ArrayList<Object>(java.util.Arrays.asList())); |
| 732 | return this.parseTrades(trades, market, since, limit); |
| 733 | }); |
| 734 | |
| 735 | } |
| 736 | |
| 737 | public Object parseTrade(Object trade, Object... optionalArgs) |
| 738 | { |
nothing calls this directly
no test coverage detected