| | |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<Kline> kline(String symbol, String period, Integer num) { |
| | | List<Kline> list = new ArrayList<Kline>(); |
| | | Item item = itemService.findBySymbol(symbol); |
| | | if (item == null) { |
| | | return list; |
| | | } |
| | | try { |
| | | Map<String, Object> param = new HashMap<String, Object>(); |
| | | param.put("symbol", symbol); |
| | | param.put("period", period); |
| | | if (num == null) { |
| | | if (Kline.PERIOD_1MIN.equals(period)) { |
| | | param.put("size", 1440); |
| | | } |
| | | if (Kline.PERIOD_5MIN.equals(period)) { |
| | | param.put("size", 576); |
| | | } |
| | | if (Kline.PERIOD_15MIN.equals(period)) { |
| | | param.put("size", 576); |
| | | } |
| | | if (Kline.PERIOD_30MIN.equals(period)) { |
| | | param.put("size", 576); |
| | | } |
| | | if (Kline.PERIOD_60MIN.equals(period)) { |
| | | param.put("size", 576); |
| | | } |
| | | |
| | | if (Kline.PERIOD_4HOUR.equals(period)) { |
| | | param.put("size", 576); |
| | | } |
| | | if (Kline.PERIOD_1DAY.equals(period)) { |
| | | param.put("size", 500); |
| | | } |
| | | if (Kline.PERIOD_1MON.equals(period)) { |
| | | param.put("size", 500); |
| | | } |
| | | if (Kline.PERIOD_1WEEK.equals(period)) { |
| | | param.put("size", 500); |
| | | } |
| | | |
| | | } else { |
| | | param.put("size", num); |
| | | } |
| | | |
| | | String result = HttpHelper.getJSONFromHttp(Config.url + Config.kline, param, HttpMethodType.GET); |
| | | JSONObject resultJson = JSON.parseObject(result); |
| | | String status = resultJson.getString("status"); |
| | | if ("ok".equals(status)) { |
| | | JSONArray dataArray = resultJson.getJSONArray("data"); |
| | | /** |
| | | * 丢弃第一行数据 |
| | | */ |
| | | int start = 1; |
| | | if (num != null && num == 1) start = 0; |
| | | for (int i = start; i < dataArray.size(); i++) { |
| | | JSONObject realtimeJson = dataArray.getJSONObject(i); |
| | | Kline kline = new Kline(); |
| | | kline.setSymbol(item.getSymbol()); |
| | | kline.setPeriod(period); |
| | | kline.setTs(Long.valueOf(realtimeJson.getString("id") + "000")); |
| | | kline.setOpen(realtimeJson.getBigDecimal("open")); |
| | | kline.setClose(realtimeJson.getBigDecimal("close")); |
| | | kline.setHigh(realtimeJson.getBigDecimal("high")); |
| | | kline.setLow(realtimeJson.getBigDecimal("low")); |
| | | kline.setVolume(realtimeJson.getBigDecimal("vol")); |
| | | kline.setAmount(realtimeJson.getBigDecimal("amount")); |
| | | list.add(kline); |
| | | } |
| | | |
| | | } |
| | | } catch (Exception e) { |
| | | logger.error("error", e); |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * 市场深度数据(20档),包装,数据本地化处理 |
| | | */ |