python 获取金融数据_class类在python中获取金融数据

原标题:class类在python中获取金融数据

我们搜集金融数据,通常想要的是利用爬虫的方法。其实我们最近所学的class不仅可以进行类调用,在获取数据方面同样是可行的,很多小伙伴都比较关注理财方面的情况,对金融数据的需要也是比较多的。下面就class类在python中获取金融数据的方法为大家带来讲解。

使用tushare获取所有A股每日交易数据,保存到本地数据库,同时每日更新数据库;根据行情数据进行可视化和简单的策略分析与回测。由于篇幅有限,本文着重介绍股票数据管理(下载、数据更新)的面向对象编程应用实例。

#导入需要用到的模块

import numpy as np

import pandas as pd

from dateutil.parser import parse

from datetime import datetime,timedelta

#操作数据库的第三方包,使用前先安装pip install sqlalchemy

from sqlalchemy import create_engine

#tushare包设置

import tushare as ts

token='输入你在tushare上获得的token'

pro=ts.pro_api(token)

#使用python3自带的sqlite数据库

#本人创建的数据库地址为c:\zjy\db_stock\

file='sqlite:///c:\\zjy\\db_stock\\'

#数据库名称

db_name='stock_data.db'

engine = create_engine(file+db_name)

class Data(object):

def __init__(self,

start='20050101',

end='20191115',

table_name='daily_data'):

self.start=start

self.end=end

self.table_name=table_name

self.codes=self.get_code()

self.cals=self.get_cals()

#获取股票代码列表

def get_code(self):

codes = pro.stock_basic(list_status='L').ts_code.values

return codes

#获取股票交易日历

def get_cals(self):

#获取交易日历

cals=pro.trade_cal(exchange='')

cals=cals[cals.is_open==1].cal_date.values

return cals

#每日行情数据

def daily_data(self,code):

try:

df0=pro.daily(ts_code=code,start_date=self.start,

end_date=self.end)

df1=pro.adj_factor(ts_code=code,trade_date='')

#复权因子

df=pd.merge(df0,df1) #合并数据

except Exception as e:

print(code)

print(e)

return df

#保存数据到数据库

def save_sql(self):

for code

in self.codes:

data=self.daily_data(code)

data.to_sql(self.table_name,engine,

index=False,if_exists='append')

#获取最新交易日期

def get_trade_date(self):

#获取当天日期时间

pass

#更新数据库数据

def update_sql(self):

pass #代码省略

#查询数据库信息

def info_sql(self):

pass #代码省略

代码运行

#假设你将上述代码封装成class Data

#保存在'C:\zjy\db_stock'目录下的down_data.py中

import sys

#添加到当前工作路径

sys.path.append(r'C:\zjy\db_stock')

#导入py文件中的Data类

from download_data import Data

#实例类

data=Data()

#data.save_sql() #只需运行一次即可

data.update_sql()

data.info_sql()

补充:类的专有方法

__init__ : 构造函数,在生成对象时调用

__del__ : 析构函数,释放对象时使用

__repr__ : 打印,转换

__setitem__ : 按照索引赋值

__getitem__: 按照索引获取值

__len__: 获得长度

__cmp__: 比较运算

__call__: 函数调用

__add__: 加运算

__sub__: 减运算

__mul__: 乘运算

__truediv__: 除运算

__mod__: 求余运算

__pow__: 乘方

本篇使用class类在python中获取金融数据的方法,到这里就全部分享给大家了。相信很多小伙伴已经用它开始采集金融数据了,结尾一些类的方法大家可以了解下,都是能经常用到的。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值