請更新您的瀏覽器

您使用的瀏覽器版本較舊,已不再受支援。建議您更新瀏覽器版本,以獲得最佳使用體驗。

理財

【TQuant 從 0 到 1 – Day 3】打造投資數據全視角:股票池篩選與 TejToolAPI 資料獲取

TEJ 台灣經濟新報

更新於 05月07日14:14 • 發布於 03月21日05:30
Photo by Carlos Muza on Unsplash

前言

在金融投資的世界中,掌握準確且全面的數據是一項不可或缺的技能,而有效管理股票池和股價資料的取得方式則是開啟這項技能的關鍵。透過 TQuant Lab 提供的工具與 API,我們可以輕鬆地定義篩選條件,快速建立符合需求的股票池,並下載相關的歷史股價資料。

本篇文章將帶您一步步完成環境設置與 API Key 的配置,並深入解析如何使用 get_universe 函數來獲取特定條件的股票樣本。無論您是投資新手還是數據分析的愛好者,都能藉此掌握自動化獲取數據的技巧,為未來的量化分析打下堅實基礎。我們將透過範例與實際操作,讓您輕鬆上手並應用到自己的投資策略中。

股票池是什麼 ?

股票池,就像是我們日常生活中的「購物清單」。想像一下,當您去超市購物時,貨架上有上千種商品,如果什麼都不篩選,可能會花很長時間在挑選上,甚至最後買了一堆不需要的東西。但如果您事先列好一張清單,比如「早餐食材」或「健身飲食」,那麼您就能快速在相關區域挑出需要的商品,省時又高效。

同樣地,股票池的作用就是幫助我們在浩瀚的股票市場中,挑選出符合特定條件的股票。比如,您可能會設定一個條件:「我要找台灣上市的半導體公司普通股」。這樣,股票池就像購物清單一樣,為您整理出一份符合條件的股票名單,您只需專注分析這些股票,而不用浪費時間在與目標無關的公司上。

簡而言之,股票池就是您投資過程中的「指南針」,讓您在複雜的市場中找到方向,並為決策提供可靠的基礎。

好的股票池帶來的好處

提升分析效率
市場上的股票數量龐大,如果沒有明確的篩選標準,很容易迷失在數據海洋中。而一個精心設計的股票池能讓您更快速聚焦在適合分析的標的,節省大量時間。

減少倖存者偏差的影響
透過建立符合條件的股票池,可以避免僅分析至今仍存活的公司,而忽略那些曾經失敗或消失的公司,從而在回測策略表現時能更全面地反映市場全貌。

自動化與量化應用
股票池的運用可以和量化策略結合,輕鬆進行回測與數據分析,確保您的策略基於經過篩選的可靠數據。

get_universe 的功能介紹

因此在進行量化分析或投資策略設計時,快速、準確地獲取股票池資料是關鍵的一步。而透過 TQuant Lab 提供的工具,我們能方便地使用 get_universe 函數,根據不同的篩選條件建立專屬的股票池,並為後續分析奠定基礎。

get_universe 函數主要用於篩選並返回符合條件的股票池(List of symbols)。它能在特定時間範圍內,根據市場別、產業別、證券種類等條件,快速生成股票名單,並可與量化策略或回測工具結合使用。
主要功能

  • 股票池建立:自動篩選符合條件的股票,省去手動整理的麻煩。
  • 條件化篩選:支持多種篩選條件,如市場、板塊、產業、指數成分等。
  • 動態範圍:可以根據指定的日期範圍,返回在該期間內符合條件的股票。

get_universe(start,
end = datetime.datetime.now().date().strftime(%Y-%m-%d),
trading_calender = get_calender('TEJ_XTAI'),
**kwargs)

這些參數負責設定篩選的時間範圍和交易日曆:

start (datetime 或 str)

  • 用途:指定股票池篩選的起始日期。
  • 意義:返回在 start 至 end 時間段內符合條件的股票。

end (datetime 或 str,選填,預設為當天日期)

  • 用途:指定篩選的結束日期。
  • 說明:若不填寫,系統會以執行日期作為結束日期。

