在进行金融数据分析时,获取实时和历史的市场数据是至关重要的。
准备工作
在开始之前,请确保您已经从StockTV获得了访问API所需的Key。这个Key是调用API时用于验证身份的重要凭证。您可以通过联系StockTV团队来获取您的专属API Key。
一、获取K线数据
构造请求URL
为了获取特定股票或指数的K线(OHLCV)数据,您需要构造一个HTTP GET请求。例如,要获取Infosys Limited (INFY) 在过去一周的日K线数据,您可以使用如下URL:
https://api.stocktv.top/stock/kline?symbol=INFY&interval=1day&startTime=1719129600000&endTime=1719817200000&key=YOUR_API_KEY
symbol
: 股票代码或指数符号。interval
: 时间间隔,如1min
,5min
,30min
,1day
等。startTime
和endTime
: 开始时间和结束时间的时间戳(毫秒),可选。key
: 您的API Key。
使用curl获取数据
下面是一个使用curl
命令行工具获取上述K线数据的例子:
curl "https://api.stocktv.top/stock/kline?symbol=INFY&interval=1day&startTime=1719129600000&endTime=1719817200000&key=YOUR_API_KEY"
执行上述命令后,curl
会向指定的URL发送GET请求,并打印服务器返回的JSON响应到控制台。
解析返回的数据
假设服务器返回了如下JSON格式的数据:
{
"code": 200,
"message": "操作成功",
"data": [
{
"time": 1719818400000, // 时间戳
"open": 239.42, // 开盘价格
"high": 239.6, // 最高价
"low": 239.42, // 最低价
"close": 239.6, // 收盘价
"volume": 0, // 成交量
"vo": 0 // 成交额
},
...
]
}
您可以使用jq
工具来解析和处理这些JSON数据。例如,提取所有开盘价:
curl "https://api.stocktv.top/stock/kline?symbol=INFY&interval=1day&startTime=1719129600000&endTime=1719817200000&key=YOUR_API_KEY" | jq '.data[].open'
这将输出每个时间段的开盘价格。
二、WebSocket实时数据
虽然curl
主要用于发起HTTP请求,但您也可以通过其他方式(如使用websocat
或编写简单的Java/Python脚本)来处理WebSocket连接以接收实时数据。
WebSocket返回的数据格式
WebSocket返回的数据格式如下所示:
{
"ask": "0.680", // 卖单价
"bid": "0.675", // 买单价
"high": "0.680", // 最高价
"last_close": "0.680", // 前收盘价
"last_dir": "greenBg", // 最后交易方向
"last_numeric": "0.68", // 最终成交价(当前最新价)
"low": "0.650", // 最低价
"message": "pid-992844", // 产品
"pc": "0.000", // 涨跌额
"pc_col": "blackFont", // 价格变化颜色
"pcp": "0.00", // 涨跌幅 暂时需要拼接%
"pid": "992844", // 产品pid
"time": "02:44:11", // 交易时间
"timestamp": "1717728251", // 时间戳
"turnover_numeric": "3672800", // 成交额数值
"type": 1 // 类型 1股票 2指数
}