Python股票分析系列——系列介绍和获取股票数据.p1
本系列转载自youtuber sentdex博主的教程视频内容
https://www.youtube.com/watch?v=19yyasfGLhk&index=4&list=PLQVvvaa0QuDcOdF96TBtRtuQksErCEBYZ
手工翻译,有任何疑问可以在下方留言,我尽力回答~
该系列视频已经搬运至bilibili: 点击查看
汉化版视频:点击查看
正确的食用方法:文章大部分为机翻,修正了一些有明显不通顺的地方,能读懂大致意思即可,代码是最重要的,代码量不多很容易看懂
学习该系列您需要有:
1. Python基础知识
2. 安装 numpy/matplotlib/pandas/pandas-datareader/beatifulsoup4/sklearn
HI all,欢迎来到Python for Finance系列教程。在本系列中,我们将介绍使用Pandas框架将金融(股票)数据导入Python的基础知识。从这里开始,我们将操纵数据并试图想出一些投资公司的系统,应用一些机器学习,甚至是一些深入的学习,然后学习如何回溯测试策略。我假设你知道Python的基础知识。如果在任何时候你被困在这个系列中,或者对某个主题或概念感到困惑,请随时寻求帮助,我会尽我所能提供帮助。
我被问到的一个常见问题是我是否通过这些技术获利投资或交易。我主要是为了娱乐而练习金融数据,并且练习我的数据分析技巧,但实际上这也影响了我今天的投资决策。在写这篇文章的时候,我并没有用编程进行积极的算法交易,但是我已经有了,而且我实际上已经从中盈利了,但是它的工作量远远超出了您对算法交易的期望。最后,关于如何操纵和分析财务数据以及如何测试交易状态的知识为我节省了大量的金钱。
这里提出的策略都不会让你成为一个超富有的人。如果他们愿意,我可能会把它们留给自己!然而,知识本身可以为你节省资金,甚至可以让你赚钱。
好吧,让我们开始吧。首先,我使用的是Python 3.5,但您应该能够使用更高版本。我会假设你已经安装了Python。如果你没有64位的Python,但是有64位的操作系统,可以获得64位的Python,它稍后会帮助你。如果你使用的是32位操作系统,我为你的情况感到抱歉,但无论如何,你应该没问题。
需要安装的python模块:
- Numpy
- Matplotlib
- Pandas
- Pandas-datareader
- BeautifulSoup4
- scikit-learn / sklearn
首先,我们将进行以下导入:
import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
现在进行一些启动设置:
style.use('ggplot') start = dt.datetime(2000, 1, 1)
end = dt.datetime(2016, 12, 31)
我们正在设定一种style,所以我们的图表看起来并不可怕。在金融领域,即使您亏损,您的图表也非常重要。接下来,我们将设置开始和结束日期时间对象,这将是我们要获取股票定价信息的日期范围。
现在,我们可以根据这些数据创建一个数据集dataframe,这里df就是dataframe的缩写:
df = web.DataReader('TSLA', "yahoo", start, end)
(18.3.16注: 当前新版的pandas-datareader在获取yahoo数据的时候接口有问题,拿不到数据,建议使用python2版本,pandas-datareader==0.5.0 亲测有效)
如果您目前不熟悉DataFrame对象,可以查看关于Pandas的教程,或者只是将其想象为电子表格或存储器/ RAM中的数据库表。这只是一个行和列表,你有一个索引和列名。在我们的情况下,我们的指数可能是日期。该索引应该是与所有列相关的内容。
web.DataReader('TSLA','yahoo',start,end)使用pandas_datareader包,寻找股票代码TSLA(特斯拉),从yahoo获取信息,以任何开始的起始日期为结束我们选择的最终变量。只要你不知道,股票是公司所有权的一部分,股票是用来引用公司所在股票交易所的“符号”。大部分代码是1-4个字母。
所以现在我们有一个包含特斯拉股票定价信息的Pandas.DataFrame对象。让我们看看我们在这里:
print(df.head())
Open High Low Close Volume Adj Close
Date
2010-06-29 19.000000 25.00 17.540001 23.889999 18766300 23.889999
2010-06-30 25.790001 30.42 23.299999 23.830000 17187100 23.830000
2010-07-01 25.000000 25.92 20.270000 21.959999 8218800 21.959999
2010-07-02 23.000000 23.10 18.709999 19.200001 5139800 19.200001
2010-07-06 20.000000 20.00 15.830000 16.110001 6866900 16.110001
.head()是您可以对Pandas DataFrames执行的操作,它会输出前n行,其中n是您传递的可选参数。如果您未传递参数,则默认值为5。我们很可能会使用.head()来快速浏览我们的数据,以确保我们走在正确的轨道上。看起来很棒!
如果您不知道:
Open - 开盘价 股市在早上开盘交易时,一股的价格是多少?
High - 最高 在交易日的过程中,那一天的最高价值是多少?
Low - 最低 在交易日的过程中,那一天的最低价值是多少?
Close - 收盘价 当交易日结束时,最终价格是多少?
Volume - 那一天,交易了多少股份?
adj Close - 复权后价格 这一点稍微复杂一些,但随着时间的推移,公司可能会决定做一些所谓的股票拆分。例如,苹果一旦股价超过1000美元就做了一次。由于在大多数情况下,人们无法购买股票的一小部分,股票价格1,000美元对投资者来说相当有限。公司可以进行股票拆分,他们说每股份现在是2股,价格是一半。任何人在苹果公司以每股1000美元的价格将股票翻番的情况下持有1股苹果股份,他们将拥有2股苹果公司(AAPL),每股价值500美元。 Adj Close是有帮助的,因为它可以解释未来的股票分割,并给出分割的相对价格。出于这个原因,调整后的价格是您最有可能处理的价格。
Python股票分析系列——系列介绍和获取股票数据.p1的更多相关文章
- Pandas应用案例-股票分析:使用tushare包获取股票的历史行情数据进行数据分析
目标: 使用tushare包获取股票的历史行情数据 输出该股票所有收盘比开盘上涨3%以上的日期 输出该股票所有开盘比前日收盘跌幅超过2%以上的日期 假如为我们从2010年1月1日开始,每月第一个交易日 ...
- [Python爬虫] 之一 : Selenium+Phantomjs动态获取网站数据信息
本人刚才开始学习爬虫,从网上查询资料,写了一个利用Selenium+Phantomjs动态获取网站数据信息的例子,当然首先要安装Selenium+Phantomjs,具体的看 http://www.c ...
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...
- Python爬取猪肉价格网并获取Json数据
场景 猪肉价格网站: http://zhujia.zhuwang.cc/ 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获 ...
- 告别IT,出售多年自己研发的股票分析系统源码
不知已过而立,发狠告别IT,回头看看以前自己的多个作品,耗时最多的就是这个股票分析系统了,留在自己的电脑里也体现不出多大价值了,故打算出售源码给需要的人,联系方式QQ:874724605 注明:股票源 ...
- python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据
python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...
- Python股票分析系列——自动获取标普500股票列表.p5
该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第5部分.在本教程和接下来的几节中,我们将着手研究如何为更多公司提供大量的定价信息,以及如何一次 ...
- 金融量化分析-python量化分析系列之---使用python获取股票历史数据和实时分笔数据
财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据.历史分笔数据,本文对tushare的用法,已经存在的 ...
- Python股票分析系列——基础股票数据操作(二).p4
该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第4部分.在本教程中,我们将基于Adj Close列创建烛台/ OHLC图,这将允许我介绍重新采 ...
随机推荐
- git 入门教程之版本控制
版本控制 我们知道 git 是分布式版本控制系统,所以称被控制对象是版本本身没错,但是从git 命令中发现,并没有版本这个名词,有的只是commit,所以前几节我一直称其为提交. 为了避免后续教程引发 ...
- iOS 10.3下解决Fiddler代理抓包ssl证书信任问题
iPhone系统更新到iOS 10.3以后,设置fiddler代理抓包,会出现无法抓取https请求,app请求失败的问题 这是因为在iOS 10.3之前,当你将安装fiddler的自定义证书后,iO ...
- 使用Visual Studio Team Services敏捷规划和项目组合管理(七)——流程定制
使用Visual Studio Team Services敏捷规划和项目组合管理(七)--流程定制 在Team Services中,可以通过流程定制工作追踪体验.流程定义了工作项跟踪系统的构建部分,以 ...
- March 07th, 2018 Week 10th Wednesday
Better later than never. 亡羊补牢,时犹未晚. Time and again all of us are told to complete the tasks assigned ...
- 你可能不知道的printf
前言 printf可能是我们在学习C语言的过程中最早接触的库函数了.其基本使用想必我们都已经非常清楚了.但是下面的这些情况你是否已经清楚地知道了呢? 示例程序 我们来看一个示例程序,看看你能否对下面的 ...
- Java运行Jar包内存配置
java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M car.jar 说明: 1.堆内存:最小1024M,最大153 ...
- Kafka如何删除topic?
Kafka如何删除topic? 今天为大家带来“Kafka删除topic原理解析”,希望可以帮到那些苦于无法删除topic的朋友们. 前提条件: 在启动broker时候开启删除topic的开关,即在s ...
- JavaScript getFullYear() 方法
JavaScript Date 对象 定义和用法 getFullYear() 方法可返回一个表示年份的 4 位数字. 语法 dateObject.getFullYear() 返回值 当 dateObj ...
- 【BZOJ2117】 [2010国家集训队]Crash的旅游计划
[BZOJ2117] [2010国家集训队]Crash的旅游计划 Description 眼看着假期就要到了,Crash由于长期切题而感到无聊了,因此他决定利用这个假期和好友陶陶一起出去旅游. Cra ...
- Tmux的快捷键
Ctrl+b 激活控制台:此时以下按键生效 系统操作 ? 列出所有快捷键:按q返回 d 脱离当前会话:这样可以暂时返回Shell界面,输入tmux attach能够重新进入之前的会话 D 选择要脱离的 ...