peter
2025-07-11 19be3926c88d19645f43dd926d00615225f30802
trading-order-huobi/src/main/java/com.yami.trading.huobi/hobi/internal/HobiDataServiceImpl.java
@@ -725,6 +725,7 @@
        return yesterdayLastPrice;
    }
    @Override
    public List<Kline> getTimeseries(String symbol,String period,int periodType){
        List<Kline> resList = new ArrayList<>();
        int klineCount;
@@ -749,6 +750,8 @@
            klineCount = 52 * 5; // 5年的1周K线 (1年52周,5年共260周)
        } else if (KlineConstant.PERIOD_1MON.equals(period)) {
            klineCount = 12 * 5; // 5年的1个月K线,12个月每年,乘以5年 = 60
        }else if(KlineConstant.PERIOD_ONE.equals(period)){
            klineCount = 1;
        }else{
            klineCount = 2;
        }
@@ -778,7 +781,8 @@
                kline.setClose(result.getClose_price());
                kline.setHigh(result.getHigh_price());
                kline.setLow(result.getLow_price());
                kline.setVolume(result.getVolume());
                kline.setVolume(result.getTurnover());
                kline.setAmount(result.getVolume());
                resList.add(kline);
            }
        }
@@ -788,6 +792,28 @@
            logger.error("延时中断: {}", e);
        }
        return resList;
    }
    @Override
    public List<Realtime> realtime24HoruData(String symbols, List<Realtime> realtimes) {
        List<String> strings = Arrays.asList(symbols.split(","));
        for (int i = 0; i < strings.size(); i++) {
            List<Kline> dayList = getTimeseries(strings.get(i), KlineConstant.PERIOD_ONE, AllticktradeMadeOptions.dayPeriod);
            if(dayList.size()>0){
                Kline kline = dayList.get(0);
                for (Realtime realtime : realtimes){
                    if(realtime.getSymbol().equals(strings.get(i))){
                        int decimal = itemService.getDecimal(realtime.getSymbol());
                        realtime.setOpen(kline.getOpen().setScale(decimal, RoundingMode.HALF_UP));
                        realtime.setHigh(kline.getHigh().setScale(decimal, RoundingMode.HALF_UP));
                        realtime.setLow(kline.getLow().setScale(decimal, RoundingMode.HALF_UP));
                        realtime.setAmount(kline.getAmount().setScale(decimal, RoundingMode.HALF_UP));
                        realtime.setVolume(kline.getVolume().setScale(decimal, RoundingMode.HALF_UP));
                    }
                }
            }
        }
        return realtimes;
    }
    public List<Kline> buildOneDayPeriod(List<AllticktradeResult> list, String currency) {
@@ -1199,7 +1225,7 @@
            HttpResponse response = HttpHelper.getHttpclient().execute(request);
            return HttpHelper.responseProc(response);
        } catch (Exception e) {
            logger.error("采集外汇k线图失败:{} ", e);
            logger.error("采集外汇k线图失败:==={} ", symbol);
        }
        return null;
    }