本系列转载自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. Kotlin入门(21)活动页面的跳转处理

    Activity的活动页面跳转是App最常用的功能之一,在前几章的demo源码中便多次见到了,常常是点击界面上的某个按钮,然后跳转到与之对应的下一个页面.对于App开发者来说,该功能的实现非常普通,使 ...

  2. perfect-scrollbar在vue中的使用

    1.下载perfect-scrollbar依赖包 npm install perfect-scrollbar 2.perfect-scrollbar特性 1)直接下载依赖包及包含css样式和js 2) ...

  3. Linux 网卡聚合

    Linux 网卡聚合的类型: 1.broadcast:传输来自所有端口的每个包 2.roundrobin:以轮播方式传输来自每个端口的包 3.activebackup:故障转移运行程序,监视更改并选择 ...

  4. XtraBackup备份出现"Can't locate Digest/MD5.pm in @INC"

    在CentOS 7上安装了Xtrabackup 2.4.5(innobackupex version 2.4.5 Linux (x86_64) (revision id: e41c0be)),然后做备 ...

  5. java笔记----线程状态转换函数

    注意:stop().suspend()和 resume()方法现在已经不提倡使用,这些方法在虚拟机中可能引起“死锁”现象.suspend()和 resume()方法的替代方法是 wait()和 sle ...

  6. Greenplum启动失败Error occurred: non-zero rc: 1的修复

    某日开发反馈测试环境的集群启动失败 报错内容如下: [gpadmin@hadoop-test2:/root]$ gpstart :::: gpstart:hadoop-test2:gpadmin-[I ...

  7. Linux唤醒抢占----Linux进程的管理与调度(二十三)

    1. 唤醒抢占 当在try_to_wake_up/wake_up_process和wake_up_new_task中唤醒进程时, 内核使用全局check_preempt_curr看看是否进程可以抢占当 ...

  8. Windows Server 2016-Active Directory域服务端口汇总

    本章为大家简单整理一下有关Windows server Active Directory和Active Directory域服务(AD DS)组件的端口要求.生产环境中我们在做网络调整.防火墙或者开关 ...

  9. HDU ACM 1690 Bus System (SPFA)

    Bus System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. 三星笔记本进入BIOS后找不到U盘启动项/快速启动键F12没有反应

    分析:BIOS开启了 Fast Bios Mode 解决方法: 开机按F2进入BIOS设置,选择Advanced菜单下Fast Bios Mode,设置为 Disabled,按F10键保存退出,重启时 ...