zoukankan      html  css  js  c++  java
  • Python 股票市场分析实战

    目标:

    1.股票数据获取

    2.历史趋势分析及可视化

    3.风险分析

    实验数据:来源于Yahoo Finance / Stooq,该网站提供了很多API接口,本文用的工具是pandas-datareader

    实验平台:Anaconda (pandas-datareader 需手动pip install)

    导入工具包

    1 import datetime
    2 import seaborn as sns
    3 import matplotlib.pyplot as plt
    4 import pandas as pd
    5 import numpy as np
    6 import pandas_datareader as web

    获取数据

    1 start = datetime.datetime(2016, 1, 1)  # 获取数据的时间段-起始时间
    2 end = datetime.date.today()  # 获取数据的时间段-结束时间
    3 alibaba = web.DataReader("BABA", "stooq", start, end)  # 获取阿里巴巴2016年1月1日至今的股票数据

    查看数据

    print(alibaba.head())  # 查看前5条数据

    print(alibaba.tail())  # 查看后5条数据
    print(alibaba.index)  # 查看DataFrame索引,索引为时间序列
    print(alibaba.columns)  # 查看DataFram列名,列信息为开盘价、最高价、最低价、收盘价、成交量
    print(alibaba.shape)  # 查看DataFram形状
    print(alibaba.describe())  # 查看DataFrame数据每组的统计情况,如最小值、最大值、均值、标准差等

    趋势分析及可视化

     1 alibaba["Close"].plot(legend=True)  # 收盘价可视化
     2 plt.show()

     3 alibaba["Volume"].plot(legend=True)  # 交易量可视化
     4 plt.show()
     
    10 # 每日内股票变化
    11 alibaba['high-low'] = alibaba['High'] - alibaba['Low']
    12 print(alibaba.head())
    14 # 每日间股票变化daily return
    15 alibaba['daily-return'] = alibaba['Close'].pct_change()
    16 alibaba['daily-return'].plot(figsize=(40,2))
    17 plt.show()
    19 # 每日间股票变化分布图
    20 alibaba['daily-return'].plot(kind='hist')
    21 plt.show()

    23 sns.distplot(alibaba['daily-return'].dropna())
    24 plt.show()

    风险分析

    1 # 获取五家科技公司2015至今的股票数据
    2 start = datetime.datetime(2015,1,1)
    3 company = ['AAPL','GOOG','MSFT','AMZN','FB']
    4 top_tech_df = web.DataReader(company,'stooq',start)['Close']
    5 print(top_tech_df.head())



    1 # 每日收盘价较前一个交易日的百分比变化,即涨跌幅度
    2 top_tech_dr = top_tech_df.pct_change()
    3 print(top_tech_dr.head())

    # 五家公司的股票收盘价走势图
    top_tech_df.plot()
    plt.show()


    # 探究两组变量的分布及关系
    sns.jointplot(x='GOOG',y='MSFT',data=top_tech_dr)
    plt.show()

      

     # 所有股票相关性比较

    sns.pairplot(top_tech_dr.dropna())
    plt.show()

  • 相关阅读:
    Python定时任务sched(一)
    Python使用selenium进行爬虫(一)
    有关在python中使用Redis(二)
    有关JSOUP学习分享(一)
    jsoup爬虫,项目实战,欢迎收看
    有关在python中使用Redis(一)
    俄罗斯方块代码
    Android !No Launcher activity found!错误
    让jar程序在linux上一直执行(转)
    MyEclipse打包jar 并加入第三方包
  • 原文地址:https://www.cnblogs.com/waterr/p/14169673.html
Copyright © 2011-2022 走看看