本系列转载自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 Client does not support authentication protocol requested by server; consider upgrading MySQL

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

  2. Objective-C简介

    1.OC简介 全称:Objective-C,是扩充C的面向对象编程语言,主要用于iOS和Mac OS开发. C语言的基础上,增加了一层最小的面向对象语法 完全兼容C语言 可以在OC代码中混入C语言代码 ...

  3. js获取当前页面url网址信息

    js如何准确获取当前页面url网址信息 在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结. 下面我们举例一个URL,然后获得它的各个 ...

  4. BIZHUB184打印机提示维修召唤(m2)修复

    其他不用管,按照操作直接干:菜单键--常用设置--左键---左键---常用设置--左键---右键      咦  神奇的进入了service mode  服务模式 选择CLEAR DATA 项---- ...

  5. eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一)

    eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一) 本篇博客主要包含五个内容: 1.CXF换将搭建以及eclipse配置CXF. 2.eclipse创建w ...

  6. Angular四大核心特性

    Angular四大核心特性 Angular四大核心特性理论概述 MVC模式:它目的是为了分离视图.模型和控制器而设计出来的:其中数据模型用来储存数据,视图用来向用户展示应用程序,控制器充当模型和视图之 ...

  7. 【Teradata】配置PE和AMP(congfig和reconfig工具、vprocmanager)

    The Reconfiguration and Configuration utilities are used to define the AMPs and PEs that operate tog ...

  8. PostGIS中dbf file (.dbf) can not be opened.shapefile import failed

    postgis数据库文件shapefile导入 dbf file (.dbf) can not be opened.shapefile import failed. Destination: publ ...

  9. 【HNOI2018】排列

    [HNOI2018]排列 神仙贪心题. 题目说这么大堆东西就是想告诉你这是个森林,选了\(v\)的父亲后才能选\(v\). 我们设\(w_v\)为\(v\)所在联通块权值和,\(size_v\)表示\ ...

  10. https的证书认证 iOS版

    一.证书链 SecTrustRef: SecTrustRef trust = challenge.protectionSpace.serverTrust; 需要先拿出一个 SecTrustRef 对象 ...