取得臺灣證券交易所與證券櫃檯買賣中心OpenAPI的資料

閱讀時間約 8 分鐘

傳說中,股票交易會從三個面向作分析: 技術面、籌碼面、基本面。以量化程式交易來說,技術面就是透過券商API取得即時資料與歷史資料,轉換成K棒做技術分析;籌碼面是透過買賣日報取得分點資料作分析;基本面則是透過臺灣證券交易所與證券櫃檯買賣中心OpenAPI取得公司治理與財務報表等資料進行分析。


本篇主要介紹如何利用OpenAPI取得相關資料。這邊用一個簡單的例子當作範例,來取得目前上市與上櫃的股票代碼。當開發量化交易程式的時候,我們會發現上市上櫃股票家數不宜寫死,因為隨時有新的公司上市上櫃,也會有下市下櫃的狀況發生,所以最好是透過一個隨時更新的表格做後續處理。至於如何取得現有的上市上櫃股票代碼,我們可以利用臺灣證券交易所與證券櫃檯買賣中心OpenAPI。


臺灣證券交易所OpenAPI的網址為https://openapi.twse.com.tw/

證券櫃檯買賣中心OpenAPI的網址為https://www.tpex.org.tw/openapi/


讀者可以點進這兩個網址挑選喜歡的功能來做其他功能的開發。因為筆者習慣把這些資料都轉為csv格式,所以我們會透過CsvHelper與Newtonsoft.Json將網站丟進來的Json格式轉換為csv格式。實際的流程也很簡單,對OpenAPI的網誌發起要求,將收到的資料做格式轉化,實際程式碼如下所示:


	private async Task GetAllTWSEStockInfo(string path)
{
string reqtwse = "https://openapi.twse.com.tw/v1/exchangeReport/BWIBBU_d";
string csvtwse = await GetHttpData(reqtwse);
//Debug.WriteLine(csv);
File.WriteAllText(path, csvtwse);
}

private async Task GetAllTPEXStockInfo(string path)
{
string reqtpex = "https://www.tpex.org.tw/openapi/v1/tpex_mainboard_peratio_analysis";
string csvtpex = await GetHttpData(reqtpex);
//Debug.WriteLine(csv);
File.WriteAllText(path, csvtpex);
}

private async Task<string> GetHttpData(string weblink)
{
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
HttpClient client = new HttpClient(handler);
try
{
HttpResponseMessage response = await client.GetAsync(weblink);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
string csv = jsonToCSV(responseBody, ",");
return csv;
}
catch (HttpRequestException e)
{
Debug.WriteLine("Exception Caught! Message :{0} ", e.Message);
return null;
}
}

private static DataTable jsonStringToTable(string jsonContent)
{
DataTable dt = JsonConvert.DeserializeObject<DataTable>(jsonContent);
return dt;
}

private static string jsonToCSV(string jsonContent, string delimiter)
{
StringWriter csvString = new StringWriter();
var configuration = new CsvConfiguration(CultureInfo.InvariantCulture)
{
Delimiter = delimiter,
MissingFieldFound = null
};

using (var csv = new CsvWriter(csvString, configuration))
{
using (var dt = jsonStringToTable(jsonContent))
{
foreach (DataColumn column in dt.Columns)
{
csv.WriteField(column.ColumnName);
}
csv.NextRecord();
foreach (DataRow row in dt.Rows)
{
for (var i = 0; i < dt.Columns.Count; i++)
{
csv.WriteField(row[i]);
}
csv.NextRecord();
}
}
}

return csvString.ToString();
}


這樣就完成了這段簡單的範例。至於不同的資料,如何進行分析,可以參考財報狗或是玩股網的資料格式,自己做個轉換。資料的收集與累積需要長時間的耐力進行,這也是資料庫分析可貴的地方,與大家共勉之。


