From 89b7fb1d316cfce7eb98a27c8d668da493933f7f Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 25 Feb 2022 16:29:07 +0800 Subject: [PATCH] 20222223 --- src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java | 38 +++++++++++++++++++++++++++++--------- 1 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java index 3953174..e4a08b8 100644 --- a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java +++ b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.huobi.client.model.Candlestick; +import com.xcong.excoin.common.contants.AppContants; import com.xcong.excoin.trade.ExchangeTrade; import com.xcong.excoin.utils.RedisUtils; import lombok.ToString; @@ -314,11 +315,11 @@ Candlestick kLine = new Candlestick(); kLine.setTimestamp(endTick); kLine.setAmount(BigDecimal.ZERO); - kLine.setClose(BigDecimal.ZERO); - kLine.setLow(BigDecimal.ZERO); - kLine.setOpen(BigDecimal.ZERO); + kLine.setClose(AppContants.DEFAULT_PRICE); + kLine.setLow(AppContants.DEFAULT_PRICE); + kLine.setOpen(AppContants.DEFAULT_PRICE); kLine.setVolume(BigDecimal.ZERO); - kLine.setHigh(BigDecimal.ZERO); + kLine.setHigh(AppContants.DEFAULT_PRICE); String rangeUnit = ""; if (field == Calendar.MINUTE) { rangeUnit = "min"; @@ -339,10 +340,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); @@ -362,7 +377,12 @@ // 存储昨日K线 if("day".equals(rangeUnit)){ - redisUtils.set("ROC/USDT",kLine); + System.out.println("存储日K线"); + kLine.setOpen(kLine.getClose()); + kLine.setLow(kLine.getClose()); + kLine.setHigh(kLine.getClose()); + kLine.setVolume(BigDecimal.ZERO); + redisUtils.set("GRICE/USDT",kLine); } } -- Gitblit v1.9.1