聚寬數據

1、聚寬數據

一、聚寬數據html

1.在聚寬數據這個頁面能夠看到聚寬平臺集成好的各大類數據,以下圖,點擊能夠查看詳情與用法python

 

2.但實際上可能有些數據要在API文檔裏才比較容易能找到,好比龍虎榜數據等。這時用ctrl+f進行網頁搜索能夠快速搜索須要的數據。sql

 

 2、幾種經常使用數據的取用方法

一、獲取指數成分股

  • 成分股指數是指從指數所涵蓋的所有股票中選取一部分較有表明性的股票做爲指數樣本,稱爲指數的成份股,計算時只把所選取的成份股歸入指數計算範圍。
  • 深圳證券交易所成分股指數,就是從深圳證券交易所所有上市股票中選取40種,計算得出的一個綜合性成份股指數。經過這個指數,能夠近似地反映出所有上市股票的價格走勢。
  • 上海證券交易所的上證180指數是上海證券交易所的上證成份股指數。
  • 比較常見的指數有上證指數、深證綜指、創業板指、滬深300指數、中證500指數、上證50指數等。能夠在數據-指數數據-指數列表中找到聚寬支持的指數及其指數代碼。一樣要善用ctrl+f進行搜索。
  • 獲取指數成分股須要用到的API爲get_index_stocks

 

 - 數據庫

get_index_stocks(index_symbol, date=None) 

獲取一個指數給定日期在平臺可交易的成分股列表,請點擊指數列表查看指數信息express

參數api

  • index_symbol: 指數代碼
  • date: 查詢日期, 一個字符串(格式相似'2015-10-15')或者datetime.date/datetime.datetime對象, 能夠是None, 使用默認日期. 這個默認日期在回測和研究模塊上有點差異:
    1. 回測模塊: 默認值會隨着回測日期變化而變化, 等於context.current_dt
    2. 研究模塊: 默認是今天

返回 返回股票代碼的list數組

示例函數

# 獲取全部滬深300的股票 stocks = get_index_stocks('000300.XSHG') log.info(stocks)
# 獲取20180301時,上證50指數(000016.XSHG)成分股
t=get_index_stocks("000016.XSHG","2018-03-01")
print(t[0])
print(t)

# 打印日誌以下。股票代碼在list中被打印出來的是unicode編碼字符串

# 600000.XSHG
# [u'600000.XSHG', u'600016.XSHG', u'600019.XSHG', u'600028.XSHG', u'600029.XSHG', u'600030.XSHG', u'600036.XSHG', u'600048.XSHG', u'600050.XSHG', u'600104.XSHG', u'600111.XSHG', u'600309.XSHG', u'600340.XSHG', u'600518.XSHG', u'600519.XSHG', u'600547.XSHG', u'600606.XSHG', u'600837.XSHG', u'600887.XSHG', u'600919.XSHG', u'600958.XSHG', u'600999.XSHG', u'601006.XSHG', u'601088.XSHG', u'601166.XSHG', u'601169.XSHG', u'601186.XSHG', u'601211.XSHG', u'601229.XSHG', u'601288.XSHG', u'601318.XSHG', u'601328.XSHG', u'601336.XSHG', u'601390.XSHG', u'601398.XSHG', u'601601.XSHG', u'601628.XSHG', u'601668.XSHG', u'601669.XSHG', u'601688.XSHG', u'601766.XSHG', u'601800.XSHG', u'601818.XSHG', u'601857.XSHG', u'601878.XSHG', u'601881.XSHG', u'601985.XSHG', u'601988.XSHG', u'601989.XSHG', u'603993.XSHG']

 

二、獲取股票財務數據

  • 股票財務數據這裏是指發股票的公司發佈的財務報表中的數據。能夠在聚寬數據-股票財務數據查看數據詳情。post

  • 財務報表簡稱財報,是用來向股東彙報企業經營狀況的,上市公司必須按季度公佈財報,一年有四季因此財報依發佈次序一季報、半年報(也稱中報)、三季報、年報,而具體的發佈日期在必定期限內便可並不是固定,年報要求年度結束四個月內披露,半年報是上半年結束後兩個月內,一季報與三季報是季度結束後一個月內。特別的是像總市值、市盈率這種跟股價掛鉤的市值數據是天天更新的。ui

  • 獲取股票財務數據須要用到的API爲get_fundamentals。這個語句的用法較爲複雜,因此文檔仍是要看的。

