谈一谈使用Python入门量化投资

举报
Regan Yue 发表于 2021/10/29 18:38:23 2021/10/29
2.6k+ 0 0
【摘要】 谈一谈使用Python入门量化投资0x00 前言量化交易是使用计算机技术(本文主要指使用Python)帮助投资者分析大量的数据从而制定投资策略,这是属于金融和计算机的交叉领域。本文是用于指导利用Python进行量化交易的初学者入门使用,限于本人水平有限,大家轻点喷~0x01 提取数据前置条件为了提取股票数据,我们需要用到Quandl 的 API,这个平台拥有大量的经济和金融数据。首先我们需要...

谈一谈使用Python入门量化投资

0x00 前言

量化交易是使用计算机技术(本文主要指使用Python)帮助投资者分析大量的数据从而制定投资策略,这是属于金融和计算机的交叉领域。

本文是用于指导利用Python进行量化交易的初学者入门使用,限于本人水平有限,大家轻点喷~

0x01 提取数据

前置条件

为了提取股票数据,我们需要用到Quandl 的 API,这个平台拥有大量的经济和金融数据。

首先我们需要安装Python 3和 virtualenv,并通过

virtualenv --python=/usr/bin/python3 <name of env>

创建虚拟环境。

然后使用

source <env_name>/bin/activate

激活虚拟环境。

再使用pip安装jupyter-notebook:

pip install jupyter-notebook

然后再安装pandasquandlnumpy包。

最后运行jupyter-notebook。

提取数据

我们先导入需要的包。

import pandas as pd
import quandl as q

这里pandas可以帮助我们进行数据操作和绘图。

之后我们就调用Quandl API。

q.ApiConfig.api_key = "<API key>”

msft_data = q.get("EOD/MSFT", start_date="2010-01-01", end_date="2019-01-01")

msft_data.head()

在这段代码,我们首先设置了需要的api_key。这个需要去官网获取。

然后调用get方法来获取微软从2010年1月1日到2019年1月1日的股票价格。

然后是查看获取的数据集的前5行。

0x02 分析数据

我们先了解数据集的数据构成,这个可以通过info方法查看。

如上图所示,我们可以了解到这些数据包含股票的价格信息。

如股票的开盘价和收盘价、调整后的开盘价以及收盘价,这个调整是将股息分配、股票拆分等行为考虑在内,还包括交易量和当日最高和最低价格。

我们还可以通过describe方法分析数据集的最大值、最小值、平均值等数据。

我们还可以对这些数据继续进行加工。

比如再进行一次采样。将时间间隔调整为每月、每季度或每年。

0x04 计算财务回报

我们接下来进行财务回报的计算。

我们要使用pct_change()方法。

import numpy as np

daily_close = msft_data[['Adj_Close']]

daily_return = daily_close.pct_change()

daily_return.fillna(0, inplace=True)

print(daily_return)

我们使用调整的收盘价来计算从开始时间到各个时间的回报。将这个值乘100就得到回报百分比了。

我们也可以来计算时间间隔为月的回报率:

mdata = msft_data.resample('M').apply(lambda x: x[-1])
monthly_return = mdata.pct_change()
monthly_return.fillna(0, inplace=True)
print(monthly_return)

部分代码参考至:https://www.codementor.io/blog/quantitative-trading-6i4dw8wj4z

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。