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中獲取金融數據的方法,到這里就全部分享給大家了。相信很多小伙伴已經用它開始采集金融數據了,結尾一些類的方法大家可以了解下,都是能經常用到的。
總結
以上是生活随笔為你收集整理的python金融数据怎么获取_class类怎样在python中获取金融数据?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝塔php安装那个合_使用宝塔面板安装n
- 下一篇: 鸿蒙测试机型微博,华为多款机型开启鸿蒙尝