avatar-img
4會員
10內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Gary Hu的沙龍 的其他內容
利用C#爬蟲查詢每日的小台指散戶多空比
透過C#去證券櫃檯買賣中心爬取買賣日報表的程式介紹
透過C#實作台灣證券交易所買賣日報表查詢機器人
本文將討論在EWDK或WDK環境下如何取得時區差值與日光節約時間開啟與否的相關資訊,並記錄下相關研究結果。
身為會寫一點程式碼的工程師,量化交易投資無疑是最具吸引力的投資方式。試想只要寫個小程式定期去追蹤股市大盤交易指數,然後自動下單買入賣出,就會賺進源源不絕的財富,光用想的口水都快流下來了。 坐而言不如起而行。這邊有幾個小問題需要克服: 即時報價 下單買賣 交易策略
利用C#爬蟲查詢每日的小台指散戶多空比
透過C#去證券櫃檯買賣中心爬取買賣日報表的程式介紹
透過C#實作台灣證券交易所買賣日報表查詢機器人
本文將討論在EWDK或WDK環境下如何取得時區差值與日光節約時間開啟與否的相關資訊,並記錄下相關研究結果。
身為會寫一點程式碼的工程師,量化交易投資無疑是最具吸引力的投資方式。試想只要寫個小程式定期去追蹤股市大盤交易指數,然後自動下單買入賣出,就會賺進源源不絕的財富,光用想的口水都快流下來了。 坐而言不如起而行。這邊有幾個小問題需要克服: 即時報價 下單買賣 交易策略
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
前言: 在金融市場打滾了多年,看過大型銀行交易室的各種鬧劇,韭菜不是散戶的專利,機構投資人也常常依靠錯誤的方法做出錯誤的決定。 而工欲善其事,必先利其器,為了回應朋友們的詢問,以下分享幾個對於散戶接觸金融市場的好用工具 (定期更新或汰舊換新),降低大家成為韭菜的機率,對於不論是希望踏入台灣股市
Thumbnail
對於剛接觸Python程式的使用者來說,要一口氣學會爬蟲可能相對困難,但若想即時且輕鬆獲得台股相關數據,你可以利用證交所所提供的API進行數據蒐集。只需要簡單幾行程式碼,就能輕鬆抓到台股上千支股票的每日資訊,是不是棒呆了!!
Thumbnail
記得是上權證小哥的課聽到的,台股是最”OPEN”的市場,籌碼的資料都是公開的,你可以查的到買賣張數的人數,也可以查的到買賣分點有那些,這些資料不是每個市場都可以查得到的。 買賣分點的介紹之前有寫過在這裡: 今天來告訴大家另一個籌碼面的資料源,就是買賣的人數跟張數的統計,他有一個專有名詞叫集保
Thumbnail
本篇文章分享如何開設海外券商帳戶以及下單教學,並提供風險警告和交易成本等相關資訊。此外,文章還介紹了使用海外券商交易的優缺點,以及如何使用手機進行交易等內容。
Thumbnail
經過幾個月付出的努力及心血,以及將歐大,修大,自由人等大神的想法融合。 終於完成了這套選擇權量化交易系統。 在這裡也和大家分享看盤畫面系統(點選圖片可放大) 第一張圖是主看盤頁面,左右各有一條長方型灰色區域,會顯示自己的部位,分別落在哪些履約價。圖的右下角顯示出選擇權部位的圖形。按下中
Thumbnail
本文章內容主要是讓你學會使用證券交易所提供的資料來源,自行整理籌碼資訊的方法。教學內容包括瞭解三大法人買賣金額、信用交易統計、市場成交資訊等,並提供了Excel匯入資料的操作步驟。透過此教學,快速上手去抓取您所需要的資料。
Thumbnail
旅日臺人筆記本的一篇討論日本券商生態的文章。券商的業務型態簡單區分,就經紀、承銷/投資銀行、自營,其中經紀是文章的核心討論。隨著科技進步和法規調整,券商面臨許多變化和挑戰。全文包含對券商現狀變化的深入分析以及解決方法的討論。
Thumbnail
發行人募集與發行有價證券處理準則 下稱募發準則所訂各項案件申報書、應檢附書件及發行人申報案件情形,可自何處查詢下載? 發行人依募發準則相關規定向金管會申報辦理募集與發行有價證券案件,可至「本會網站/便民服務/申辦案件一、申報請案件表格下載/4證券期貨局-募集發行類」下載相關申報書及應檢附書件;另發
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
前言: 在金融市場打滾了多年,看過大型銀行交易室的各種鬧劇,韭菜不是散戶的專利,機構投資人也常常依靠錯誤的方法做出錯誤的決定。 而工欲善其事,必先利其器,為了回應朋友們的詢問,以下分享幾個對於散戶接觸金融市場的好用工具 (定期更新或汰舊換新),降低大家成為韭菜的機率,對於不論是希望踏入台灣股市
Thumbnail
對於剛接觸Python程式的使用者來說,要一口氣學會爬蟲可能相對困難,但若想即時且輕鬆獲得台股相關數據,你可以利用證交所所提供的API進行數據蒐集。只需要簡單幾行程式碼,就能輕鬆抓到台股上千支股票的每日資訊,是不是棒呆了!!
Thumbnail
記得是上權證小哥的課聽到的,台股是最”OPEN”的市場,籌碼的資料都是公開的,你可以查的到買賣張數的人數,也可以查的到買賣分點有那些,這些資料不是每個市場都可以查得到的。 買賣分點的介紹之前有寫過在這裡: 今天來告訴大家另一個籌碼面的資料源,就是買賣的人數跟張數的統計,他有一個專有名詞叫集保
Thumbnail
本篇文章分享如何開設海外券商帳戶以及下單教學,並提供風險警告和交易成本等相關資訊。此外,文章還介紹了使用海外券商交易的優缺點,以及如何使用手機進行交易等內容。
Thumbnail
經過幾個月付出的努力及心血,以及將歐大,修大,自由人等大神的想法融合。 終於完成了這套選擇權量化交易系統。 在這裡也和大家分享看盤畫面系統(點選圖片可放大) 第一張圖是主看盤頁面,左右各有一條長方型灰色區域,會顯示自己的部位,分別落在哪些履約價。圖的右下角顯示出選擇權部位的圖形。按下中
Thumbnail
本文章內容主要是讓你學會使用證券交易所提供的資料來源,自行整理籌碼資訊的方法。教學內容包括瞭解三大法人買賣金額、信用交易統計、市場成交資訊等,並提供了Excel匯入資料的操作步驟。透過此教學,快速上手去抓取您所需要的資料。
Thumbnail
旅日臺人筆記本的一篇討論日本券商生態的文章。券商的業務型態簡單區分,就經紀、承銷/投資銀行、自營,其中經紀是文章的核心討論。隨著科技進步和法規調整,券商面臨許多變化和挑戰。全文包含對券商現狀變化的深入分析以及解決方法的討論。
Thumbnail
發行人募集與發行有價證券處理準則 下稱募發準則所訂各項案件申報書、應檢附書件及發行人申報案件情形,可自何處查詢下載? 發行人依募發準則相關規定向金管會申報辦理募集與發行有價證券案件,可至「本會網站/便民服務/申辦案件一、申報請案件表格下載/4證券期貨局-募集發行類」下載相關申報書及應檢附書件;另發