本系列转载自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股票分析系列——数据整理和绘制.p2

Python股票分析系列——系列介绍和获取股票数据.p1的更多相关文章

  1. Pandas应用案例-股票分析:使用tushare包获取股票的历史行情数据进行数据分析

    目标: 使用tushare包获取股票的历史行情数据 输出该股票所有收盘比开盘上涨3%以上的日期 输出该股票所有开盘比前日收盘跌幅超过2%以上的日期 假如为我们从2010年1月1日开始,每月第一个交易日 ...

  2. [Python爬虫] 之一 : Selenium+Phantomjs动态获取网站数据信息

    本人刚才开始学习爬虫,从网上查询资料,写了一个利用Selenium+Phantomjs动态获取网站数据信息的例子,当然首先要安装Selenium+Phantomjs,具体的看 http://www.c ...

  3. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  4. Python爬取猪肉价格网并获取Json数据

    场景 猪肉价格网站: http://zhujia.zhuwang.cc/ 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获 ...

  5. 告别IT,出售多年自己研发的股票分析系统源码

    不知已过而立,发狠告别IT,回头看看以前自己的多个作品,耗时最多的就是这个股票分析系统了,留在自己的电脑里也体现不出多大价值了,故打算出售源码给需要的人,联系方式QQ:874724605 注明:股票源 ...

  6. python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据

    python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...

  7. Python股票分析系列——自动获取标普500股票列表.p5

    该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第5部分.在本教程和接下来的几节中,我们将着手研究如何为更多公司提供大量的定价信息,以及如何一次 ...

  8. 金融量化分析-python量化分析系列之---使用python获取股票历史数据和实时分笔数据

    财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据.历史分笔数据,本文对tushare的用法,已经存在的 ...

  9. Python股票分析系列——基础股票数据操作(二).p4

    该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第4部分.在本教程中,我们将基于Adj Close列创建烛台/ OHLC图,这将允许我介绍重新采 ...

随机推荐

  1. mysql数据表的基本操作:表结构操作,字段操作

    本节介绍: 表结构操作 创建数据表. 查看数据表和查看字段. 修改数据表结构 删除数据表 字段操作 新增字段. 修改字段数据类型.位置或属性. 重命名字段 删除字段 首发时间:2018-02-18  ...

  2. Team Services的打包管理

    Team Services的打包管理 概述 Package Management (打包管理)是一种扩展,可以更容易地发现.安装和发布包. 它与Team Services中心如构建功能深度集成,这样打 ...

  3. kali2016.2(debian)快速安装mysql5.7.17

    糊里糊涂的删除了kali原本的mysql5.6.27版本,原本的mysql与很多软件关联在一起,每次安装都失败,后来把相关的都卸载了(悲催的浪费了一天) 下载地址  debian mysql下载地址 ...

  4. Oracle EBS FORM 设置块属性

    declare blk_id BLOCK; begin blk_id := Find_block('ADRP_HEADER'); Set_block_property(blk_id,insert_al ...

  5. Windows Server 2016-配置Windows Defender防病毒排除项

    Windows Server 2016 的计算机上的 Windows Defender 防病毒自动注册你在某些排除项,由你指定的服务器角色定义. 这些排除项不会显示在Windows 安全中心应用中所示 ...

  6. windbg调试子进程

    windbg 调试子进程 学习过程中遇到了一个从前未调试过的情景:我正在调试的进程通过CreateProcessW创建了一个子进程,我需要去了解子进程中发生的行为. 那么怎么去调试呢?OD 就有点麻烦 ...

  7. win10显示许可证即将过期,但在激活界面显示的仍是已激活问题解决

    win10开机显示"许可证即将过期"怎么办? 很多win10用户在开机的时候遇见了"许可证即将过期"请转到设置种激活windows的问题,但是查询自己的win1 ...

  8. 设置Linux环境变量的方法和区别_Ubuntu

    设置 Linux 环境变量可以通过 export 实现,也可以通过修改几个文件来实现,有必要弄清楚这两种方法以及这几个文件的区别. 通过文件设置 Linux 环境变量 首先是设置全局环境变量,对所有用 ...

  9. ubuntu下VS code如何调试C++代码

    最近开始使用Vs codel,真的方便,可以和git结合.下面总结一下如何调试程序, 我写了一个实例程序(不重要) #include <iostream> #include <fst ...

  10. 贪心——D - Radar Installation

    Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. ...