trading_calendar (TradingCalendar,選填,預設為 TEJ_XTAI)

  • 用途:設置交易日曆,用於篩選日期範圍內的有效交易日。
  • 預設值:TEJ_XTAI(台灣證券交易所的交易日曆)。

available kwargs properities (至少需要指定一個,若沒指定則返回全樣本)

這些參數決定了返回的股票池內容,包括市場別、板塊別(中)、板塊別(英)、證券種類(中)、證券種類(英)、主產業別(中)、主產業別(英)、子產業別(中)、子產業別(英)、指數名稱,可以根據需求靈活設置,詳細內容可以參考相關連結。

統整股票池內容關係

程式範例

這邊我們會透過九個範例來讓您更深入了解如何活用get_universe

首先就是Import跟設定

import pandas as pd import datetime import tejapi import os import numpy as np # set tej_key and base os.environ['TEJAPI_KEY'] = "your key" os.environ['TEJAPI_BASE'] = "https://api.tej.com.tw" # set date start='2024-01-01' end='2025-01-01' #Import get_universe from zipline.sources.TEJ_Api_Data import get_universe

  • case1 取曾經在上市一般板+上櫃一般板的證券get_universe(start, end, mkt_bd_e=['TSE','OTC'])

  • case2 取曾經在證券交易所/櫃買中心掛牌的證券get_universe(start, end, mkt=['OTC'])

  • case3 取曾經上市+上櫃的普通股get_universe(start, end, mkt=['TWSE','OTC'], stktp_c=['普通股'])

  • case4 取子產業別曾經為"M2324 半導體業"的證券get_universe(start, end, sub_ind_c=['M2324 半導體業'])

  • case5 取子產業別曾經為"M2324 Semiconductor"&"M2325 Computer and Peripheral Equipment"的證券get_universe(start, end, sub_ind_e=['M2324 Semiconductor', 'M2325 Computer and Peripheral Equipment'])

  • case6 取證券種類為"ETF"及"普通股"且掛牌於證券交易所的證券get_universe(start, end, stktp_c=['ETF', '普通股'], mkt=['TWSE'])

  • case7 取曾經為"IX0002"(台灣50指數)成份股的證券get_universe(start, end, idx_id='IX0002')

  • case8 取主產業別曾經為"M1100 水泥工業"且為"IX0006"(台灣高股息指數)成份股的證券get_universe(start, end, main_ind_c='M1100 水泥工業', idx_id='IX0006')

  • case9 取非金融業的普通股get_universe(start, end, main_ind_c=['一般產業'] , stktp_c='普通股')

TEJToolAPI

成功建立並下載了符合條件的 股票池 後,我們已經獲得了一份篩選過的目標清單。然而,股票池本身只是投資數據的起點,要真正進行深入分析或制定策略,還需要補充更多的詳細資料。

這時候,TejToolAPI 就派上用場了。透過 TejToolAPI,我們可以高效地獲取與股票相關的歷史數據,包括財務資訊(如每股盈餘 EPS)、成長率、股息等多維度指標,讓股票池中的每支股票更具分析價值。

當我們Import 完TEJToolAPI後,我們可以透過TejToolAPI.get_history_data來取得證券相關貨交易相關等歷史資料,接下來我們就來說明TejToolAPI.get_history_data的parameters

TejToolAPI.get_history_data

ticker (iterable[str])

  • 用途:指定欲查詢的證券代碼。
  • 說明:支持多個代碼,例如 ["2330", "1101", "3711"],這邊也可以嘗試用看看上面我們教的選取股票池來決定我們需要的證券代碼喔。

columns (iterable[str])

  • 用途:指定欲查詢資料的欄位名稱。
  • 說明:欄位名稱可參考 TEJ 官方 API 文件。

transfer_to_chinese (boolean)

  • 用途:決定是否將欄位名稱轉換為中文。
  • 預設值:False。
  • 說明:True 表示欄位名稱轉換為中文;False 則保持英文欄位名稱。

