我们搜集金融数据,通常想要的是利用爬虫的方法。其实我们最近所学的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_stockfile='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):
代码运行
#假设你将上述代码封装成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()
实例扩展:
Python下,pandas_datareader模块可以用于获取研究数据。例子如下:
> from pandas_datareader.data import DataReader > > datas = DataReader(name='AAPL', data_source='yahoo', start='2018-01-01') > > type(datas) <class 'pandas.core.frame.DataFrame'> > datas Open High Low Close Adj Close Date 2018-01-02 170.160004 172.300003 169.259995 172.259995 172.259995 2018-01-03 172.529999 174.550003 171.960007 172.229996 172.229996 2018-01-04 172.539993 173.470001 172.080002 173.029999 173.029999 2018-01-05 173.440002 175.369995 173.050003 175.000000 175.000000 2018-01-08 174.350006 175.610001 173.929993 174.350006 174.350006 2018-01-09 174.550003 175.059998 173.410004 174.330002 174.330002 2018-01-10 173.160004 174.300003 173.000000 174.289993 174.289993 2018-01-11 174.589996 175.490005 174.490005 175.279999 175.279999 2018-01-12 176.179993 177.360001 175.649994 177.089996 177.089996 Volume Date 2018-01-02 25555900 2018-01-03 29517900 2018-01-04 22434600 2018-01-05 23660000 2018-01-08 20567800 2018-01-09 21584000 2018-01-10 23959900 2018-01-11 18667700 2018-01-12 25226000 > > print(datas.to_csv()) Date,Open,High,Low,Close,Adj Close,Volume 2018-01-02,170.160004,172.300003,169.259995,172.259995,172.259995,25555900 2018-01-03,172.529999,174.550003,171.960007,172.229996,172.229996,29517900 2018-01-04,172.539993,173.470001,172.080002,173.029999,173.029999,22434600 2018-01-05,173.440002,175.369995,173.050003,175.0,175.0,23660000 2018-01-08,174.350006,175.610001,173.929993,174.350006,174.350006,20567800 2018-01-09,174.550003,175.059998,173.410004,174.330002,174.330002,21584000 2018-01-10,173.160004,174.300003,173.0,174.289993,174.289993,23959900 2018-01-11,174.589996,175.490005,174.490005,175.279999,175.279999,18667700 2018-01-12,176.179993,177.360001,175.649994,177.089996,177.089996,25226000 >
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]