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

举报
Regan Yue 发表于 2021/10/29 18:38:23 2021/10/29
【摘要】 谈一谈使用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

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

全部回复

上滑加载中

设置昵称

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

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

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