start (pd.Timestamp 或 str)

  • 用途:指定資料查詢的起始日期。
  • 格式:"YYYY-MM-DD" 或 pd.Timestamp("YYYY-MM-DD")。
  • 說明:返回從 start 至 end 時間範圍內的數據。

end (pd.Timestamp 或 str)

  • 用途:指定資料查詢的結束日期。
  • 格式:"YYYY-MM-DD" 或 pd.Timestamp("YYYY-MM-DD")。
  • 說明:若未填寫,預設為執行日期。

fin_type (iterable[str])

  • 用途:設定資料型態。

  • 有效值

  • 'A':累積資料。

    • 'F':單季資料。
    • 'TTM':移動四季資料。
  • 說明:可同時選擇多個型態,例如 ["A", "TTM"]。

include_self_acc (str)

  • 用途:決定是否包含自結與董事會決議數據。

  • 有效值

  • 'Y':包含自結財務與董事會決議數據。

    • 'N':僅包含投資用財務數據。
  • 預設值:'N'。ticker = ["2330", "1101", "3711"] columns = ["eps"] TejToolAPI.get_history_data( ticker = ticker, columns = columns, transfer_to_chinese = True, start = pd.Timestamp("2021-07-02"), end = pd.Timestamp("2022-07-02"), fin_type = ["A", "Q", "TTM"], include_self_acc = "Y" )

數據圖表

透過 TejToolAPI,我們能輕鬆、高效地從 TEJ 資料庫中提取豐富的數據,包括財務指標、成長率以及其他多維度資料。這些數據不僅能幫助我們深入了解股票池中的每支股票,還能作為分析和策略設計的重要基石。

TejToolAPI 提供靈活的參數設置和全面的欄位選擇,讓我們能針對不同的投資需求進行精準查詢,並將數據快速整合到量化分析的流程中。

現在,您已經初步掌握了如何運用 TejToolAPI 獲取所需資料,我們也在相關連結附上更進階關於TejToolAPI的說明,未來只需結合這些數據進一步分析,便能為投資決策提供更強有力的支持。讓數據為您的投資策略賦能,迎接更加精準和高效的分析體驗!

歡迎投資朋友參考,之後也會持續介紹使用 TEJ 資料庫來建構各式指標,並回測指標績效,所以歡迎對各種交易回測有興趣的讀者,選購 TQuant Lab 的相關方案,用高品質的資料庫,建構出適合自己的交易策略。
溫馨提醒,本次分析僅供參考,不代表任何商品或投資上的建議。

【TQuant Lab 回測系統】解決你的量化金融痛點

全方位提供交易回測所需工具

點我註冊會員,開始試用

下一篇 -【TQuant 從 0 到 1 - Day 4】

延伸閱讀

相關連結

查看原始文章

更多理財相關文章

01

ATM新制今上路!8大銀行「宣布新規」 有錢也領不出來

TVBS
02

特斯拉AI晶片選三星非台積?分析師曝關鍵!

NOWnews 今日新聞
03

股市觀察》兩周內決戰!台股要崩了?分析師揭「假利空真洗盤」真相

新頭殼
04

海角36億元拿不回外傳要賣街口電支股票 泰山反應曝光

鏡週刊
05

AI股太貴、非龍頭股不敢買?億級投資人:現在這種產品是好選擇

商周.com
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
查看更多

留言 0

沒有留言。

最新消息

盤中速報 - Bonk大跌8.19%,報0美元

anue鉅亨網

《今日總經速讀》美歐貿易協議達成!帶動殖利率反彈,美債市場氣氛轉趨樂觀

優分析

〈致伸法說〉Q2毛利率創新高、匯率避險奏效 EPS 1.6元與Q1持平

anue鉅亨網

鉅亨買幣速報 - 以太幣(ETH)24小時成交量超過22.6億美元,LTO Network(LTO)24小時漲幅達54.8%

anue鉅亨網

輝達H20晶片重啟對中國出口 傳向台積電追加代工訂單

商傳媒

開放申設數位保險公司 金管會曝5團隊探詢

