继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

手把手教你用API获取股票历史数据:告别手动整理的烦恼

慕盖茨9520025
关注TA
已关注
手记 57
粉丝 0
获赞 3

我刚开始学做股票策略回测时,踩过最大的坑就是历史数据获取。那时候和很多新手一样,要么去财经网站下载CSV文件,要么跟着教程写简单的爬虫,结果每次整理数据都要花好几天:对齐时间轴、处理缺失值、计算复权价,稍微不注意就出错,回测结果完全没法看。


那时候我就想,要是能有个简单的方法,直接拿到整理好的结构化历史数据就好了。我的需求很明确:方法要简单易懂,适合新手;数据要准确,支持复权调整;能灵活调整股票代码、时间周期,直接用来绘图或回测。


但新手期的痛点真的很多:爬虫写不好容易被封IP,下载的CSV格式乱七八糟,手动对齐时间轴眼睛都看花了,复权价怎么算都搞不对,有一次为了整理一只股票3年的日线数据,我熬了两个通宵,结果还是因为数据错误,回测出来的策略完全不能用。


后来跟着课程学用API获取数据,才发现原来这么简单。比如**ALLTICK API**的调用方式就很直观,新手也能快速上手,不用再折腾数据整理。


### 先搞懂历史数据的核心字段

在调用API之前,我们得先知道拿到的数据是什么意思,这些字段是后续分析的基础:


| 字段名    | 类型  | 说明               |

| --------- | ----- | ------------------ |

| timestamp | int   | 时间戳(毫秒)|

| open      | float | 开盘价             |

| high      | float | 最高价             |

| low       | float | 最低价             |

| close     | float | 收盘价             |

| volume    | float | 成交量             |


这些字段就是一根K线的核心信息,有了它们我们就能画K线图、计算技术指标,不用再自己去整理。


### 手把手写调用代码(新手友好版)

我写了个特别详细的新手版代码,以获取苹果公司(AAPL.US)最近30条日线数据为例,每一步都加了注释:


```python

# 先导入需要的库

import requests

import json


# 配置API地址

API_URL = "https://apis.alltick.co/quote-b-api/kline"


# 配置请求参数,这里可以根据需要修改

payload = {

"data": {

"code": "AAPL.US",       # 股票代码,想查别的股票就改这里

"kline_type": "8",       # 8是日线,想学别的周期后面讲

"kline_timestamp_end": "0",

"query_kline_num": "30", # 最近30条,想多查点就改数字

"adjust_type": "0"       # 0不复权,新手先从不复权开始练

}

}


# 配置请求头,这里要换成你自己的Token

headers = {

"token": "YOUR_TOKEN_HERE",

"Content-Type": "application/json"

}


# 发送请求,这一步就像在浏览器里输入网址

response = requests.get(API_URL, params={"query": json.dumps(payload)}, headers=headers)

# 解析返回的JSON数据

result = response.json()


# 处理数据并打印出来

if "data" in result:

print("时间戳 | 开盘价 最高价 最低价 收盘价 成交量")

print("-" * 60)

for item in result["data"]:

ts = item[0]

open_p, high_p, low_p, close_p, vol = item[1:6]

print(f"{ts} | {open_p} {high_p} {low_p} {close_p} {vol}")

else:

print("没有拿到数据,检查一下Token和参数对不对哦")

```


跟着这个代码一步步写,新手也能很快拿到历史数据。修改一下股票代码、返回条数,就能获取不同的数据,特别灵活。


### 拿到数据后可以做什么?

作为新手,拿到这些数据后我们可以先做这些简单的应用:

- 用Matplotlib画简单的K线图,看看股票走势;

- 计算简单的均线(MA),看看金叉死叉;

- 对比两只股票的走势,看看谁强谁弱;

- 做简单的回测,验证一下自己的小想法。


自从学会用API获取历史数据后,我再也没在数据整理上浪费时间,能专注于学策略、学分析,进步特别快。

https://img1.sycdn.imooc.com/4c6d496908c352f016000893.jpg


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP