【无标题】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、数据获取
    • 1.引入库
    • 2.获取数据存入数据库
  • 二、上证指数周期性分析
    • 1.正相关系数和偏相关系数分析
    • 2.结果展示

前言

在大数据时代下,金融数据呈现数量多、类型多等特征,金融方面的数据分析与挖掘越来越重要。数据的下载使用的是Tushare,一个免费、开源的Python财经数据接口包。它主要实现了对股票等金融数据从数据采集、加工到存储的过程,能够提供快速、整洁、和格式多样的数据,便于使用者进行金融数据分析。其最大的优势是数据全面和格式全面,数据包括大量股票、基金、债券、期货、境外股票信息。tushare ID:371897

一、数据获取

1.引入库

 import tushare as ts
 import time
 from sqlalchemy import create_engine

2.获取数据存入数据库

股票数据和指数数据,基本的日线、周线、月线数据获取,调用不同的函数
股票数据:daily,weekly,monthly
指数数据: index_daily,index_weekly,index_monthly
i为对应股票代码

data1 = pro.daily(ts_code=i,start_date='20180101', trade_date=now_date)
data2 = pro.weekly(ts_code=i,start_date='20180101',trade_date=now_date)
data3 = pro.monthly(ts_code=i,start_date='20180101',trade_date=now_date)

engine = create_engine("mysql+pymysql://用户名:用户密码@localhost:3306/数据库名称?charset=utf8")
pro = ts.pro_api('af4e78a046abd543ab2a37e2d1bd7081c4d87661e639ebef9d0e9b1b')
now_date = time.strftime('%Y%m%d', time.localtime(time.time()))
def dapan(tscode):
        try:
            data = pro.index_daily(ts_code=tscode,  start_date=20000101, end_date='now_date')
            res = data.to_sql(name='表名称', con=engine, if_exists="append", index=False)    
        except:
            time.sleep(1)
tscode = dapan('000001.SH')

二、上证指数周期性分析

1.正相关系数和偏相关系数分析

import pymysql
import pandas as pd
# from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
import statsmodels.api as sm
from matplotlib import pyplot as plt
def read_data(code):
# 1连接配置信息,用于读
    config = {
            'host': '127.0.0.1',
            'port': 3306,
            'user': '用户名',
            'password': '用户密码',
            'db': '数据库名称',
            'charset': 'utf8mb4',
            'cursorclass': pymysql.cursors.DictCursor,
        }
    #创建连接
    con = pymysql.connect(**config)
    sql = "select * from 表名称 where ts_code = '"+code+"'"
    try:
        with con.cursor() as cursor:
            cursor.execute(sql)
            result = cursor.fetchall()
    finally:
        con.close()
    df = pd.DataFrame(result)
    df = df[['trade_date', 'close']]
    return df
data = read_data('000001.SH')
print(data.head())
def test1():
    data.plot(figsize=(12, 6))
    plt.show()
def test2():
    sm.graphics.tsa.plot_acf(data.close)
    plt.figure(figsize=(12, 6))
    fig = plt.gcf()
    plt.show()
def test3():
    sm.graphics.tsa.plot_acf(data.close, lags=5000)
    plt.figure(figsize=(12, 6))
    fig = plt.gcf()
    plt.show()
def test4():
    sm.graphics.tsa.plot_pacf(data.close)
    plt.figure(figsize=(12, 6))
    fig = plt.gcf()
    plt.show()
if __name__=='__main__':
    test1()
    test2()
    test3()
    test4()

2.结果展示

(1)pacf偏相关系数,选取50个交易日数据,如图所示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f6d8519276ed4c6699e【无标题】_第1张图片
(2)acf正相关系数,选取5000个交易日数据,如图所示。
【无标题】_第2张图片
结果分析:数学上的正相关系数和偏相关系数可视化分析,指数或者股票还是存在一定的周期性。

你可能感兴趣的:(数据分析,python)