以下是一个使用 Spring Boot 开发的示例代码,用于获取指数 K 线数据并控制请求速率:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableScheduling
public class IndexKlineApplication {

    public static void main(String[] args) {
        SpringApplication.run(IndexKlineApplication.class, args);
    }

    @Component
    public static class KlineFetcher {
        private final RestTemplate restTemplate = new RestTemplate();
        private final String apiUrl = 'https://api.hbdm.com/api/v5/market/index-candles';
        private final String apiKey = 'your-api-key';
        private final String secretKey = 'your-secret-key';

        @Scheduled(fixedDelay = 200) // 控制请求速率为200ms/次
        public void fetchKlineData() {
            // 依次获取120支币的K线数据
            for (int i = 0; i < 120; i++) {
                String symbol = getSymbol(i);
                // 获取1m的K线数据
                fetchKlineData(symbol, '1m');
                // 获取5m的K线数据
                fetchKlineData(symbol, '5m');
                // 获取15m的K线数据
                fetchKlineData(symbol, '15m');
                // 获取30m的K线数据
                fetchKlineData(symbol, '30m');
                // 获取1H的K线数据
                fetchKlineData(symbol, '1H');
                // 获取4H的K线数据
                fetchKlineData(symbol, '4H');
            }
        }

        private void fetchKlineData(String symbol, String period) {
            String url = apiUrl + '?symbol=' + symbol + '&period=' + period;
            String result = restTemplate.getForObject(url, String.class);
            // 处理获取到的K线数据
            System.out.println(result);
        }

        private String getSymbol(int index) {
            // 根据索引获取币的symbol,这里假设symbol的命名规则为"COIN" + index
            return 'COIN' + index;
        }
    }
}

请注意,该示例中使用了RestTemplate来发送HTTP请求,你需要在pom.xml文件中添加相应的依赖:

<dependencies>
    <!-- 其他依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

另外,你需要将your-api-keyyour-secret-key替换为你在交易所获取的API密钥和密钥。

该示例中使用了@Scheduled注解来定时触发获取K线数据的方法,并通过fixedDelay属性设置了请求速率为200毫秒/次。你可以根据实际情况调整该值。

Spring Boot 实战:获取指数 K 线数据并控制请求速率

原文地址: https://www.cveoy.top/t/topic/o9ay 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录