NOWnews 今日新聞

矽谷最神秘公司 Palantir 現身台灣,自揭市場差異化的關鍵優勢

TechOrange 科技報橘

〈國巨法說〉Q2獲利年減8% 每股純益9.74元 上半年仍賺逾2股本

anue鉅亨網

關稅對景氣影響 世界先進董座:已經鈍化

NOWnews 今日新聞

盤後速報 - 大台北(9908)次交易(30)日除息1.2元,參考價30.05元

anue鉅亨網

盤後速報 - 大汽電(8931)次交易(30)日除息2元,參考價50.8元

anue鉅亨網

盤後速報 - 上洋(6728)次交易(30)日除息8元,參考價153.0元

anue鉅亨網

盤後速報 - 伊雲谷(6689)次交易(30)日除息2元,參考價79.1元

anue鉅亨網

盤後速報 - 動力-KY(6591)次交易(30)日除息2.35元,參考價64.75元

anue鉅亨網

盤後速報 - 瑞祺電通(6416)次交易(30)日除息2.9元,參考價84.4元

anue鉅亨網

盤後速報 - 大城地產(6171)次交易(30)日除息2.5元,參考價33.1元

anue鉅亨網

盤後速報 - 久威(6114)次交易(30)日除息0.5元,參考價35.75元

anue鉅亨網

盤後速報 - 中租-KY甲特(5871A)次交易(30)日除息3.8元,參考價98.2元

anue鉅亨網

盤後速報 - 中租-KY(5871)次交易(30)日除權息6.3元,參考價118.04元

anue鉅亨網

盤後速報 - 遠雄港(5607)次交易(30)日除權息1.3元,參考價43.24元

anue鉅亨網

盤後速報 - 宣德(5457)次交易(30)日除息1.3元,參考價42.0元

anue鉅亨網

盤後速報 - 國眾(5410)次交易(30)日除息1.5元,參考價27.25元

anue鉅亨網

盤後速報 - 強信-KY(4560)次交易(30)日除息1.2元,參考價34.0元

anue鉅亨網

盤後速報 - 冠星-KY(4439)次交易(30)日除息2元,參考價90.0元

anue鉅亨網

盤後速報 - 東隆興(4401)次交易(30)日除息0.7元,參考價15.45元

anue鉅亨網

盤後速報 - 世坤(4305)次交易(30)日除息3.2元,參考價45.55元

anue鉅亨網

盤後速報 - 中華食(4205)次交易(30)日除權息3元,參考價86.91元

anue鉅亨網

AI需求助攻,國巨Q2本業獲利站11季高點,Q3營收、雙率向上

財訊快報

盤後速報 - 先益(3531)次交易(30)日除息0.8元,參考價22.75元

anue鉅亨網

盤後速報 - 晶睿(3454)次交易(30)日除息2.3元,參考價104.2元

anue鉅亨網

盤後速報 - 弘憶股(3312)次交易(30)日除息1.4元,參考價45.7元

anue鉅亨網

盤後速報 - 綠意(2596)次交易(30)日除息1元,參考價30.05元

anue鉅亨網

盤後速報 - 皇普(2528)次交易(30)日除權0.5元,參考價27.43元

anue鉅亨網

盤後速報 - 怡利電(2497)次交易(30)日除息2元,參考價39.0元

anue鉅亨網

盤後速報 - 技嘉(2376)次交易(30)日除息10元,參考價272.5元

anue鉅亨網

盤後速報 - 矽統(2363)次交易(30)日除息0.5元,參考價55.1元

anue鉅亨網

盤後速報 - 智邦(2345)次交易(30)日除息11元,參考價841.0元

anue鉅亨網

盤後速報 - 宇隆(2233)次交易(30)日除息7元,參考價172.0元

anue鉅亨網

盤後速報 - 力肯(1570)次交易(30)日除息1.3元,參考價22.6元

anue鉅亨網

盤後速報 - 元山(6275)下週(8月5日)除息2.26元,預估參考價41.39元

anue鉅亨網