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图,这将允许我介绍重新采 ...
随机推荐
- Python——pyHook监听鼠标键盘事件
pyHook包为Windows中的全局鼠标和键盘事件提供回调. 底层C库报告的信息包括事件的时间,事件发生的窗口名称,事件的值,任何键盘修饰符等. 而正常工作需要pythoncom等操作系统的API的 ...
- 【redis专题(10)】KEY设计原则与技巧
对比着关系型数据库,我们对redis key的设计一般有以下两种格式: 表名:主键名:主键值:列名 表名:主键值:列名 在所有主键名都是id的情况下(其实我个人不喜欢这种情况,比如user表,它的主键 ...
- C#计算时间差 TimeSpan
TimeSpan的相关属性 Add:与另一个TimeSpan值相加. Days:返回用天数计算的TimeSpan值. Duration:获取TimeSpan的绝对值. Hours:返回用小时计算的Ti ...
- 关于.NET字符串驻留的问题
默认情况下,CLR会把字符串常量保存在字符串池中..NET 2.0引入了CompilationRelaxations.NoStringInterning枚举成员.这个枚举CompilationRela ...
- C++借助curses库实现俄罗斯方块
主要要实现如下几个功能:方块的移动控制.方块变形.判定方块是否接触边界和进行方块堆积.对方块进行消除. 1.方块的移动控制上下左右四个方向上-->变形,下-->加速下落,左-->向左 ...
- python3编写网络爬虫23-分布式爬虫
一.分布式爬虫 前面我们了解Scrapy爬虫框架的基本用法 这些框架都是在同一台主机运行的 爬取效率有限 如果多台主机协同爬取 爬取效率必然成倍增长这就是分布式爬虫的优势 1. 分布式爬虫基本原理 1 ...
- Node爬虫之初体验
记得之前就听说过爬虫,个人初步理解就是从网页中抓取一些有用的数据,存储到本地,今天就当是小牛试刀,拿来溜溜...... 实现需求: 抓取课程数据,输入url后并在浏览器端以一定的数据格式显示出来(如下 ...
- 新近碰到的病毒(TR.Spy.Babonock.A)
先来段Microsoft的说明: Worm:Win32/Babonock.A Alert level: Severe Detected with Windows Defender Antivirus ...
- mysql 数据备份与数据导入到出
一.数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异构系统中如Windows. #2. 逻辑备份: 备份的是建表.建库.插入等操作所执行SQL语句,适用于中小型数 ...
- 【NOI2018模拟5】三角剖分Bsh
[NOI2018模拟5]三角剖分Bsh Description 给定一个正 n 边形及其三角剖分,共 2n - 3 条边 (n条多边形的边和n-3 条对角线),每条边的长度为 1. 共 q 次询问,每 ...