精华内容
下载资源
问答
  • 本文我们一起用python来对某只股票的所有历史日数据,一个探索性的分析,看看能不能有一些有趣的发现,希望能激起你对金融数据分析的兴趣。主要用到numpy,pandas模块的一些基本用法。本文的所有数据,包含所有A股...

    本文我们一起用python来对某只股票的所有历史日数据,做一个探索性的分析,看看能不能有一些有趣的发现,希望能激起你对金融数据分析的兴趣。主要用到numpy,pandas模块的一些基本用法。本文的所有数据,包含所有A股的日数据,在文末有下载。

    一、熟悉数据集

    我们先导入需要的模块,然后用pandas的read_csv方法载入数据集。

    观察数据集,包含了代码为000001的股票(平安银行)从上市至今的共6000多天的交易记录,包括每个交易日的交易日期,四个价格(最高,最低,开盘,收盘),涨跌(比),以及交易量和交易额。可以说,有了上面这些数据,可以造出任意一个技术分析指标。

    画个收盘价的均线图试试看:

    上文代码解释:我们先把“trade_date“这一列调整为时间格式,再把它设置为index。然后用df.rolling().mean()计算移动平均数。最后为了现实清晰,选取6500行以后的三个数据进行可视化显示。

    二、初步探索数据集

    1.看一下目前的价格处于历史中的什么价位

    知道了一只股票的价格目前相对最高最低价所处的位置,我们就可以据此对它有一个总体的认识。我们还可以把上面的代码封装成一个函数,函数的输入是股票代码,然后遍历所有的股票,这样我们就可以挑选出我们需要的股票进行进一步研究。比如你想要超低价股,那么可以把p小于5%的股票打印出来,如果想要历史最高价的股票,那就是p=1.

    2.选择合适的移动平均数

    有些散户喜欢利用移动平均线来判断买入卖出,比如常见的,五日ma5上穿十日均线ma10时买入股票,反之卖出股票。那我们接下来先看看,这样的策略效果怎么样。

    上文代码解释:我们根据之前的df生成一个新的dataframe:signals。然后把ma5大于ma10的情况筛选出来,生成新的dataframe:upsig。再对所有ma5大于ma10的时候的涨跌绝对值进行一个简单的相加。可以看出,结果还是比较大的,说明这个策略在这只股票上其实还是有可行性的。

    那么我们不禁要问,5和10这两个参数是不是最佳的呢?如果选5和20呢?结果怎么样?如果你能想到把上面的代码封装成函数,然后用这两个参数作为输入,用循环遍历的方法求出一个最大值,那么也是很可以的了。当然我们还有更加犀利的工具,那就是机器学习!

    用上面的代码,一会儿就造出了接近500个特征,也就是我们机器学习重点的input_data,然后我们可以选取“change”作为我们的结果标签,需要优化的两个参数可以作为超参,使用LR,SVM,RF,ANN等模型把它们玩透。怎么玩?请听下回分解。

    获取所有A股股票日线数据,关注公_众_号,回复‘stockdata‘即可。

    展开全文
  • 本篇运用Python进行自选股的数据分析,帮助进行投资决策,分析用到以下两个模块:pandas(数据分析包);pandas_datareader(可以查询雅虎的股票数据接口)。本篇参考了猴子老师的课程(统计概率思维:描述统计学)...

    本篇运用Python进行自选股的数据分析,帮助进行投资决策,分析用到以下两个模块:pandas(数据分析包);pandas_datareader(可以查询雅虎的股票数据接口)。

    本篇参考了猴子老师的课程(统计概率思维:描述统计学),选取了5家美股和1家A股进行历史数据的分析,以下为其中3家的代码展示。

    先导入所需的数据分析包,建立自选股的字典。

    get_data_yahoo表示从雅虎数据源获取股票数据,获取百度2017年整年的股票数据。

    因数据较多,我们先查看前5行的数据。数据包含开盘价、收盘价、最高价、最低价。

    4. describe()#查看数据集描述统计信息

    count为数据计数,即有多少条数据。

    mean是平均值;std标准差 ; 之后分别是下界(最小值)、下四分位数(25%)、中位数(50%)、上四分位数(75%)、上界(最大值)。

    5. 自定义函数,用于判断股票变化情况。函数中运用了 if elif else 条件语句。

    6. 调用自定义函数,获取股票变化情况,百度整年整体上涨了39%,值得投资。

    7. 导入图形绘制包 matplotlib.pyplot

    7. 从图形上看 百度全年整体呈上升趋势,年底时有所下降。

    8. 用相同的代码结构尝试分析A股情况,选取A股“中科曙光”。

    9. 获取国内股票数据的方式是:“股票代码”+“对应股市”(港股为.hk,A股为.ss),‘中科曙光’:‘603019.ss’。从绘制的走势图可以看出,A股“中科曙光”的全年走势与百度相似。

    10. 以下是对美股IBM的数据展示。

    学会利用Python中的数据分析包可以进行投资数据分析,帮助我们进行投资决策,之后还将对pandas、pandas_datareader、matplotlib.pyplot等数据分析包的各项功能进行进一步了解和研究。

    展开全文
  • 一、初识PandasPandas 是基于 NumPy 的一个非常好用的库,它有两种自己独有的基本数据结构Series (一维)和 DataFrame(二维),它们让数据操作更简单...在金融数据分析领域,Pandas更是起到了非常重要的作用,比如...

    一、初识Pandas

    Pandas 是基于 NumPy 的一个非常好用的库,它有两种自己独有的基本数据结构Series (一维)和 DataFrame(二维),它们让数据操作更简单了。虽然Pandas有着两种数据结构,但它依然是 Python 的一个库,所以,Python 中有的数据类型在这里依然适用,也同样还可以使用类自己定义数据类型。

    在金融数据分析领域,Pandas更是起到了非常重要的作用,比如用于量化交易。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,对于亿级的数据处理也如鱼得水。

    二、Pandas基本操作

    1、Series的创建

    Series的创建主要有三种方式:

    1)通过一维数组创建Series

    import numpy as np

    import pandas as pd

    #创建一维数组

    a = np.arange(10)

    print(a)

    s = pd.Series(a)

    print(s)

    输出如下:

    80cc1ca4703c

    2)通过字典的方式创建Series

    import numpy as np

    import pandas as pd

    #创建字典

    d = {'a':1,'b':2,'c':3,'d':4,'e':5}

    print(d)

    s = pd.Series(d)

    print(s)

    输出如下:

    80cc1ca4703c

    3)通过DataFrame中的某一行或某一列创建Series

    参考下面DataFrame第三种创建方式中的s = df3['one']。

    2、DataFrame的创建

    DataFrame的创建主要有三种方式:

    1)通过二维数组创建DataFrame

    import numpy as np

    import pandas as pd

    #创建二维数组

    a = np.array(np.arange(12)).reshape(3,4)

    print(a)

    df1 = pd.DataFrame(a)

    print(df1)

    输出如下:

    80cc1ca4703c

    2)通过字典的方式创建DataFrame

    以下以两种字典来创建数据框,一个是字典列表,一个是嵌套字典。

    import numpy as np

    import pandas as pd

    d1 = {'a':[1,2,3,4],'b':[5,6,7,8],'c':[9,10,11,12],'d':[14,14,15,16]}

    print(d1)

    df1 = pd.DataFrame(d1)

    print(df1)

    d2 = {'one':{'a':1,'b':2,'c':3,'d':4},'two':{'a':5,'b':6,'c':7,'d':8},'three':{'a':9,'b':10,'c':11,'d':12}}

    print(d2)

    df2 = pd.DataFrame(d2)

    print(df2)

    输出如下:

    80cc1ca4703c

    3)通过DataFrame的方式创建DataFrame

    我们取出2)中的df2来创建df3

    df2 = pd.DataFrame(d2)

    print(df2)

    df3 = df2[['one','two']]

    print(df3)

    s = df3['one']

    print(s)

    输出如下:

    80cc1ca4703c

    三、处理股票数据

    接下来,我们通过实例来学习Pandas在处理股票数据上的应用。

    我们使用pandas_datareader来获取阿里巴巴的股票数据。

    1)导入以下库:

    import pandas as pd

    import pandas_datareader.data as web

    #绘图使用

    import matplotlib.pyplot as plt

    #获取时间使用

    import datetime

    2)设置股票名称和时间参数

    name = "BABA"

    start = datetime.datetime(2015,1,1)

    end = datetime.date.today()

    3)获取股票数据

    prices = web.DataReader(name, "google", start, end)

    4)查看prices的类型

    print(type(prices))

    打印如下:

    可以看到返回的数据类型就是DataFrame类型。

    5)查看股票的摘要信息

    print(prices.describe()

    打印 如下:

    Open High Low Close Volume

    count 791.000000 791.000000 792.000000 792.000000 7.920000e+02

    mean 106.632099 107.793186 105.355164 106.614520 1.610571e+07

    std 38.191772 38.539981 37.719848 38.156416 9.941683e+06

    min 57.300000 58.650000 57.200000 57.390000 2.457439e+06

    25% 79.855000 80.945000 79.157500 79.935000 1.003487e+07

    50% 91.000000 91.740000 89.925000 90.705000 1.350020e+07

    75% 119.315000 120.400000 118.462500 120.205000 1.879724e+07

    max 204.830000 206.200000 202.800000 205.220000 9.704593e+07

    再来打印最新的三条信息

    print(prices.tail(3))

    Open High Low Close Volume

    Date

    2018-02-21 189.37 193.17 188.46 188.82 22071585

    2018-02-22 190.20 190.74 187.77 188.75 12282843

    2018-02-23 190.18 193.40 189.95 193.29 16937275

    6)绘图

    我们将阿里巴巴的股票数据按照开盘价绘图。

    plt.plot(prices.index, prices["Open"])

    plt.show()

    80cc1ca4703c

    从图中我们可以看到阿里巴巴的股票一路攀升,细心点发现每年的11月都有一个高点。

    四、总结

    Pandas是以NumPy和Matplotlib为基础封装的金融数据分析的库,对于量化交易十分有用,通过可视化的效果能帮我们一定程度分析股市的走向。

    展开全文
  • 原标题:Python股票数据分析数据挖掘入门与实战 公众号: datadwpython版本:3.4最近在学习基于python的股票数据分析,其中主要用到了tushare和seaborn。tushare是一款财经类数据接口包,国内的股票数据还是比较全的...

    原标题:Python股票数据分析

    数据挖掘入门与实战 公众号: datadw

    python版本:3.4

    最近在学习基于python的股票数据分析,其中主要用到了tushare和seaborn。tushare是一款财经类数据接口包,国内的股票数据还是比较全的,官网地址:。seaborn则是一款绘图库,通过seaborn可以轻松地画出简洁漂亮的图表,而且库本身具有一定的统计功能。

    导入的模块:

    import matplotlib.pyplot as plt

    import seaborn as sns

    import seaborn.linearmodels as snsl

    from datetime import datetime

    import tushare as ts

    代码部分:

    股票收盘价走势曲线

    sns.set_style("whitegrid")

    end = datetime.today() #开始时间结束时间,选取最近一年的数据

    start = datetime(end.year-1,end.month,end.day)

    end = str(end)[0:10]

    start = str(start)[0:10]

    stock = ts.get_hist_data('300104',start,end)#选取一支股票

    stock['close'].plot(legend=True ,figsize=(10,4))

    plt.show()

    b4e649b9baeb499aba08c7abc2f80d9d_th.png

    股票日线

    同理,可以做出5日均线、10日均线以及20日均线

    stock[['close','ma5','ma10','ma20']].plot(legend=True ,figsize=(10,4))

    9b6eea0c2afb4a4c963c281c71febf23_th.jpeg

    日线、5日均线、10日均线、20日均线

    股票每日涨跌幅度

    stock['Daily Return'] = stock['close'].pct_change()

    stock['Daily Return'].plot(legend=True,figsize=(10,4))

    787d0fba5a1545d5a7517d13a40d8c0e_th.jpeg

    每日涨跌幅

    核密度估计

    sns.kdeplot(stock['Daily Return'].dropna())

    b7116d524d6749fba0c9f9accbb7cfc8_th.png

    核密度估计

    核密度估计+统计柱状图

    sns.distplot(stock['Daily Return'].dropna(),bins=100)

    c116a6f2c72c46f5a6736710cbbaa92c_th.png

    核密度+柱状图

    两支股票的皮尔森相关系数

    sns.jointplot(stock['Daily Return'],stock['Daily Return'],alpha=0.2)

    b612564895c949218a67c85c7b33b6a1_th.png

    皮尔森相关系数

    多只股票相关性计算

    stock_lis=['300113','300343','300295','300315`] #随便选取了四支互联网相关的股票

    df=pd.DataFrame()

    for stock in stock_lis: closing_df = ts.get_hist_data(stock,start,end)['close'] df = df.join(pd.DataFrame({stock:closing_df}),how='outer')

    tech_rets = df.pct_change()

    snsl.corrplot(tech_rets.dropna())

    28bf2a88b0834841a770345e3b681870_th.png

    相关性

    简单地计算股票的收益与风险,衡量股票收益与风险的数值分别为股票涨跌的平均值以及标准差,平均值为正则说明收益是正的,标准差越大则说明股票波动大,风险也大。

    rets = tech_rets.dropna()

    plt.scatter(rets.mean(),rets.std())

    plt.xlabel('Excepted Return')

    plt.ylabel('Risk')

    for label,x,y in zip(rets.columns,rets.mean(),rets.std()):#添加标注 plt.annotate( label, xy =(x,y),xytext=(15,15), textcoords = 'offset points', arrowprops = dict(arrowstyle = '-',connectionstyle = 'arc3,rad=-0.3'))

    6bd3b0003f82442796019fec11387ef7_th.png

    数据挖掘入门与实战

    教你机器学习,教你数据挖掘

    公众号: weic2c

    责任编辑:

    展开全文
  • Python 本地股票数据分析&处理 文章目录Python 本地股票数据分析&处理说明实例题目关于数据源判断股票数据是否存在读取并处理股票数据总体代码运行结果展示 说明 本人Python小菜鸡,新手一枚,分享自己平时...
  • 用python进行yahoo股票数据分析一文中所用的的代码
  • 本篇文章讲了用python爬取六家公司的股票数据,分析股票走势、波动性、涨幅等,最终得出一点点结论。一、包的安装Python进行数据分析时,有几个包比较重要,所以需提前把这几个包安装好。pandas包用于分析数据,...
  • Python作为一门高ji语言是很好用的,...Python的存在就是为了帮助我们快速解决实际问题,对于使用Python进行股票的金融数据量化分析是如何的呢?接下来一起来看看吧!量化交易属于人工智能的一个应用分支,它利用计...
  • python股票数据分析

    千次阅读 2018-02-25 17:08:11
    一、初识PandasPandas 是基于 NumPy 的一个非常好用的库,它有两种自己独有的基本数据结构Series (一维)和 DataFrame(二维),它们让数据操作更简单...在金融数据分析领域,Pandas更是起到了非常重要的作用,比如...
  • 金融业使用高等数学和统计已经有段时日。早在八十年代以前,银行业和金融业被认为是“枯燥”的;投资银行跟商业银行是分开的,业界主要的任务是处理“简单的”(跟当今相比)的金融职能,例如贷款。里根政府的减少...
  • python数据分析

    万次阅读 多人点赞 2018-07-22 19:43:44
    python绘图、python数据分析python库、股票分析
  • 最近做数据分析,先是找到了Tushare这个免费开源的第三方财经包,但后来了几天之后发现,它的日交易历史数据有时候有不准确的情况,查看源代码发现,这个包的数据源是凤凰财经,而对比凤凰网站其站点的数据本身...
  • 使用python股票数据分析预测

    千次阅读 2019-07-16 21:19:38
    安装quandl ...1、获取数据 import Pandas_Datareader.data as web import datetime start=datetime.datetime(2018,1,1) end=datetime.datetime.now() SZ000001=web.DataReader('000001.SZ','yahoo...
  • Python数据分析:股票数据分析案例

    万次阅读 多人点赞 2019-05-01 15:54:26
    Python数据分析:股票数据分析案例 步骤: 准备数据 可视化数据、审查数据 处理数据 根据ACF、PACF定阶 拟合ARIMA模型 预测 import pandas as pd import pandas_datareader import datetime import matplotlib....
  • 数据分析Python 的一大应用领域。...那么,想要学习 Python 做数据分析该从何入手?既然是数据分析,首先,你得有数据。今天就来介绍一个很好用的财经数据包:TuShareTuShare是一个免费、开源的python财经...
  • 学习用Python分析股票数据(入门)

    万次阅读 多人点赞 2018-04-10 15:52:38
    学习使用python分析股票,主要事涉及数据获取、数据可视化,以及探究数据中各项指标的含义及和关系。 使用工具 pandas、numpy、datatime pandas-datareader 在线获取股票数据 matplotlib 数据可视化 ...
  • 用python抓取股票数据炒股,代码拿去

    千次阅读 多人点赞 2021-08-23 08:01:16
    用python抓取股票数据
  • 1.数据导入pandas.read_table()函数将TXT文件数据读入成DataFrame格式。如:stock = pd.read_table('stockData.txt', usecols=range(15),parse_dates=[0], index_col=0)其中参数usecols=range(10)限制只读取前10列...
  • 股票分析最重要的是获取历史数据,现在网上各种数据接口层出不穷,最近发现一个免费好用的接口,和大家分享一下。证券宝(网址www.baostock.com)是一个免费、开源的证券数据平台,最重要的是:无需注册。第一步:...
  • 本文旨在帮助想用python做数据分析,或者想对某只或某几支股票进行风险对比和横向分析的朋友进行梳理。内容较为简洁,文中用到的包都会列举出来,如有问题,欢迎交流学习~ 一、实现步骤 1.引入库(导包) 代码如下...
  • 近几年,Python的热度一直在涨,它的应用领域也非常广泛:自动化测试,Devops运维,爬虫工程师,Web开发,数据分析,机器学习等,不过 Python 还有一个神秘而有趣的应用领域,...
  • Python3 量化投资,股票数据分析
  • stockdata.atr('000001', 5)
  • 给大家带来的一篇关于Python相关的电子书资源,介绍了关于量化交易、Python股票方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小103.8 MB,阿布编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,464
精华内容 6,185
关键字:

用python做股票数据分析

python 订阅