2023年8月5日 星期六

Data Issue - yfinance vs BearDB

在回溯測試時發現,分別取用 yfinance 套件與 BearDB 資料庫 (自行建立) 時的回溯測試績效不同

結論:股價部分,BearDB 仍可信賴。若交易策略有使用到成交量者,尚須進一步研究要採用哪個資料源。

因此簡單抽樣二家公司的資料來看

發現 yfinance 有下面幾個明顯問題值得注意

[1] 近期股價雖然與 BearDB 相同,但
yfinance 多了小數點後六位的尾差?這應該不是台灣股市的交易習慣

[2] yfinance 早期資料明顯經過調整
經與 XQ 比較後, 驗證 BearDB 是當時價格資料,而 yfinance 則是經過調整。但是 yfinance 仍然有 adj Close 欄位啊,數字也不同啊?
網上有人提出了一個說法 [Source]
Google和雅虎等資料提供商通過聚合其供應商的資料來重新分配EOD資料。雖然原始資料取自同一個交易所,但不同的廠商往往通過不同的交易平台來收集資料。例如,雅虎,是從Hemscott(已被晨星收購)獲得股票資料,而Hemscott並不是EOD股票的最準確來源。Google從德意志交易所(Deutsche Börse)獲得資料。
為了使過程更加複雜,每個廠商可以選擇從另一個EOD資料提供商或交易所本身獲得EOD資料,也可以從實際的交易tick-data中產生自己的開盤價、最高價、最低價、收盤價和成交量,這些資料可能來自任何交易所。
為了交叉驗證真實價格,我們應該始終從資產實際交易的交易所檢查價格。鑑於現在獲取EOD資料的便利性,這個任務應該很容易實現。
事實上,對於專業交易員和投資者來說,他們絕不會在雅虎、Google等免費提供商上回覆價格,他們很可能會選擇彭博、路透等。不過,對於個人使用來說,雅虎和Google應該都是不錯的選擇,差別很小,可以忽略。

[3] 資料筆數不同

yfinance都BearDB多了 41 筆。(ps. 自2000-01-04開始,同時不算2023-08-01這一天的資料, 因為在2023-08-02檢測時,BearDB因故尚未更新至2023-08-01。)

[4] 成交量(股)也不同
yfinance 早期與近期用的單位數顯然是不一樣
近期的數據,yfinance 與 BearDB 也不同,二者與 XQ 也不同。這個問題在不同資料源多會發現,經了解可能是有沒有包含盤後交易、鉅額交易、零股交易等的成交量。

以下是檢測當天取得的抽樣資料
抽樣一、台積電 2330
[1] yfinance
以下是檢測當天取得的抽樣資料


[2] BearDB



抽樣二、台泥 1101

[1] yfinance



[2] BearDB


[3] XQ