使用APIConnect调用Edelweiss Connect API获取股票数据报错排查
排查Edelweiss Connect API调用"ETRD0009 No data available"错误
问题概述
作为Node.js新手,我尝试用APIConnect调用Edelweiss Connect API获取股票历史数据,但收到错误码ETRD0009,提示"No data available",无法得到预期的历史数据结果。
我的代码
const { APIConnect } = require("api_connect_nodejs"); const apiConnect = new APIConnect( apiKey, password, reqId, downloadContract, ); apiConnect.Init().then(() => { const eodChart = apiConnect .getEODChart( interval, assetType, symbol, exchangeType, tillDate ) .then((result) => console.log(result)) .catch((err) => console.log("Error intradayChart" , err)); }) .catch((err) => console.log("Init Failed" , err));
预期输出
{ "msgID": "6f5da42b-668f-4e76-a129-aa85b770cacd", "srvTm": 1660900624895, "data": [ ["2021-05-27 00:00:00", 11, 11.22, 11, 11, 56087], ["2021-06-21 00:00:00", 10.8, 10.8, 9.8, 9.8, 909], ["2021-07-29 00:00:00", 9.8, 9.94, 9.51, 9.7, 2440], ["2021-08-30 00:00:00", 9.51, 9.51, 8.39, 8.39, 5490], ["2021-09-30 00:00:00", 8.39, 8.39, 8.39, 8.39, 20], ["2021-10-25 00:00:00", 8.39, 8.39, 8.39, 8.39, 152], ["2021-11-29 00:00:00", 8.55, 8.71, 8.55, 8.71, 100], ["2021-12-31 00:00:00", 8.71, 9.09, 8.71, 9.09, 49203] ], "nextTillDate": "2006-05-29 00:00:00" }
实际错误输出
connected to server! Error : { appID: 'a9bb216d027e8cc68740b56fe3a80230', config: {}, error: { actCd: '54', errCd: 'ETRD0009', errMsg: 'No data available' }, msgID: '4e824788-d07b-4966-a458-2f8af63d5fac', srvTm: 1699958329802 } Init Failed { appID: 'a9bb216d027e8cc68740b56fe3a80230', config: {}, error: { actCd: '54', errCd: 'ETRD0009', errMsg: 'No data available' }, msgID: '4e824788-d07b-4966-a458-2f8af63d5fac', srvTm: 1699958329802, msg: 'ReqId: No data available' }
错误原因排查与解决方法
可能的原因
- 参数格式或取值不符合API要求,导致查询无匹配数据
- 账户权限不足,无法访问该标的的历史数据
- 查询的时间范围内确实不存在该标的的交易数据
- 初始化参数错误,导致API调用逻辑异常
解决步骤
严格核对参数有效性
- 对照官方文档确认每个参数的枚举值:
interval:需使用文档规定值,比如日K填"DAY",周K填"WEEK",不能自定义assetType:股票对应"EQ",期货对应"FUT"等,必须匹配标的类型symbol:使用交易所官方代码,比如NSE的"RELIANCE",避免拼写错误或添加额外后缀exchangeType:正确填写交易所代码,比如"NSE"或"BSE",注意大小写匹配tillDate:格式必须为"YYYY-MM-DD HH:MM:SS",且为过去的有效日期
- 先用文档中的示例参数测试调用,确认API能正常返回数据,再替换为目标标的参数
- 对照官方文档确认每个参数的枚举值:
检查账户与API权限
- 确认API密钥对应的账户已开通Edelweiss Connect的历史数据服务
- 验证
apiKey、password、reqId是否正确,无拼写错误或过期情况
调整查询时间范围
- 缩小查询时间范围,比如先查询最近7天的数据,确认是否有返回
- 确认标的在查询时间段内有交易记录,避开节假日或标的未上市的时段
调试代码逻辑
- 在调用
getEODChart前打印所有参数值,确保传入参数符合预期 - 优化错误日志,添加参数信息,方便定位问题:
.catch((err) => console.log("Error getEODChart with params:", {interval, assetType, symbol, exchangeType, tillDate}, err)); - 确保
Init方法完全成功后再执行getEODChart,避免异步调用顺序问题
- 在调用
内容的提问来源于stack exchange,提问作者Iush3party
相关产品推荐
相关产品推荐

