From 8fda5eddb56178a0c1e0e247b5c7f45ffc739c92 Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Wed, 28 Oct 2020 16:18:49 +0800 Subject: [PATCH] 修复K线生成问题 --- src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java index df66f03..ed484ac 100644 --- a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java +++ b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java @@ -339,10 +339,24 @@ } // 如果开盘价为0,则设置为前一个价格 if(kLine.getOpen().compareTo(BigDecimal.ZERO) == 0) { - kLine.setOpen(coinThumb.getClose()); - kLine.setClose(coinThumb.getClose()); - kLine.setLow(coinThumb.getClose()); - kLine.setHigh(coinThumb.getClose()); + // 查询前一根K线 TODO + String key = "KINE_" + symbol + "/USDT_" + period; + Object data = redisUtils.get(key); + List list = new ArrayList(); + if (data != null) { + list = (List) data; + Candlestick o = (Candlestick)list.get(list.size() - 1); + kLine.setOpen(o.getClose()); + kLine.setClose(o.getClose()); + kLine.setLow(o.getClose()); + kLine.setHigh(o.getClose()); + }else{ + kLine.setOpen(coinThumb.getClose()); + kLine.setClose(coinThumb.getClose()); + kLine.setLow(coinThumb.getClose()); + kLine.setHigh(coinThumb.getClose()); + } + } //logger.info("generate " + range + rangeUnit + " kline in {},data={}", df.format(new Date(kLine.getTimestamp())), JSON.toJSONString(kLine)); service.saveKLine(symbol,period, kLine); -- Gitblit v1.9.1