1.get_fundamentals方法介紹

get_fundamentals(query_object, date=None, statDate=None) 

查詢財務數據,詳細的數據字段描述請點擊財務數據文檔查看

date和statDate參數只能傳入一個:

  • 傳入date時, 查詢指定日期date收盤後所能看到的最近(對市值表來講, 最近一天, 對其餘表來講, 最近一個季度)的數據, 咱們會查找上市公司在這個日期以前(包括此日期)發佈的數據, 不會有將來函數.
  • 傳入statDate時, 查詢 statDate 指定的季度或者年份的財務數據. 注意:
  1. 因爲公司發佈財報不及時, 通常是看不到當季度或年份的財務報表的, 回測中使用這個數據可能會有將來函數, 請注意規避.
  2. 因爲估值表天天更新, 當按季度或者年份查詢時, 返回季度或者年份最後一天的數據
  3. 因爲「資產負債數據」這個表是存量性質的, 查詢年度數據是返回第四季度的數據。
  4. 銀行業、券商、保險專項數據只有年報數據,需傳入statDate參數,當傳入 date 參數 或 statDate 傳入季度時返回空,請自行避免將來函數。

當 date 和 statDate 都不傳入時, 至關於使用 date 參數, date 的默認值下面會描述.

參數

  • query_object: 一個sqlalchemy.orm.query.Query對象, 能夠經過全局的 query 函數獲取 Query 對象,Query對象的簡單使用教程
  • date: 查詢日期, 一個字符串(格式相似'2015-10-15')或者[datetime.date]/[datetime.datetime]對象, 能夠是None, 使用默認日期. 這個默認日期在回測和研究模塊上有點差異:
  1. 回測模塊: 默認值會隨着回測日期變化而變化, 等於 context.current_dt 的前一天(實際生活中咱們只能看到前一天的財報和市值數據, 因此要用前一天)
  2. 研究模塊: 使用平臺財務數據的最新日期, 通常是昨天. 若是傳入的 date 不是交易日, 則使用這個日期以前的最近的一個交易日
  • statDate: 財報統計的季度或者年份, 一個字符串, 有兩種格式:
  1. 季度: 格式是: 年 + 'q' + 季度序號, 例如: '2015q1', '2013q4'.
  2. 年份: 格式就是年份的數字, 例如: '2015', '2016'.

返回 返回一個 [pandas.DataFrame], 每一行對應數據庫返回的每一行(多是幾個表的聯合查詢結果的一行), 列索引是你查詢的全部字段 注意:

  1. 爲了防止返回數據量過大, 咱們每次最多返回10000行
  2. 當相關股票上市前、退市後,財務數據返回各字段爲空

 2.財務數據文檔

財務數據列表

市值數據

天天更新

表名: valuation

