| | |
| | | realtime.setName(symbol); |
| | | |
| | | realtime.setTs(kline.getTs() / 1000); |
| | | realtime.setOpen(kline.getOpen().setScale(decimal, RoundingMode.HALF_UP)); |
| | | realtime.setClose(kline.getClose().setScale(decimal, RoundingMode.HALF_UP)); |
| | | realtime.setHigh(kline.getHigh().setScale(decimal, RoundingMode.HALF_UP)); |
| | | realtime.setLow(kline.getLow().setScale(decimal, RoundingMode.HALF_UP)); |
| | | realtime.setOpen(kline.getOpen().setScale(decimal, RoundingMode.DOWN)); |
| | | realtime.setClose(kline.getClose().setScale(decimal, RoundingMode.DOWN)); |
| | | realtime.setHigh(kline.getHigh().setScale(decimal, RoundingMode.DOWN)); |
| | | realtime.setLow(kline.getLow().setScale(decimal, RoundingMode.DOWN)); |
| | | // realtime.setMarketCapital(realtimeJson.getLong("marketCapital")); |
| | | // realtime.setFloatMarketCapital(realtimeJson.getLong("floatMarketCapital")); |
| | | // realtime.setPeForecast(realtimeJson.getBigDecimal("peForecast")); |
| | |
| | | BigDecimal lastAmount = (BigDecimal) Optional.ofNullable(redisTemplate.opsForHash().get(RedisKeys.SYMBOL_AMOUNT_VOLUME + symbol, "amount")).orElse(BigDecimal.ZERO); |
| | | BigDecimal amount = Optional.of(kline.getAmount()).orElse(BigDecimal.ZERO); |
| | | |
| | | realtime.setAmount(lastAmount.add(amount).setScale(decimal, RoundingMode.HALF_UP)); |
| | | realtime.setAmount(lastAmount.add(amount).setScale(decimal, RoundingMode.DOWN)); |
| | | BigDecimal lastVolume = (BigDecimal) Optional.ofNullable(redisTemplate.opsForHash().get(RedisKeys.SYMBOL_AMOUNT_VOLUME + symbol, "volume")).orElse(BigDecimal.ZERO); |
| | | BigDecimal volume = Optional.of(kline.getVolume()).orElse(BigDecimal.ZERO); |
| | | |
| | | realtime.setVolume(lastVolume.add(volume).setScale(decimal, RoundingMode.HALF_UP)); |
| | | realtime.setVolume(lastVolume.add(volume).setScale(decimal, RoundingMode.DOWN)); |
| | | realtime.setAsk(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(realtime.getLow(), realtime.getClose(), random))); |
| | | realtime.setBid(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(realtime.getHigh(), realtime.getClose(), random))); |
| | | |
| | |
| | | List<Realtime> realtimes = dataService.realtime(IXIC); |
| | | if (CollectionUtils.isNotEmpty(realtimes)) { |
| | | Realtime realtime = realtimes.get(0); |
| | | BigDecimal ratio = realtime.getClose().divide(realtime.getOpen(), 10, RoundingMode.HALF_UP); |
| | | BigDecimal close = ratio.multiply(kline.getClose()).setScale(2, RoundingMode.HALF_UP); |
| | | BigDecimal low = ratio.multiply(kline.getLow()).setScale(2, RoundingMode.HALF_UP); |
| | | BigDecimal high = ratio.multiply(kline.getHigh()).setScale(2, RoundingMode.HALF_UP); |
| | | BigDecimal ratio = realtime.getClose().divide(realtime.getOpen(), 10, RoundingMode.DOWN); |
| | | BigDecimal close = ratio.multiply(kline.getClose()).setScale(2, RoundingMode.DOWN); |
| | | BigDecimal low = ratio.multiply(kline.getLow()).setScale(2, RoundingMode.DOWN); |
| | | BigDecimal high = ratio.multiply(kline.getHigh()).setScale(2, RoundingMode.DOWN); |
| | | retKline.setClose(close); |
| | | retKline.setLow(low); |
| | | retKline.setHigh(high); |
| | |
| | | |
| | | buy = new DepthEntry(); |
| | | // 买 |
| | | BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue(); |
| | | buy.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue()); |
| | | buy.setAmount(enlarge * volumeSplit.get(i).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue()); |
| | | BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue(); |
| | | buy.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue()); |
| | | buy.setAmount(enlarge * volumeSplit.get(i).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue()); |
| | | |
| | | // 卖 |
| | | sell = new DepthEntry(); |
| | | sell.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getHigh(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue()); |
| | | sell.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getHigh(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue()); |
| | | |
| | | sell.setAmount(enlarge * volumeSplit.get(i + 5).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue()); |
| | | sell.setAmount(enlarge * volumeSplit.get(i + 5).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue()); |
| | | |
| | | |
| | | depth.getAsks().add(sell); |