| | |
| | | @Autowired |
| | | private NamedParameterJdbcOperations namedParameterJdbcTemplate; |
| | | |
| | | /*public static void main(String[] args) { |
| | | BigDecimal a = BigDecimal.valueOf(0.003); |
| | | BigDecimal b = BigDecimal.valueOf(7200); |
| | | BigDecimal c = a.divide(b, 10, BigDecimal.ROUND_HALF_UP); |
| | | System.out.println(c); |
| | | }*/ |
| | | @Override |
| | | public void initBySql(String symbol) { |
| | | this.bulidBySql(symbol, Kline.PERIOD_1MIN); |
| | |
| | | |
| | | public void bulid(String symbol, String line) { |
| | | RequestDataHelper.set("symbol", symbol); |
| | | List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null, |
| | | 0); |
| | | List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null); |
| | | KlineTimeObject model = new KlineTimeObject(); |
| | | Collections.sort(list); // 按时间升序 |
| | | model.setKline(list); |
| | |
| | | |
| | | @Override |
| | | public void saveOneByHuoBi(String symbol, String line) { |
| | | RequestDataHelper.set("symbol", symbol); |
| | | List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, 2, |
| | | 0); |
| | | List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, 2); |
| | | if (list == null || list.isEmpty()) { |
| | | return; |
| | | } |
| | | Kline kline = list.get(0); |
| | | BigDecimal currentValue = AdjustmentValueCache.getCurrentValue().get(symbol); |
| | | if (currentValue != null && currentValue.compareTo(BigDecimal.ZERO) > 0) { |
| | | if (currentValue != null && currentValue.compareTo(BigDecimal.ZERO) != 0) { |
| | | if (!kline.isAdjusted()){ |
| | | kline.setClose(kline.getClose().add(currentValue)); |
| | | kline.setOpen(kline.getOpen().add(currentValue)); |
| | |
| | | kline.setAdjusted(true); |
| | | } |
| | | } |
| | | |
| | | |
| | | //获取上一条数据 |
| | | Kline lastKline = DataCache.getLastKline().get(symbol + line);; |
| | | if (lastKline == null) { |
| | | List<Kline> lastList = this.find(symbol, line, 1); |
| | | if (lastList.size() > 0) { |
| | | lastKline = lastList.get(0); |
| | | } |
| | | } |
| | | //补差 |
| | | if (lastKline != null) { |
| | | BigDecimal diff = kline.getOpen().subtract(lastKline.getClose()); |
| | | if (diff.compareTo(BigDecimal.ZERO) > 0) { |
| | | kline.setOpen(kline.getOpen().subtract(diff)); |
| | | kline.setLow(kline.getLow().subtract(diff)); |
| | | } else if (diff.compareTo(BigDecimal.ZERO) < 0) { |
| | | kline.setOpen(kline.getOpen().subtract(diff)); |
| | | kline.setHigh(kline.getHigh().subtract(diff)); |
| | | } |
| | | } |
| | | |
| | | |
| | | RequestDataHelper.set("symbol", symbol); |
| | | klineDBService.save(kline); |
| | | KlineTimeObject timeObject = DataCache.getKline(symbol, line); |
| | | if (timeObject == null) { |
| | |
| | | timeObject.getKline().add(kline); |
| | | timeObject.setLastTime(new Date()); |
| | | DataCache.putKline(symbol, line, timeObject); |
| | | DataCache.getLastKline().put(symbol + line, kline); |
| | | RequestDataHelper.clear(); |
| | | } |
| | | |