From 6708abaf56f712f95fe942c06949e17f6abc3078 Mon Sep 17 00:00:00 2001 From: Rekey Date: Sun, 14 Jun 2026 18:50:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(data/service):=20add=20bnkline.ts=20?= =?UTF-8?q?=E2=80=94=20Binance=20REST=20client=20K-line=20wrapper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 封装 Client(多交易所 REST 客户端)的 binance 实现, 提供 fetchKlines 服务层函数,复用限流、数据转换、 连续性过滤等既有逻辑,参数顺序更自然(endTime 在 limit 前)。 --- data/service/bnkline.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 data/service/bnkline.ts diff --git a/data/service/bnkline.ts b/data/service/bnkline.ts new file mode 100644 index 0000000..f9713e1 --- /dev/null +++ b/data/service/bnkline.ts @@ -0,0 +1,28 @@ +import { Client } from "../exchanges/rest"; +import type { Kline, KlineInterval } from "../types"; + +const client = new Client("binance"); + +/** + * 获取 Binance K 线数据(基于 MainClient REST API)。 + * + * 内部复用 Client(多交易所 REST 客户端)的 binance 实现, + * 包含限流、Binance SDK 原生转换、连续性过滤等逻辑。 + * 返回本系统标准化 {@link Kline} 数组。 + * + * @param symbol - 交易对符号(如 "BTCUSDT") + * @param interval - K 线周期(如 "1h"、"4h"、"1d") + * @param startTime - 起始时间(Unix ms) + * @param endTime - 结束时间(Unix ms),可选;不传则拉取到最新 + * @param limit - 单次拉取条数,默认 500(最大 1000) + */ +export async function fetchKlines( + symbol: string, + interval: KlineInterval, + startTime: number, + endTime?: number, + limit = 500, +): Promise { + // Client.fetchKlines 参数顺序:symbol, interval, startTime, limit, endTime + return client.fetchKlines(symbol, interval, startTime, limit, endTime); +}