@yuants/vendor-huobi 0.18.0 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/services/interest-rate-service.js +9 -1
- package/dist/services/interest-rate-service.js.map +1 -1
- package/dist/services/ohlc-service.js +10 -2
- package/dist/services/ohlc-service.js.map +1 -1
- package/lib/services/interest-rate-service.js +9 -1
- package/lib/services/interest-rate-service.js.map +1 -1
- package/lib/services/ohlc-service.js +10 -2
- package/lib/services/ohlc-service.js.map +1 -1
- package/package.json +15 -15
- package/temp/package-deps.json +19 -19
|
@@ -3,6 +3,14 @@ import { Terminal } from '@yuants/protocol';
|
|
|
3
3
|
import { decodePath, formatTime } from '@yuants/utils';
|
|
4
4
|
import { getSwapHistoricalFundingRate } from '../api/public-api';
|
|
5
5
|
const terminal = Terminal.fromNodeEnv();
|
|
6
|
+
const INGEST_SERVICE_OPTIONS = {
|
|
7
|
+
concurrent: 1,
|
|
8
|
+
max_pending_requests: 20,
|
|
9
|
+
ingress_token_capacity: 2,
|
|
10
|
+
ingress_token_refill_interval: 1000,
|
|
11
|
+
egress_token_capacity: 1,
|
|
12
|
+
egress_token_refill_interval: 1000,
|
|
13
|
+
};
|
|
6
14
|
const PAGE_SIZE = 50;
|
|
7
15
|
const computePageRangeMs = (items) => {
|
|
8
16
|
if (items.length === 0)
|
|
@@ -98,5 +106,5 @@ const fetchFundingRateBackward = async (req) => {
|
|
|
98
106
|
provideInterestRateService(terminal, {
|
|
99
107
|
product_id_prefix: 'HTX/SWAP/',
|
|
100
108
|
direction: 'backward',
|
|
101
|
-
}, fetchFundingRateBackward);
|
|
109
|
+
}, fetchFundingRateBackward, INGEST_SERVICE_OPTIONS);
|
|
102
110
|
//# sourceMappingURL=interest-rate-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { IInterestRate } from '@yuants/data-interest-rate';\nimport { provideInterestRateService } from '@yuants/exchange';\nimport { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { decodePath, formatTime } from '@yuants/utils';\nimport { getSwapHistoricalFundingRate } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst PAGE_SIZE = 50;\n\ntype IPageRange = { minMs: number; maxMs: number };\n\nconst computePageRangeMs = (items: Array<{ funding_time: string }>): IPageRange | undefined => {\n if (items.length === 0) return undefined;\n let minMs = Infinity;\n let maxMs = -Infinity;\n for (const item of items) {\n const ms = Number(item.funding_time);\n if (isNaN(ms)) continue;\n if (ms < minMs) minMs = ms;\n if (ms > maxMs) maxMs = ms;\n }\n if (!isFinite(minMs) || !isFinite(maxMs)) return undefined;\n return { minMs, maxMs };\n};\n\nconst fetchFundingRatePage = async (params: {\n contract_code: string;\n pageIndex: number;\n}): Promise<{\n items: Array<{ funding_rate: string; funding_time: string }>;\n totalPage: number;\n}> => {\n const res = await getSwapHistoricalFundingRate({\n contract_code: params.contract_code,\n page_index: params.pageIndex,\n page_size: PAGE_SIZE,\n });\n if (res.status !== 'ok') {\n throw new Error(`HTX getSwapHistoricalFundingRate failed: ${res.status}`);\n }\n return {\n items: res.data.data ?? [],\n totalPage: res.data.total_page,\n };\n};\n\nconst locatePageByTimeBackward = async (params: {\n contract_code: string;\n targetMs: number;\n}): Promise<{ pageIndex: number; totalPage: number }> => {\n const first = await fetchFundingRatePage({ contract_code: params.contract_code, pageIndex: 0 });\n const totalPage = first.totalPage;\n if (!totalPage || totalPage <= 1) return { pageIndex: 0, totalPage: totalPage || 1 };\n\n const rangeCache = new Map<number, IPageRange | undefined>([[0, computePageRangeMs(first.items)]]);\n\n const getRange = async (pageIndex: number): Promise<IPageRange | undefined> => {\n if (rangeCache.has(pageIndex)) return rangeCache.get(pageIndex);\n const page = await fetchFundingRatePage({ contract_code: params.contract_code, pageIndex });\n const range = computePageRangeMs(page.items);\n rangeCache.set(pageIndex, range);\n return range;\n };\n\n let left = 0;\n let right = totalPage - 1;\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const range = await getRange(mid);\n if (!range) {\n right = mid - 1;\n continue;\n }\n if (params.targetMs > range.maxMs) {\n right = mid - 1;\n continue;\n }\n if (params.targetMs < range.minMs) {\n left = mid + 1;\n continue;\n }\n return { pageIndex: mid, totalPage };\n }\n\n return { pageIndex: Math.min(Math.max(0, left), totalPage - 1), totalPage };\n};\n\nconst fetchFundingRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, instType, contract_code] = decodePath(req.product_id);\n if (instType !== 'SWAP' || !contract_code) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const targetMs = req.time;\n const { pageIndex } = await locatePageByTimeBackward({ contract_code, targetMs });\n const page = await fetchFundingRatePage({ contract_code, pageIndex });\n\n return page.items\n .map((v): IInterestRate => {\n const ms = Number(v.funding_time);\n const rate = Number(v.funding_rate);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'HTX',\n created_at: formatTime(ms),\n long_rate: `${-rate}`,\n short_rate: `${rate}`,\n settlement_price: '',\n };\n })\n .filter((x) => Date.parse(x.created_at) < targetMs);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'HTX/SWAP/',\n direction: 'backward',\n },\n fetchFundingRateBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
|
|
@@ -3,6 +3,14 @@ import { Terminal } from '@yuants/protocol';
|
|
|
3
3
|
import { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';
|
|
4
4
|
import { getSpotHistoryKline, getSwapHistoryKline } from '../api/public-api';
|
|
5
5
|
const terminal = Terminal.fromNodeEnv();
|
|
6
|
+
const INGEST_SERVICE_OPTIONS = {
|
|
7
|
+
concurrent: 1,
|
|
8
|
+
max_pending_requests: 20,
|
|
9
|
+
ingress_token_capacity: 2,
|
|
10
|
+
ingress_token_refill_interval: 1000,
|
|
11
|
+
egress_token_capacity: 1,
|
|
12
|
+
egress_token_refill_interval: 1000,
|
|
13
|
+
};
|
|
6
14
|
const DURATION_TO_HTX_PERIOD = {
|
|
7
15
|
PT1M: '1min',
|
|
8
16
|
PT5M: '5min',
|
|
@@ -102,10 +110,10 @@ provideOHLCService(terminal, {
|
|
|
102
110
|
product_id_prefix: 'HTX/SWAP/',
|
|
103
111
|
duration_list: Object.keys(DURATION_TO_HTX_PERIOD),
|
|
104
112
|
direction: 'backward',
|
|
105
|
-
}, fetchOHLCPageBackward);
|
|
113
|
+
}, fetchOHLCPageBackward, INGEST_SERVICE_OPTIONS);
|
|
106
114
|
provideOHLCService(terminal, {
|
|
107
115
|
product_id_prefix: 'HTX/SPOT/',
|
|
108
116
|
duration_list: Object.keys(DURATION_TO_HTX_PERIOD),
|
|
109
117
|
direction: 'backward',
|
|
110
|
-
}, fetchSpotOHLCPageBackward);
|
|
118
|
+
}, fetchSpotOHLCPageBackward, INGEST_SERVICE_OPTIONS);
|
|
111
119
|
//# sourceMappingURL=ohlc-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOHLC } from '@yuants/data-ohlc';\nimport { provideOHLCService } from '@yuants/exchange';\nimport { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';\nimport { getSpotHistoryKline, getSwapHistoryKline } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst DURATION_TO_HTX_PERIOD: Record<string, string> = {\n PT1M: '1min',\n PT5M: '5min',\n PT15M: '15min',\n PT30M: '30min',\n PT1H: '60min',\n PT4H: '4hour',\n P1D: '1day',\n P1W: '1week',\n};\n\nconst DEFAULT_BAR_COUNT = 500;\n\nconst fetchSpotOHLCPageBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, symbol] = decodePath(req.product_id);\n if (instType !== 'SPOT' || !symbol) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const period = DURATION_TO_HTX_PERIOD[req.duration];\n if (!period) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, Math.floor((endedAtMs - DEFAULT_BAR_COUNT * offset) / 1000));\n\n const res = await getSpotHistoryKline({\n symbol: symbol.toLowerCase(),\n period,\n size: DEFAULT_BAR_COUNT,\n from,\n to,\n });\n if (res.status !== 'ok') {\n throw new Error(`HTX getSpotHistoryKline failed: ${res.status}`);\n }\n\n return (res.data ?? [])\n .map((k): IOHLC => {\n const createdAtMs = k.id * 1000;\n return {\n series_id: req.series_id,\n datasource_id: 'HTX',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(createdAtMs),\n closed_at: formatTime(createdAtMs + offset),\n open: `${k.open}`,\n high: `${k.high}`,\n low: `${k.low}`,\n close: `${k.close}`,\n volume: `${k.vol}`,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nconst fetchOHLCPageBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, contract_code] = decodePath(req.product_id);\n if (instType !== 'SWAP' || !contract_code) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const period = DURATION_TO_HTX_PERIOD[req.duration];\n if (!period) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, Math.floor((endedAtMs - DEFAULT_BAR_COUNT * offset) / 1000));\n\n const res = await getSwapHistoryKline({\n contract_code,\n period,\n size: DEFAULT_BAR_COUNT,\n from,\n to,\n });\n if (res.status !== 'ok') {\n throw new Error(`HTX getSwapHistoryKline failed: ${res.status}`);\n }\n\n return (res.data ?? [])\n .map((k): IOHLC => {\n const createdAtMs = k.id * 1000;\n return {\n series_id: req.series_id,\n datasource_id: 'HTX',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(createdAtMs),\n closed_at: formatTime(createdAtMs + offset),\n open: `${k.open}`,\n high: `${k.high}`,\n low: `${k.low}`,\n close: `${k.close}`,\n volume: `${k.vol}`,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HTX/SWAP/',\n duration_list: Object.keys(DURATION_TO_HTX_PERIOD),\n direction: 'backward',\n },\n fetchOHLCPageBackward,\n INGEST_SERVICE_OPTIONS,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HTX/SPOT/',\n duration_list: Object.keys(DURATION_TO_HTX_PERIOD),\n direction: 'backward',\n },\n fetchSpotOHLCPageBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
|
|
@@ -5,6 +5,14 @@ const protocol_1 = require("@yuants/protocol");
|
|
|
5
5
|
const utils_1 = require("@yuants/utils");
|
|
6
6
|
const public_api_1 = require("../api/public-api");
|
|
7
7
|
const terminal = protocol_1.Terminal.fromNodeEnv();
|
|
8
|
+
const INGEST_SERVICE_OPTIONS = {
|
|
9
|
+
concurrent: 1,
|
|
10
|
+
max_pending_requests: 20,
|
|
11
|
+
ingress_token_capacity: 2,
|
|
12
|
+
ingress_token_refill_interval: 1000,
|
|
13
|
+
egress_token_capacity: 1,
|
|
14
|
+
egress_token_refill_interval: 1000,
|
|
15
|
+
};
|
|
8
16
|
const PAGE_SIZE = 50;
|
|
9
17
|
const computePageRangeMs = (items) => {
|
|
10
18
|
if (items.length === 0)
|
|
@@ -100,5 +108,5 @@ const fetchFundingRateBackward = async (req) => {
|
|
|
100
108
|
(0, exchange_1.provideInterestRateService)(terminal, {
|
|
101
109
|
product_id_prefix: 'HTX/SWAP/',
|
|
102
110
|
direction: 'backward',
|
|
103
|
-
}, fetchFundingRateBackward);
|
|
111
|
+
}, fetchFundingRateBackward, INGEST_SERVICE_OPTIONS);
|
|
104
112
|
//# sourceMappingURL=interest-rate-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":";;AACA,+CAA8D;AAC9D,+
|
|
1
|
+
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { IInterestRate } from '@yuants/data-interest-rate';\nimport { provideInterestRateService } from '@yuants/exchange';\nimport { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { decodePath, formatTime } from '@yuants/utils';\nimport { getSwapHistoricalFundingRate } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst PAGE_SIZE = 50;\n\ntype IPageRange = { minMs: number; maxMs: number };\n\nconst computePageRangeMs = (items: Array<{ funding_time: string }>): IPageRange | undefined => {\n if (items.length === 0) return undefined;\n let minMs = Infinity;\n let maxMs = -Infinity;\n for (const item of items) {\n const ms = Number(item.funding_time);\n if (isNaN(ms)) continue;\n if (ms < minMs) minMs = ms;\n if (ms > maxMs) maxMs = ms;\n }\n if (!isFinite(minMs) || !isFinite(maxMs)) return undefined;\n return { minMs, maxMs };\n};\n\nconst fetchFundingRatePage = async (params: {\n contract_code: string;\n pageIndex: number;\n}): Promise<{\n items: Array<{ funding_rate: string; funding_time: string }>;\n totalPage: number;\n}> => {\n const res = await getSwapHistoricalFundingRate({\n contract_code: params.contract_code,\n page_index: params.pageIndex,\n page_size: PAGE_SIZE,\n });\n if (res.status !== 'ok') {\n throw new Error(`HTX getSwapHistoricalFundingRate failed: ${res.status}`);\n }\n return {\n items: res.data.data ?? [],\n totalPage: res.data.total_page,\n };\n};\n\nconst locatePageByTimeBackward = async (params: {\n contract_code: string;\n targetMs: number;\n}): Promise<{ pageIndex: number; totalPage: number }> => {\n const first = await fetchFundingRatePage({ contract_code: params.contract_code, pageIndex: 0 });\n const totalPage = first.totalPage;\n if (!totalPage || totalPage <= 1) return { pageIndex: 0, totalPage: totalPage || 1 };\n\n const rangeCache = new Map<number, IPageRange | undefined>([[0, computePageRangeMs(first.items)]]);\n\n const getRange = async (pageIndex: number): Promise<IPageRange | undefined> => {\n if (rangeCache.has(pageIndex)) return rangeCache.get(pageIndex);\n const page = await fetchFundingRatePage({ contract_code: params.contract_code, pageIndex });\n const range = computePageRangeMs(page.items);\n rangeCache.set(pageIndex, range);\n return range;\n };\n\n let left = 0;\n let right = totalPage - 1;\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const range = await getRange(mid);\n if (!range) {\n right = mid - 1;\n continue;\n }\n if (params.targetMs > range.maxMs) {\n right = mid - 1;\n continue;\n }\n if (params.targetMs < range.minMs) {\n left = mid + 1;\n continue;\n }\n return { pageIndex: mid, totalPage };\n }\n\n return { pageIndex: Math.min(Math.max(0, left), totalPage - 1), totalPage };\n};\n\nconst fetchFundingRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, instType, contract_code] = decodePath(req.product_id);\n if (instType !== 'SWAP' || !contract_code) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const targetMs = req.time;\n const { pageIndex } = await locatePageByTimeBackward({ contract_code, targetMs });\n const page = await fetchFundingRatePage({ contract_code, pageIndex });\n\n return page.items\n .map((v): IInterestRate => {\n const ms = Number(v.funding_time);\n const rate = Number(v.funding_rate);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'HTX',\n created_at: formatTime(ms),\n long_rate: `${-rate}`,\n short_rate: `${rate}`,\n settlement_price: '',\n };\n })\n .filter((x) => Date.parse(x.created_at) < targetMs);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'HTX/SWAP/',\n direction: 'backward',\n },\n fetchFundingRateBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
|
|
@@ -5,6 +5,14 @@ const protocol_1 = require("@yuants/protocol");
|
|
|
5
5
|
const utils_1 = require("@yuants/utils");
|
|
6
6
|
const public_api_1 = require("../api/public-api");
|
|
7
7
|
const terminal = protocol_1.Terminal.fromNodeEnv();
|
|
8
|
+
const INGEST_SERVICE_OPTIONS = {
|
|
9
|
+
concurrent: 1,
|
|
10
|
+
max_pending_requests: 20,
|
|
11
|
+
ingress_token_capacity: 2,
|
|
12
|
+
ingress_token_refill_interval: 1000,
|
|
13
|
+
egress_token_capacity: 1,
|
|
14
|
+
egress_token_refill_interval: 1000,
|
|
15
|
+
};
|
|
8
16
|
const DURATION_TO_HTX_PERIOD = {
|
|
9
17
|
PT1M: '1min',
|
|
10
18
|
PT5M: '5min',
|
|
@@ -104,10 +112,10 @@ const fetchOHLCPageBackward = async (req) => {
|
|
|
104
112
|
product_id_prefix: 'HTX/SWAP/',
|
|
105
113
|
duration_list: Object.keys(DURATION_TO_HTX_PERIOD),
|
|
106
114
|
direction: 'backward',
|
|
107
|
-
}, fetchOHLCPageBackward);
|
|
115
|
+
}, fetchOHLCPageBackward, INGEST_SERVICE_OPTIONS);
|
|
108
116
|
(0, exchange_1.provideOHLCService)(terminal, {
|
|
109
117
|
product_id_prefix: 'HTX/SPOT/',
|
|
110
118
|
duration_list: Object.keys(DURATION_TO_HTX_PERIOD),
|
|
111
119
|
direction: 'backward',
|
|
112
|
-
}, fetchSpotOHLCPageBackward);
|
|
120
|
+
}, fetchSpotOHLCPageBackward, INGEST_SERVICE_OPTIONS);
|
|
113
121
|
//# sourceMappingURL=ohlc-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":";;AACA,+CAAsD;AACtD,+
|
|
1
|
+
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOHLC } from '@yuants/data-ohlc';\nimport { provideOHLCService } from '@yuants/exchange';\nimport { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';\nimport { getSpotHistoryKline, getSwapHistoryKline } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst DURATION_TO_HTX_PERIOD: Record<string, string> = {\n PT1M: '1min',\n PT5M: '5min',\n PT15M: '15min',\n PT30M: '30min',\n PT1H: '60min',\n PT4H: '4hour',\n P1D: '1day',\n P1W: '1week',\n};\n\nconst DEFAULT_BAR_COUNT = 500;\n\nconst fetchSpotOHLCPageBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, symbol] = decodePath(req.product_id);\n if (instType !== 'SPOT' || !symbol) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const period = DURATION_TO_HTX_PERIOD[req.duration];\n if (!period) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, Math.floor((endedAtMs - DEFAULT_BAR_COUNT * offset) / 1000));\n\n const res = await getSpotHistoryKline({\n symbol: symbol.toLowerCase(),\n period,\n size: DEFAULT_BAR_COUNT,\n from,\n to,\n });\n if (res.status !== 'ok') {\n throw new Error(`HTX getSpotHistoryKline failed: ${res.status}`);\n }\n\n return (res.data ?? [])\n .map((k): IOHLC => {\n const createdAtMs = k.id * 1000;\n return {\n series_id: req.series_id,\n datasource_id: 'HTX',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(createdAtMs),\n closed_at: formatTime(createdAtMs + offset),\n open: `${k.open}`,\n high: `${k.high}`,\n low: `${k.low}`,\n close: `${k.close}`,\n volume: `${k.vol}`,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nconst fetchOHLCPageBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, contract_code] = decodePath(req.product_id);\n if (instType !== 'SWAP' || !contract_code) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const period = DURATION_TO_HTX_PERIOD[req.duration];\n if (!period) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, Math.floor((endedAtMs - DEFAULT_BAR_COUNT * offset) / 1000));\n\n const res = await getSwapHistoryKline({\n contract_code,\n period,\n size: DEFAULT_BAR_COUNT,\n from,\n to,\n });\n if (res.status !== 'ok') {\n throw new Error(`HTX getSwapHistoryKline failed: ${res.status}`);\n }\n\n return (res.data ?? [])\n .map((k): IOHLC => {\n const createdAtMs = k.id * 1000;\n return {\n series_id: req.series_id,\n datasource_id: 'HTX',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(createdAtMs),\n closed_at: formatTime(createdAtMs + offset),\n open: `${k.open}`,\n high: `${k.high}`,\n low: `${k.low}`,\n close: `${k.close}`,\n volume: `${k.vol}`,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HTX/SWAP/',\n duration_list: Object.keys(DURATION_TO_HTX_PERIOD),\n direction: 'backward',\n },\n fetchOHLCPageBackward,\n INGEST_SERVICE_OPTIONS,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HTX/SPOT/',\n duration_list: Object.keys(DURATION_TO_HTX_PERIOD),\n direction: 'backward',\n },\n fetchSpotOHLCPageBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuants/vendor-huobi",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.1",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
"temp"
|
|
9
9
|
],
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@yuants/protocol": "0.53.
|
|
12
|
-
"@yuants/data-account": "0.11.
|
|
13
|
-
"@yuants/data-order": "0.7.
|
|
14
|
-
"@yuants/data-ohlc": "0.
|
|
15
|
-
"@yuants/transfer": "0.2.
|
|
16
|
-
"@yuants/utils": "0.
|
|
17
|
-
"@yuants/cache": "0.3.
|
|
18
|
-
"@yuants/sql": "0.9.
|
|
19
|
-
"@yuants/data-product": "0.5.
|
|
20
|
-
"@yuants/data-series": "0.3.
|
|
21
|
-
"@yuants/data-interest-rate": "0.
|
|
22
|
-
"@yuants/data-quote": "0.4.
|
|
23
|
-
"@yuants/exchange": "0.8.
|
|
11
|
+
"@yuants/protocol": "0.53.4",
|
|
12
|
+
"@yuants/data-account": "0.11.1",
|
|
13
|
+
"@yuants/data-order": "0.7.2",
|
|
14
|
+
"@yuants/data-ohlc": "0.5.0",
|
|
15
|
+
"@yuants/transfer": "0.2.41",
|
|
16
|
+
"@yuants/utils": "0.16.0",
|
|
17
|
+
"@yuants/cache": "0.3.5",
|
|
18
|
+
"@yuants/sql": "0.9.32",
|
|
19
|
+
"@yuants/data-product": "0.5.2",
|
|
20
|
+
"@yuants/data-series": "0.3.54",
|
|
21
|
+
"@yuants/data-interest-rate": "0.2.0",
|
|
22
|
+
"@yuants/data-quote": "0.4.1",
|
|
23
|
+
"@yuants/exchange": "0.8.2",
|
|
24
24
|
"rxjs": "~7.5.6"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@rushstack/heft-node-rig": "~1.10.7",
|
|
31
31
|
"@types/heft-jest": "1.0.3",
|
|
32
32
|
"@types/node": "22",
|
|
33
|
-
"@yuants/extension": "0.2.
|
|
33
|
+
"@yuants/extension": "0.2.33",
|
|
34
34
|
"@yuants/tool-kit": "0.2.1",
|
|
35
35
|
"typescript": "~4.7.4"
|
|
36
36
|
},
|
package/temp/package-deps.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"apps/vendor-huobi/CHANGELOG.json": "
|
|
3
|
-
"apps/vendor-huobi/CHANGELOG.md": "
|
|
2
|
+
"apps/vendor-huobi/CHANGELOG.json": "b87c078102293ee7c80474a084743fb2dd531f17",
|
|
3
|
+
"apps/vendor-huobi/CHANGELOG.md": "ad98f1e8fb2e802dd24337a1657e1b6a14511570",
|
|
4
4
|
"apps/vendor-huobi/README.md": "d7bf0149513114eab5500a6b5c9e7cba10565572",
|
|
5
5
|
"apps/vendor-huobi/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
|
|
6
6
|
"apps/vendor-huobi/config/jest.config.json": "4bb17bde3ee911163a3edb36a6eb71491d80b1bd",
|
|
7
7
|
"apps/vendor-huobi/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
|
|
8
8
|
"apps/vendor-huobi/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
|
|
9
9
|
"apps/vendor-huobi/etc/vendor-huobi.api.md": "dc8cbf2a044a227b30a4ee9701b0c97328244724",
|
|
10
|
-
"apps/vendor-huobi/package.json": "
|
|
10
|
+
"apps/vendor-huobi/package.json": "83d6d2e053bc8bf021bcee92b4198e90d337859e",
|
|
11
11
|
"apps/vendor-huobi/src/__archived/account-info.ts": "5c325d3bb8839476c11f25693326ce05f3321ebd",
|
|
12
12
|
"apps/vendor-huobi/src/__archived/api.ts": "8366151dc881b177d0478fb328a601a11e33cd35",
|
|
13
13
|
"apps/vendor-huobi/src/__archived/transfer.ts": "fd299ad82ff31344460967f2a938b8f36c879259",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"apps/vendor-huobi/src/services/accounts/super-margin.ts": "ff885947334f43085aacb6e8c37b997afee2b7f6",
|
|
19
19
|
"apps/vendor-huobi/src/services/accounts/swap.ts": "91ef044f09ed3dddd7b0d32116a16c78f74ba9be",
|
|
20
20
|
"apps/vendor-huobi/src/services/exchange.ts": "6fed94206a22c43d3c6890cf52ff054a24d98d82",
|
|
21
|
-
"apps/vendor-huobi/src/services/interest-rate-service.ts": "
|
|
21
|
+
"apps/vendor-huobi/src/services/interest-rate-service.ts": "55fd2de153c25ccd7074ed2a866af703c6fed143",
|
|
22
22
|
"apps/vendor-huobi/src/services/market-data/interest_rate.ts": "79aa362f9fa90e612f9813d0b45d357b96189f3e",
|
|
23
23
|
"apps/vendor-huobi/src/services/market-data/quote.ts": "2f5883a95b11cf19c1a9a595567f9369b360cccf",
|
|
24
|
-
"apps/vendor-huobi/src/services/ohlc-service.ts": "
|
|
24
|
+
"apps/vendor-huobi/src/services/ohlc-service.ts": "6a050e775c2be85afdad90b68a52e9b2b82676f5",
|
|
25
25
|
"apps/vendor-huobi/src/services/orders/listOrders.ts": "1cf4621727fb290f8e5fd1439765fd73387bda7a",
|
|
26
26
|
"apps/vendor-huobi/src/services/orders/submitOrder.ts": "c6b0625d4922d5188ef042893865e029f5123f24",
|
|
27
27
|
"apps/vendor-huobi/src/services/product.ts": "096feb6e1348910242e814ca45848afa3b5bff98",
|
|
@@ -29,19 +29,19 @@
|
|
|
29
29
|
"apps/vendor-huobi/src/services/uid.ts": "b71c27a6a0debdd9365dea35306f4763327aca2f",
|
|
30
30
|
"apps/vendor-huobi/tsconfig.json": "81da8f78196974b5d15da0edb6b2d9f48641063c",
|
|
31
31
|
"apps/vendor-huobi/.rush/temp/shrinkwrap-deps.json": "237a816d6e825b5bd2a0fc742f5d055c19e37d3d",
|
|
32
|
-
"libraries/protocol/temp/package-deps.json": "
|
|
33
|
-
"libraries/data-account/temp/package-deps.json": "
|
|
34
|
-
"libraries/data-order/temp/package-deps.json": "
|
|
35
|
-
"libraries/data-ohlc/temp/package-deps.json": "
|
|
36
|
-
"libraries/transfer/temp/package-deps.json": "
|
|
37
|
-
"libraries/utils/temp/package-deps.json": "
|
|
38
|
-
"libraries/cache/temp/package-deps.json": "
|
|
39
|
-
"libraries/sql/temp/package-deps.json": "
|
|
40
|
-
"libraries/data-product/temp/package-deps.json": "
|
|
41
|
-
"libraries/data-series/temp/package-deps.json": "
|
|
42
|
-
"libraries/data-interest-rate/temp/package-deps.json": "
|
|
43
|
-
"libraries/data-quote/temp/package-deps.json": "
|
|
44
|
-
"libraries/exchange/temp/package-deps.json": "
|
|
45
|
-
"libraries/extension/temp/package-deps.json": "
|
|
32
|
+
"libraries/protocol/temp/package-deps.json": "a30b39ceb4cd530ed6bc4e97433f995b026b26d9",
|
|
33
|
+
"libraries/data-account/temp/package-deps.json": "363f171a8ec4ae558e4b20626b06bc8ae145ce8a",
|
|
34
|
+
"libraries/data-order/temp/package-deps.json": "daedd350fe85f0564f7739c73689fb09664132de",
|
|
35
|
+
"libraries/data-ohlc/temp/package-deps.json": "2115e384567d1b0958c085f455da9bed5a638780",
|
|
36
|
+
"libraries/transfer/temp/package-deps.json": "6d0942aa4c50b35a8e47a500fe494fb4a08a99e5",
|
|
37
|
+
"libraries/utils/temp/package-deps.json": "7a9e2336d7ad44e827d81e9722767d6cdf99fc1f",
|
|
38
|
+
"libraries/cache/temp/package-deps.json": "2e6c6db8f750a2e173a3c4b9a57d22fbd6f9181d",
|
|
39
|
+
"libraries/sql/temp/package-deps.json": "252d819797cb0a4bbc579075867624b05b19dabb",
|
|
40
|
+
"libraries/data-product/temp/package-deps.json": "4f525fda6d65677f9fbdcd1b4480970dd6ff9e5b",
|
|
41
|
+
"libraries/data-series/temp/package-deps.json": "71b373ec83ce1188001e341aefaca704aa4a5c38",
|
|
42
|
+
"libraries/data-interest-rate/temp/package-deps.json": "0aa2057c1c5c432be87e97b8df22984bdcab307c",
|
|
43
|
+
"libraries/data-quote/temp/package-deps.json": "07e342d9dba4d5f5d89b62c74f079425b560cb1f",
|
|
44
|
+
"libraries/exchange/temp/package-deps.json": "5267eb70cd2e7df4a645f94133ad3428b52c567e",
|
|
45
|
+
"libraries/extension/temp/package-deps.json": "fcddc4a668ecf969ca593c67ff02543fe69a6829",
|
|
46
46
|
"tools/toolkit/temp/package-deps.json": "23e053490eb8feade23e4d45de4e54883e322711"
|
|
47
47
|
}
|