trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
@@ -106,7 +106,7 @@ } //更新ico实时价格 if (model.getUnitAmount().compareTo(BigDecimal.ZERO) >0 && /*if (model.getUnitAmount().compareTo(BigDecimal.ZERO) >0 && model.getUnitAmount().compareTo(ico.getUnitAmount()) != 0){ String symbol = ico.getSymbol(); RequestDataHelper.set("symbol", symbol); @@ -119,7 +119,7 @@ realtimeService.updateById(realtime); RequestDataHelper.clear(); DataCache.putRealtime(symbol, realtime); } }*/ } //新增或编辑表单保存 icoService.saveOrUpdate(ico); trading-order-admin/src/main/java/com/yami/trading/admin/task/IcoTask.java
@@ -174,7 +174,7 @@ /** * K线数据修正 */ @Scheduled(cron = "0 */5 * * * ?") //@Scheduled(cron = "0 */5 * * * ?") public void klineInit() { List<Item> items = ApplicationContextUtils.getApplicationContext().getBean(ItemService.class).list(); if (CollectionUtil.isNotEmpty(items)) { trading-order-admin/src/main/java/com/yami/trading/api/controller/KlineController.java
@@ -97,11 +97,11 @@ } } BigDecimal currentValue = AdjustmentValueCache.getCurrentValue().get(symbol); /*BigDecimal currentValue = AdjustmentValueCache.getCurrentValue().get(symbol); if (currentValue != null) { data.forEach(kline -> { /*logger.info("==currentValue==close:{}, low:{}, high:{}, open:{}, currentValue:{}", kline.getClose(), kline.getLow(), kline.getHigh(), kline.getOpen(), currentValue);*/ *//*logger.info("==currentValue==close:{}, low:{}, high:{}, open:{}, currentValue:{}", kline.getClose(), kline.getLow(), kline.getHigh(), kline.getOpen(), currentValue);*//* if (!kline.isAdjusted()){ if (kline.getClose().compareTo(kline.getLow()) >= 0 && kline.getClose().compareTo(kline.getHigh()) <= 0) { kline.setClose(kline.getClose().add(currentValue)); @@ -112,7 +112,7 @@ kline.setAdjusted(true); } }); } }*/ return Result.succeed(this.build(data, line, symbol)); } catch (Exception e) { logger.error("getKline error", e); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineService.java
@@ -6,6 +6,8 @@ import java.util.List; public interface CryptosKlineService { public void init(String symbol); public void saveInit(String symbol); public void saveOne(String symbol, String line); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java
@@ -7,6 +7,7 @@ import com.yami.trading.common.config.RequestDataHelper; import com.yami.trading.common.constants.Constants; import com.yami.trading.common.util.DateUtils; import com.yami.trading.huobi.data.AdjustmentValueCache; import com.yami.trading.huobi.data.DataCache; import com.yami.trading.huobi.hobi.HobiDataService; import com.yami.trading.service.data.KlineDBService; @@ -18,6 +19,7 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.util.*; @Component @@ -34,6 +36,19 @@ private SysparaService sysparaService; @Autowired private NamedParameterJdbcOperations namedParameterJdbcTemplate; @Override public void init(String symbol) { this.bulid(symbol, Kline.PERIOD_1MIN); this.bulid(symbol, Kline.PERIOD_5MIN); this.bulid(symbol, Kline.PERIOD_15MIN); this.bulid(symbol, Kline.PERIOD_30MIN); this.bulid(symbol, Kline.PERIOD_60MIN); this.bulid(symbol, Kline.PERIOD_4HOUR); this.bulid(symbol, Kline.PERIOD_1DAY); this.bulid(symbol, Kline.PERIOD_1MON); this.bulid(symbol, Kline.PERIOD_1WEEK); } @Override public void saveInit(String symbol) { @@ -55,6 +70,19 @@ } public void bulid(String symbol, String line) { RequestDataHelper.set("symbol", symbol); List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null, 0); KlineTimeObject model = new KlineTimeObject(); Collections.sort(list); // 按时间升序 model.setKline(list); model.setLastTime(new Date()); DataCache.putKline(symbol, line, model); RequestDataHelper.clear(); } public void bulidInit(String symbol, String line) { RequestDataHelper.set("symbol", symbol); List<Kline> list = hobiDataService.kline(itemService.findBySymbol(symbol).getSymbol(), line, null, @@ -68,6 +96,8 @@ RequestDataHelper.clear(); } @Override public void saveOne(String symbol, String line) { @@ -87,12 +117,13 @@ String key = symbol + "_" + line; Kline hobiOne = DataCache.getKline_hobi().get(key); if (hobiOne == null || lastOne == null) { /*if (hobiOne == null || lastOne == null) { logger.error("saveOne error, hobiOne is null,symbol [" + symbol + "]"); // 取不到远程数据,直接退出 return; } }*/ RequestDataHelper.set("symbol", symbol); Kline kline = this.bulidKline(realtime, lastOne, hobiOne, line); Kline kline = this.bulidKline(realtime, lastOne, null, line); kline.setPeriod(line); klineDBService.save(kline); @@ -124,8 +155,17 @@ if (lastOne != null) { kline.setOpen(lastOne.getClose()); kline.setHigh(lastOne.getHigh()); kline.setLow(lastOne.getLow()); if (realtime.getClose().compareTo(kline.getHigh()) > 0) { kline.setHigh(realtime.getClose()); } if (realtime.getClose().compareTo(kline.getOpen()) < 0) { kline.setLow(realtime.getClose()); } } int interval = this.sysparaService.find("data_interval").getInteger().intValue() / 1000; /*int interval = this.sysparaService.find("data_interval").getInteger().intValue() / 1000; HighLow highLow = null; switch (line) { @@ -169,9 +209,10 @@ } if (highLow != null && highLow.getLow() != null) { kline.setLow(highLow.getLow()); } }*/ kline.setVolume(hobiOne.getVolume()); //kline.setVolume(hobiOne.getVolume()); return kline; } trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/KlineInitServiceImpl.java
@@ -50,7 +50,7 @@ logger.info("当前开始初始化币对单个k线图: {}", symbol); Item bySymbol = itemService.findBySymbol(symbol); if (Item.cryptos.equalsIgnoreCase(bySymbol.getType())) { cryptosKlineService.saveInit(symbol); cryptosKlineService.init(symbol); } else if ("1".equalsIgnoreCase(bySymbol.getFake())) { fakeKlineInitService.saveInit(symbols); } else { trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline15MinuteJob.java
@@ -27,7 +27,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0/15 * ? * *") @Scheduled(cron = "1 0/15 * ? * *") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline15MinuteJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1DayJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0/1 * * * ?") @Scheduled(cron = "0 1 0 * * ?") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline1DayJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MinuteJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 * * ? * *") @Scheduled(cron = "1 * * ? * *") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline1MinuteJob start ... "); @@ -37,7 +37,7 @@ for (int i = 0; i < item_list.size(); i++) { Item item = item_list.get(i); if (MarketOpenChecker.isMarketOpenByItemCloseType(item.getOpenCloseType()) && item.getType().equals("cryptos")) { log.debug("--------------- 5min kline --------- {}", item.getSymbol()); //log.debug("--------------- 1min kline --------- {}", item.getSymbol()); if (Item.cryptos.equalsIgnoreCase(item.getType())) { cryptosKlineService.saveOne(item.getSymbol(), Kline.PERIOD_1MIN); } else { trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1MonJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0 0 1 * ?") @Scheduled(cron = "0 1 0 1 * ?") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline1MonJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1WeekJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0 0 ? * 1") @Scheduled(cron = "1 0 0 ? * 2") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline1WeekJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline1YearJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0 0 1 1 ?") @Scheduled(cron = "1 0 0 1 1 ?") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline1YearJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline30MinuteJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0/30 * ? * *") @Scheduled(cron = "1 0/30 * ? * *") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline30MinuteJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline4HourJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0 */4 ? * *") @Scheduled(cron = "1 0 */4 ? * *") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline4HourJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5DayJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0 0 */5 * ?") @Scheduled(cron = "1 0 0 */5 * ?") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline5DayJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline5MinuteJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0/5 * ? * *") @Scheduled(cron = "1 0/5 * ? * *") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline5MinuteJob start ... "); trading-order-huobi/src/main/java/com.yami.trading.huobi/data/klinejob/Kline60MinuteJob.java
@@ -28,7 +28,7 @@ @Autowired private CryptosKlineService cryptosKlineService; @Scheduled(cron = "0 0 * ? * *") @Scheduled(cron = "1 0 * ? * *") public void taskJob() { StopWatch stopWatch = new StopWatch(); log.info("Kline60MinuteJob start ... ");