如何使用JavaScript将无标签OHLCV股票数组转换为带标签结构化对象
JavaScript转换股票K线数据为TALIB兼容格式方案
原生JS无依赖实现
不需要引入任何第三方库,直接使用数组的reduce方法即可完成转换,代码逻辑简洁,性能足以覆盖常规K线数据量场景:
// 你的原始OHLCV数据 const rawData = [[ 1627875900, 434.75, 435.8, 432.55, 434.9, 1750806 ], [ 1627876800, 434.75, 435.2, 432.7, 433, 905388 ], [ 1627877700, 432.9, 433.75, 431.8, 433.55, 689338 ]]; // 转换核心逻辑 const talibInput = rawData.reduce((result, klineItem) => { // 按索引对应取值:索引1=开盘价、2=最高价、3=最低价、4=收盘价、5=成交量 result.open.push(klineItem[1]); result.high.push(klineItem[2]); result.low.push(klineItem[3]); result.close.push(klineItem[4]); result.volume.push(klineItem[5]); return result; }, { open: [], high: [], low: [], close: [], volume: [] });
转换完成后talibInput就是符合TALIB库要求的入参结构,可以直接传入对应指标计算方法使用。
异常兼容优化
如果原始数据可能存在缺失字段的异常条目,可以增加长度校验避免插入无效值:
const talibInput = rawData.reduce((result, klineItem) => { if (klineItem.length >= 6) { result.open.push(klineItem[1]); result.high.push(klineItem[2]); result.low.push(klineItem[3]); result.close.push(klineItem[4]); result.volume.push(klineItem[5]); } return result; }, { open: [], high: [], low: [], close: [], volume: [] });
内容的提问来源于stack exchange,提问作者Himanshu Pandey
相关产品推荐
相关产品推荐