列名 列的含義 解釋 公式
code 股票代碼 帶後綴.XSHE/.XSHG  
day 日期 取數據的日期  
capitalization 總股本(萬股) 公司已發行的普通股股份總數(包含A股,B股和H股的總股本)  
circulating_cap 流通股本(萬股) 公司已發行的境內上市流通、以人民幣兌換的股份總數(A股市場的流通股本)  
market_cap 總市值(億元) 總市值是指在某特定的時間內,交易所掛牌交易所有證券(以總股本計)按當時價格計算的證券總值 A股合計 * A股收盤價 + B股合計 * B股收盤價 * 外匯匯率 + H股合計 * H股收盤價 外匯匯率 + (總股本 - A股合計 - B股合計 - H股合計) 每股淨資產
circulating_market_cap 流通市值(億元) 流通市值指在某特定時間內當時可交易的流通股股數乘以當時股價得出的流通股票總價值。 A股市場的收盤價*A股市場的流通股數
turnover_ratio 換手率(%) 指在必定時間內市場中股票轉手買賣的頻率,是反映股票流通性強弱的指標之一。 換手率=[指定交易日成交量(手)100/截至該日股票的自由流通股本(股)]100%
pe_ratio 市盈率(PE, TTM) 每股市價爲每股收益的倍數,反映投資人對每元淨利潤所願支付的價格,用來估計股票的投資報酬和風險 市盈率(PE,TTM)=(股票在指定交易日期的收盤價 * 當日人民幣外匯掛牌價 * 截止當日公司總股本)/歸屬於母公司股東的淨利潤TTM。
pe_ratio_lyr 市盈率(PE) 以上一年度每股盈利計算的靜態市盈率. 股價/最近年度報告EPS 市盈率(PE)=(股票在指定交易日期的收盤價 * 當日人民幣外匯牌價 * 截至當日公司總股本)/歸屬母公司股東的淨利潤。
pb_ratio 市淨率(PB) 每股股價與每股淨資產的比率 市淨率=(股票在指定交易日期的收盤價 * 當日人民幣外匯牌價 * 截至當日公司總股本)/歸屬母公司股東的權益。
ps_ratio 市銷率(PS, TTM) 市銷率爲股票價格與每股銷售收入之比,市銷率越小,一般被認爲投資價值越高。 市銷率TTM=(股票在指定交易日期的收盤價 * 當日人民幣外匯牌價 * 截至當日公司總股本)/營業總收入TTM
pcf_ratio 市現率(PCF, 現金淨流量TTM) 每股市價爲每股現金淨流量的倍數 市現率=(股票在指定交易日期的收盤價 * 當日人民幣外匯牌價 * 截至當日公司總股本)/現金及現金等價物淨增長額TTM

 

3.示例

# 1.查詢'000001.XSHE'的全部市值數據, 時間是2015-10-15
q = query(
    valuation
).filter(
    valuation.code == '000001.XSHE'
)
df = get_fundamentals(q, '2015-10-15')
# 打印出總市值
log.info(df['market_cap'][0])


# 2.獲取多隻股票在某一日期的市值, 利潤
df = get_fundamentals(query(
        valuation, income
    ).filter(
        # 這裏不能使用 in 操做, 要使用in_()函數
        valuation.code.in_(['000001.XSHE', '600000.XSHG'])
    ), date='2015-10-15')


# 3.選出全部的總市值大於1000億元, 市盈率小於10, 營業總收入大於200億元的股票
df = get_fundamentals(query(
        valuation.code, valuation.market_cap, valuation.pe_ratio, income.total_operating_revenue
    ).filter(
        valuation.market_cap > 1000,
        valuation.pe_ratio < 10,
        income.total_operating_revenue > 2e10
    ).order_by(
        # 按市值降序排列
        valuation.market_cap.desc()
    ).limit(
        # 最多返回100個
        100
    ), date='2015-10-15')


# 4.使用 or_ 函數: 查詢總市值大於1000億元 **或者** 市盈率小於10的股票
from sqlalchemy.sql.expression import or_
get_fundamentals(query(
        valuation.code
    ).filter(
        or_(
            valuation.market_cap > 1000,
            valuation.pe_ratio < 10
        )
    ))


# 5.查詢平安銀行2014年四個季度的季報, 放到數組中
q = query(
        income.statDate,
        income.code,
        income.basic_eps,
        balance.cash_equivalents,
        cash_flow.goods_sale_and_service_render_cash
    ).filter(
        income.code == '000001.XSHE',
    )

rets = [get_fundamentals(q, statDate='2014q'+str(i)) for i in range(1, 5)]


# 6.查詢平安銀行2014年的年報
q = query(
        income.statDate,
        income.code,
        income.basic_eps,
        cash_flow.goods_sale_and_service_render_cash
    ).filter(
        income.code == '000001.XSHE',
    )

ret = get_fundamentals(q, statDate='2014')
相關文章
相關標籤/搜索