2023年11月4日 星期六

MahoMangaDownloaderVer19.3~19.5更新

2023/11/29 updated

這次更新主要是發現EH站遇到壞檔卡住的比例增加了, 後來發現是EH站有改Reload image的提示按紐(Click here if the image fails loading -> Reload broken image), 之前的regular expression寫的很不嚴謹所以換個wording就炸了, 就趕緊修了一下, 不然不時卡住真的有點煩...。

這次就不推坑了, 直接放鎮樓圖~~



Ver19.5 更新內容:

* 修復E站遇到壞檔時不會自動跳轉Reload Image問題


免責聲明:

******************

MahoMangaDownloader僅作為學術研究使用,禁止利用本程式行非法用途。


2023年10月21日 星期六

[manga-image-translator] 自動翻譯漫畫的工具程式

最近參加完公司舉辦的AI大賽, 當時為了參加比賽有課金買了openai API credit 100鎂 (為什麼一口氣買100鎂那又是另一個故事了...), 結果比賽完才花了35鎂左右, 還剩65鎂沒地方花, 就想說來研究一下可以拿來幹嘛, 結果讓我找到一個超棒的開源漫畫翻譯工具: manga-image-translator

https://github.com/zyddnys/manga-image-translator

這個工具支援多個翻譯引擎, 並且直接整合OCR, 所以可以一行指令就直接自動翻譯一整部漫畫 e.g. python -m manga_translator -v --translator=gpt3.5 --gpt-config "I:\gpt_config_cht.yaml" -l CHT -i "I:\Himitsu no Reputairuzu v06"), 適合直接想看渣翻的日文小白使用, 如果是稍微懂日文又想認真翻譯的, 則是會比較推薦可以手動調整的工具, 像是下面這個:

https://github.com/dmMaze/BallonsTranslator


順便也放之前分享的日文小白專用文章:

啃生肉漫推薦 - moeka.me網站的mangaEditor

[OCR+即時翻譯] Capture2Text 軟體推薦 - 玩Gal Game or 生肉漫神器


回歸正題, 會想推manga-image-translator這個工具的最大理由, 除了他支持批次翻譯以外,  最棒的是支援openai GPT-3.5 & GPT-4, 應該不少人都覺得google的日文翻譯跟OO沒兩樣, 看google翻譯出來的日文真的很痛苦, 可是如果是chatGPT的話, 翻譯品質就好多了, 下面用我超喜歡的一部台灣代理斷尾漫畫: 機車一族比較:


可以看到google翻譯還是很渣, 可是GPT-3.5 & GPT-4還不錯, 甚至我覺得GPT-3.5還略好一點 (當然只看一張不太準就是了)。

再來看看其他用GPT-3.5翻譯的頁面:

坦白說有點慘, 不過這不是GPT的問題, 翻譯的時候會產生一些中間檔案, 如果是維持原本的日文, 代表那是OCR沒處理好, 沒辦法解析文字是什麼; 反之如果是一片空白, 則是翻譯引擎出問題。 如果是翻譯引擎出問題, 還可以調教一下gpt prompt或temperature在試試看, OCR出問題除了手工處理應該沒其他招了, 對日文小白來說應該就是靠腦補了吧...。


再來換另一個也是超喜歡但是後續沒翻譯的漫畫: 秘密爬蟲類



這部的翻譯品質就很不錯, 不知道是畫質的關係導致機車一族OCR比較難parse文字還是其他原因, 只要OCR能正常運作, GPT的翻譯引擎我自己是覺得算很夠力的, 不過偶爾還是會有一兩頁凸槌, 像下面這頁:


文字框是空白代表OCR有正確parse文字, 看起來是所有翻譯內容都擠到了第一格, 比較像GPT引擎出問題, 改下temperature再跑一次就正常了:


再來看看如果用GPT引擎, 要花多少錢吧, 下面是我分別用GPT-3.5 & GPT-4翻譯一頁的成本:

GPT-3.5一頁小於0.01鎂 (台幣0.3塊), GPT-4則是一頁要0.04鎂 (台幣1.2塊), 以CP值來說, 我不覺得GPT-3.5的翻譯品質有比GPT-4差很多, 所以我幾乎都只用GPT-3.5翻譯。 下面是翻譯整部機車一族15卷(207頁)的成本, 大概0.3鎂 (台幣9塊), 一部渣翻漫畫不用台幣10塊錢, 個人覺得真的很不錯XD


另外這個工具也支援用Nvidia顯卡GPU平行處理, 只要你的顯卡有支援cuda, 就可以開啟平行處理功能, 翻譯機車一族15卷的總共時間如下:

* Google (only CPU) - 3957.51秒 (1小時05分)
* Google (GTX1060 - cuda) - 3061.18秒 (51分)
* GPT-3.5 (GTX1060 - cuda) - 5475.2秒 (1小時31分)

其實沒省多少時間, 畢竟cuda應該頂多省影像處理的時間, bottleneck主要還是在翻譯引擎上, 聊勝於無啦~。

另外小提醒一下, 如果翻譯的不是簡體中文而是繁體中文, 會有機率翻譯成廣東話 (不知道是不是香港中文的關係?), 要解決這問題也很簡單, 修改一下prompt加個taiwan關鍵字就沒問題了~。


這次分享差不多就到這邊, 這次找到的這個工具真的超棒, 不過最後還是提醒一下, 最好不要亂用這個程式做商業營利或隨意散佈渣翻的檔案, 畢竟這就是渣翻, 要是因為網路上有了渣翻導致減少翻譯大老翻譯意願, 變成劣幣驅逐良幣的情況的話就得不償失了, 建議這個工具還是日文小白自用就好!

2023年9月30日 星期六

[網站開發] 新增選擇權Put-Call Ratio整理頁面 (Norn-StockScreener投資網站開發)

最近在思考, 自己的選擇權技能樹還能點哪些, 就注意到Put-Call Ratio (PCR)應該可以研究一下, Put-Call Ratio顧名思義, 就是選擇權put的數量 / call的數量得到的一個比值, 可以藉由這個數字, 來簡易評估市場是偏多還是偏空。 而這個數字又可以分為兩種不同的算法, 分別為:

1. Puts Open Interest / Calls Open Interest (未平倉量)

2. Puts Volume / Calls Volume (成交量)

而這兩種公式算出的PCR又差在哪裡呢, 網路上找到的文章我找到的很多都只介紹其中一邊, 有兩個都介紹的又不太能抓到重點, 所以想說我乾脆直接來問ChatGPT好了XD 


我覺得蠻有道理的, 未平倉合約量代表還沒行權, 所以還未行權的合約數作為到期前市場偏向看多/看空是蠻合理的; 而交易量只有當天有效, 所以只能反應短期的市場走向也合理。當然問歸問也不能全信(畢竟是生成式AI, 有時候會騙人XD), 還是要自行驗證才行。

之後研究了下怎麼拿到PCR這個數據, 如果是大盤指數的話, 是有不少網站提供, 可是我基本上不買大盤只投資股票, 只看大盤指數PCR對我的幫助也不大, 之後想了想沒轍, 還是只能靠自己算了, 就決定寫個爬蟲上Yahoo財經抓所有個股的選擇權資料, 在自己計算PCR, 做好的成果如下:

做好的網頁如下:

https://norn-stockscreener.zmcx16.moe/options-pcr/


Github:

https://github.com/zmcx16/Norn-StockScreener




資料範圍是抓未來一年的所有合約的選擇權未平倉&成交量, 除了上面提到的PCR (OI) & PCR (Vol) 以及所有未平倉&成交量以外, 我特別想知道歷史的變化, 可是YAHOO財經能抓到的只有當下的資料, 所以我沒辦法去比較今天的PCR跟過去的PCR的變化程度, 為了解決這個問題, 就決定開始每天抓新的PCR資料前就把舊的備份下來, 靠著每天的data snapshot, 我就有辦法漸漸累積自己的資料庫, 也就能計算過去PCR的變化了。

目前表格上的PCR變化有week & month, 不過其實我資料目前只累積了一個多禮拜, 所以那個month還是不準的, 要再等三個禮拜才是真的month data XD 

這個變化主要是 (Latest PCR - N days ago PCR) / (N days ago PCR), 所以數值最高可能幾百幾千% (代表PCR爆增, 偏空指數大幅上升), 最低則是-100% (代表最新的PCR = 0, 與其說偏多指數大幅增加, 不如說根本Put沒量了, 一般應該是成交量低的小型股比較有可能)。


在來開始找幾檔個股看看資料吧, 首先如果我們想挑成交量大的公司的話, 可以挑Calls OI排序, 這樣就會依Call未平倉量大小來排序, 可以看到Tslas是第一名(不愧是人氣公司), 而我想關注的只有PCR差異過大的個股, 目前網站是設定成小於0.7為綠色, 大於1.0為紅色, 0.7 - 1.0則為黑色, 用顏色簡單辨識多空, 因為PCR有OI也有Vol算法, 所以我只想看兩個都是小於0.7的個股, 先看前三個有INTC, BABA, PLTR。




看起來目前INTC & PLTR成多頭走勢, BABA則是看起來像在盤整。

再來看看PCR OI & Vol都是大於1.0的, 有NVDA, VALE, PBR:




NVDA因為AI題材大漲後現在像盤整階段, VALE則是目前處在相對低檔盤整, PBR則是持續上漲中, 看起來押注大漲後回檔 & 持續看空下跌的都有, 可是這三檔PCR OI只介於1.0~1.2不是很顯著, 在看一檔PCR OI極高的AAL (2.7):



看起來最近下跌得超厲害, 從PCR OI極高的比率看起來蠻合理的, 而且因為是未平倉量, 代表即使是目前跌成這樣, 還是有不少人持續看空AAL。

看完未平倉/成交量大的公司, 接著來看PCR極端值的情況吧, 首先是PCR極低, 也就是極度偏多的個股, 因為直接用PCR OI排序會有一堆PCR = 0, 沒有puts成交量的個股, 所以我filter先設定Put的未平倉量至少要1000以上, 才能得到比較正常的個股標的:


即便這樣設定還是有不少雞蛋水餃股, 因為股價太低的就是超投機股(也難怪買call的這麼多)所以不考慮, 來看看股價大於10元的MATV:


看起來這半年跌得很慘, 可是如果是這樣, 為什麼PCR OI會這麼高, 來看看Yahoo財經的資料:


原來是明年3/15到期的20元 & 30元行權的call有極大的未平倉量, 換算現在的股價14塊要漲4X%才有機會行權, 可能有大戶看好這間公司未來的發展, 才大量買進遠期Call, 押注公司未來會大漲。 還有另一種可能是, 這個遠期Call其實是更早之前, MATV還沒跌那麼多的時候交易的, 現在放著就是想當成樂透, 凹看看到明年有沒有機會回本也說不定。

至於PCR OI極高的情況其實也跟上面的差不多, 只差在一個是偏多另一個是偏空而已, 大多數PCR會有極端值不是某邊的量趨於0, 就是遠期合約有被大把押注, 就不再舉例說明了。

最後在分享圖表的功能, 因為我有針對每個交易日做snapshot備份資料, 所以也可以畫歷史線圖, 以AAPL為例:


因為目前資料只有一個多禮拜, 所以參考價值不大, 等未來資料豐富以後應該能作為更進一步的投資分析用。


這次分享就差不多到這邊, 其實我對PCR這指標還不是很有想法, 還沒有想到一個系統化使用這個指標的方式, 這部分就慢慢學習慢慢研究了, 共勉之!

2023年9月23日 星期六

[LeetCode] LeetCode解題&自動驗證程式 leetcode-solver-bot-verify-tool

公司30週年時, 盛大的舉辦了一場AI contest, 只要通過預賽的隊伍, 公司就會出錢帶你去日本福岡比決賽, 30週年時比的是AI賽車&撲克牌Hearts (傷心小棧), 那時為了在比賽中得到好名次, 還寫了一個Hearts比賽模擬程式, 可以import客製化的AI程式, 方便快速訓練模型以及驗證自己的AI程式程度如何:

https://github.com/zmcx16/OpenAI-Gym-Hearts


然後過了五年的今天, ChatGPT在今年整個大爆紅, 於是公司又決定舉辦一次AI contest, 這次的預賽項目是coding解題AI, 要寫出一個會解coding problem的AI來比賽, 看誰的正確率最高。

為了這場比賽 & 再去一次福岡, 預賽開賽前第一個想到的, 就是我需要一個驗證程式, 幫助我驗證自己寫出來的coding bot performance如何, 這樣才知道自己每次的修改是不是越改善越好, 畢竟只靠官方的練習次數一天三次實在太少了, 就決定在預賽開賽的前一個週末寫這個驗證程式, 寫好的程式碼如下:

https://github.com/zmcx16/leetcode-solver-bot-verify-tool


使用方法可以參考上面github的README.md, 主要參數如下:



程式其實主要有五個步驟, 每個步驟都可以獨立執行, 可以透過--run-steps來控制:

1. 從資料集生成問題集, 把原始的資料集轉成一個一個question file。

2. 生成solution code, 透過參數-a可以設定你想要拿來測試的coding bot, 如果是用這個repo預設的bot, 記得要先在./leetcode_solver_bot/default_chatgpt_bot.py裡填上自己的OPENAI_API_KEY。

3. 取得LeetCode的cookies & csrf token, 因為要請LeetCode backend幫我們做解答的驗證, 所以需要account才能上傳生成的solution code, 設定0就會自行讀取既有的cookie檔案, 設成1就會用selenium開啟firefox自動login LeetCode網站來取得cookies & csrf token。

4. 驗證答案, 會上傳solution code到LeetCode backend等驗證結果並儲存, 儲存後的檔案會是LeetCode網站回傳的驗證結果:


5. 計算統計結果, 會分別儲存完整版score_readable.json以及精簡版score_summary_readable.json:



除了當次的驗證結果, 也可以分別跑兩組不同的coding bot作為實驗組&對照組, 然後再用verify_calc_score_p_value.py計算p-value, 驗證是否這次的修改有顯著性, 而不是運氣好才碰巧剛好分數高:



這次sharing差不多就到這邊, 這次的AI大賽預賽也過一半了, 希望一切順利~。

2023年7月30日 星期日

[網站開發] 新增美股員工人數成長排行頁面 (Norn-StockScreener投資網站開發)

前一篇相同, 這次做的功能也是從找到冷鑽股,美股獲利穩穩賺中想到的, 書中介紹了Macrotrends這個網站, 這個網站的個股資訊可以看到該公司的員工人數歷史變化, 透過公司員工人數成長來尋找持續成長可以投資的公司, 如果是一間員工人數長期正成長的公司, 可以預期至少經營團隊對公司未來成長是有信心的, 也就才會持續聘僱新員工(雖然也有組織重整優化經營效率的情況, 不過這種情況通常只會經濟不好時偶爾為之, 不影響長期的成長趨勢)。

而我這次想做的跟之前相同, 我想要有個排行&過濾頁面讓我能快速找到成長最快速&持續成長的公司, 而這部份因為我之前已經寫好了Ranking頁面, 所以只要把爬蟲寫好後, 再來只要填些config就能直接整到我的網站上, 不用重寫前端的code就是爽XD


做好的網頁如下:

https://norn-stockscreener.zmcx16.moe/ranking/


Github:

https://github.com/zmcx16/Norn-StockScreener


首先來看看排序的結果, 發現資料怪怪的, 看起來是因為這網站還是有不少missing data & outlier...



如果只是缺資料還好, 我可以讓程式直接當missing data不看就好, 可是如果是outlier錯誤的資料就麻煩了, 畢竟資料是錯的就更不用說後續分析了...。 不過outlier這問題其實算好解決, 因為我的目的本來就是要找員工人數持續正成長的公司, 如果有outlier那就不太可能持續正成長(除非這錯誤資料跟真實的資料太過近似), 目前我的資料庫有3537個個股資料, 來看看員工人數有持續正成長的公司分別有多少間:

  • 持續正成長(All):         684間符合
  • 持續正成長(近三年):  803間符合
  • 持續正成長(近五年):  419間符合
  • 持續正成長(近十年):  121間符合
為什麼持續正成長(All)會比近五年 & 近十年的公司數量少呢? 因為這裡面有不少公司是新公司或缺資料, 所以比起看持續正成長(All), 看持續正成長(近十年)會更有鑑別度, 當然如果我就是想看超過十年有資料 & 一直持續正成長也行, 只要持續正成長(All) & 持續正成長(近十年)兩個tag都選就好(86間符合):



過濾完看起來已經沒有outlier了, 排名第一的是Healthcare Realty Trust (HR), HR是一間醫療產業的REIT, 因為是REIT, 所以基本上需要的員工不多, 市值7.37B但是員工人數只有583名, 用員工人數成長來挑選REIT我想是不太適合的, 而排名第二的Hudson Pacific Properties (HPP)也是REIT, 員工人數則是885名。

為了增加更多彈性, 所以也有提供最低員工人數的tags, 畢竟如果想挑員工持續成長的公司, 挑基數較大的公司也比較有鑑別度 (當然這還是要看產業, 像採擴或製造業就需要大量的員工, 可是像REIT或投資公司就不一定需要這麼多員工)。 


持續正成長(All) & 持續正成長(近十年) & 員工人數 >= 10000:


可以看到上面有不少耳熟能詳的大公司, 像是Morningstar、Master Card、Meta (Facebook), 除了JD & GILD今年表現不好, 其他都還不錯。

MorningStar



Master Card



最後再來想更進一步, 想多看最近一次成長幅度大於平均成長幅度(成長速度比過去快), 並且用52週高點排序, 結果如下:


最後結果只剩13間公司, 而且台積電(TSM)也在裡面, 不過其中離52週高點差20%以上的只有以下三間:

  1. NTRS: 百年以上的金融資產服務公司, 為全球企業、機構、家庭和個人提供財富管理、資產服務、資產管理和銀行解決方案。
  2. EW: 醫療器材&服務公司, 提供用於結構性心髒病、重症監護和手術監測的產品和技術。
  3. INFY: 印度第二大IT公司, 為金融,保險,製造業和其他領域的公司提供軟體開發,維護和獨立驗證服務。

目前是打算先加這三間公司到口袋觀察名單, 未來有閒錢再看能不能投資, 另外提醒一下, 投資一間公司不能看單一因素就做決定, 尤其這世上不乏一堆擴張過快導致周轉不靈破產的公司, 在用員工人數成長作為評估投資因素時, 也得特別注意該公司是不是有可能過度擴張, 要是大環境一改變導致周轉不靈就悲劇了...。

這次分享就差不多到這邊, 目前把手邊的點子也用完了, 最近應該會多花點時間讀書, 在看之後有沒有新的好點子可以做~。

2023年7月22日 星期六

[網站開發] 新增美股股息冠軍頁面 (Norn-StockScreener投資網站開發)

最近看了一本投資理財的書: 找到冷鑽股,美股獲利穩穩賺, 書中有介紹不少好用的網站, 其中有一篇主題是尋找持續配息的公司作為選股條件, 而moneyzine網站有提供股息冠軍的excel表單, 該表單有近700多檔股息持續增長的個股資料(>5年, >10年, >25年), 另外還有股息增長率資料(1年, 3年, 5年, 10年), 也有一些基本的財務資料, 有興趣的人可以參考以下網址:

https://moneyzine.com/investments/dividend-champions/
Dividend Champions Excel Spreadsheet

上面的表單資料是創用CC授權BY-SA, 只要標示姓名就幾乎能包含商業等任意使用, 真的超佛心~。


另外雖然這網站的表單資料已經夠強大了, 不過以我個人來說還是有點不太好用, 我自己是還想要有以下資料:

1. 目前個股的漲跌幅績效(週, 月, 季, 半年, 年), 有這個資料比較能知道目前股價是相對昂貴或便宜, 雖然上面的excel資料有一年最高&最低價, 可是覺得訊息還是太少, 更何況上面的表單是每月只更新一次, 像這種價格資料希望至少是一天更新一次。

2. 雖然有股息連續成長資料 & 各時間段增長率, 可是還是想進一步看到更視覺化的圖表, 例如有間公司的股息連續成長資料只有10年, 可是這間公司可能只有一年不太好沒有發股息, 以我個人來說, 如果只有特定一兩年中斷配息是可以接受的, 畢竟你不知道大環境會突然多糟, 勉強虧錢配股息我是覺得更加不好, 所以希望有每次配息的歷史資訊圖表, 能更進一步知道這間公司的配息狀況。


決定好之後就決定來開工囉, 開始整合新網頁滿足上述需求, 做好的網頁如下:

https://norn-stockscreener.zmcx16.moe/dividend-champions/


Github:

https://github.com/zmcx16/Norn-StockScreener

首先先用股息持續成長時間最長來排序吧, 第一名是AWR (American States Water Company), 股息持續成長達69年, 不過股息殖利率很低只有1.8%, 來看看歷史圖表資訊:


配息資料跟歷史股價資訊是從YAHOO財經取得, YAHOO財經的歷史收盤價以及股息都是調整後的價格, 要計算年殖利率的話只要股息 * 一年配息次數 / 股價就可以計算出來, 不過可以看到最前面的殖利率異常高, 我是覺得應該是比較早期的股息資料有些沒有調整好, 或是有其他原因(兩種調整方式公式不同, 不能直接相除之類的...), 個人是覺得太久遠前的資料就單純參考, 還是以近10年的資料來看就好。

AWR是美國國家水務公司, 查了下wiki 該公司與美國政府簽訂了50年的私有化合同,作為其供水系統服務的政府承包商, 接政府50年的單難怪可以配息這麼穩, 不過因為近10年股價飆漲, 可是配息增漲得太緩慢, 所以股息殖利率就非常低...。

不過就算近10年股價看起來爆漲, 可是只看近5年的話其實都在上下震盪, 感覺估值過高+成長有限, 我自己是不想為了穩定配息去投資公司, 除非哪天有超甜的價格等同變相提高股息殖利率才會考慮投資。


再來用股息殖利率排序, 看看目前殖利率最高的個股吧:



排名第一名竟然是這次銀行危機已經倒閉的FRC銀行, 因為股價已經近乎於零, 殖利率會排第一是不例外啦..., 資料還沒砍掉應該是因為這是電腦自己統計的資料, 可能要過陣子才會移除了...。 


至於實質第一名則是MPW (Medical Properties Trust), MPW是一間提供醫療設施的REIT (還是我第三大持股, 不過今天Cover Call被迫用10塊獲利了結了, 之後應該會找機會再買回來XDD), 殖利率高達14.72%, 至於為什麼殖利率這麼高呢? 來看看過往的配息紀錄:



可以看到MPW的股息每年一直緩緩增加, 可是股息殖利率曲線卻越來越低, 這是因為股價上漲的幅度比配息增加的速度還快, 所以股息殖利率才越來越低 (當然這對股東來說更好, 賺了股價又賺了配息), 可是到了2022年初開始崩下來, 股價從20塊一路向下到最低7.5塊左右, 將近下跌了60%, 會這樣的原因主要在於升息造成各REIT產業大受影響, 融資成本變高再加上租戶的經營更加困難造成。 

其中對MPW影響最大的是, 大客戶Prospect Medical Holdings經營遇到困難, 所以已經好幾個月沒收到租金, 導致MPW 2022 Q4虧損, 最近幾季都是用自己的本金配息。




所以MPW的股息殖利率高是因為股價大幅下跌的關係, 如果要投資就得想清楚, 該公司是否之後經營會改善, 配息會不會持續下去, 目前MPW在協助PMH重組, 即便重組不順利也可以收回出租的資產, 但是收回的資產價值多少也不好說, 不過MPW本身也是全球最大的醫療REIT之一, 加上考慮到人口老化以及科技持續進步, 醫療產業我覺得在未來也會是持續成長的產業, 所以個人目前還是會持續關注, 如果有機會在進場投資這間公司。


再來看看10年股息成長率最高的個股PXD (Pioneer Natural Resources Company)吧, DGR 10Y: 50.79%, 成長幅度驚人:



看起來這間公司從2021年9月開始大幅增加配息, 圖表上的震盪其實是因為有些是固定配息, 有些是額外配息, 所以看起來才斷斷續續的, 實際上用整年配息來看還是持續成長的。 查詢了一下PXD是石油&天然氣的開採公司, 2021年的石油跟天然氣暴漲, 最近爆賺難怪配息會這麼大方, 不過因為最近石油價格大幅下滑, 所以公司的獲利也變低了, 可以預見未來不會有這麼高的股息殖利率。




這次分享差不多就到這邊, 從上面的幾個例子可以看出, 光是連續股息成長或是高股息殖利率通常不是單一可以決定投資的因素, 一定要深入分析背後的原因, 在判斷到底適不適合做為自己持股的標的!

另外說說個人題外話, 今年因為銀行擠兌危機績效一度慘烈(三間破產銀行我就中兩間..., 直接總資產15%直接歸零, 幸好有分散投資不然真的哭死QQ), 不過最近績效不錯已經有小贏標普 (離那斯達克的車尾燈還有夠遠就是~~), 希望下半年的投資績效可以更好~~。

2023年6月18日 星期日

[網站開發] 新增ESG歷史資料整理頁面 (Norn-StockScreener投資網站開發)

前一篇有做了一個美股空頭資料整理頁面:

[網站開發] 新增美股空頭資料歷史整理頁面 (Norn-StockScreener投資網站開發)


個人覺得這頁面對我還蠻有幫助的, 可以用表格&歷史變化圖表快速讓我知道現在的空頭數字&跟歷史相比到底是高或低, 目前的趨勢是增加還是減少, 就開始想有沒有其他有用的資訊也可以整合類似的功能, 後來就想到可以做ESG這塊, 就決定來研究怎麼做了!


ESG歷史資料這塊, 因為我之前也有整合ESG data到Ranking頁面, 可以參考這篇:

[網站開發] 新增ESG排行頁面 & 搜尋過濾條件 (Norn-StockScreener投資網站開發)


關於ESG的介紹就不再提了, 可以直接參考上面那篇就好, 而至於歷史資料方面, 因為我的ESG data是從Yahoo財經來的, 所以就開始來研究怎麼取得ESG歷史資料, 而在研究的時候發現一件有趣的事, 我在Yahoo財經其實看不到ESG的歷史圖, 可是Yahoo財經的API卻是有提供ESG歷史資料的, 不知道是以前網頁有整合後來拔掉了可是API沒拔, 還是付費會員才看得到的之類的, 總之我就心懷感激地使用吧XD

整合好的頁面如下:

https://norn-stockscreener.zmcx16.moe/esg-stocks-summary/


Github:

https://github.com/zmcx16/Norn-StockScreener


整合好的資料分別是最新的ESG資料, 以及過去一年, 三年, 五年平均的資料; 還有個股對應同產業的ESG資料, 以及標的對產業的ESG相除的ratio, 所以可以比較標的公司跟同業的ESG比較, 從之得知想看的這間公司在同業平均裡的ESG表現相對如何。 

而其中有一點比較殘念的是, 上面的Latest其實不是真的最新的分數, 而是歷史資料的最新一筆, 可是我查了一下目前大多數個股的歷史ESG資料最新是2023/01/01, 其他資料看起來是以月份為資料取樣基準, 不過也不是每個月都有, 所以畫出來的歷史圖表也就會有不少missing data...。


上面使用的ESG資料是Sustainalytics公司分析, 以50分為基準, 分數越小代表公司可持續經營評比越好, 首先我會想看看, 哪一間公司的ESG分數, 是同業比表現最好的, 所以我可以針對ESG Ratio Latest做排序, 數字最小的就代表這間公司的ESG可持續經營是同業表現最好的, 上面看到的第一名是Wheaton Precious Metals Corp (惠頓貴金屬), ESG ratio為0.27, 相當於跟同業表現平均優於近4倍。 再來我們可以看看更細部的歷史資料:


以採礦業來說, 最讓人詬病的應該就屬環境問題了, 而WPM的環境分數竟然只有0.06分, 相比同業的10.29可以說是超級優良, 代表這間公司在ESG評鑑機構的調查中, 是一間非常重視環境保護的採礦公司。

另外也來Google一下WPM最近的新聞, 剛好也看到5/15這篇新聞:


部分內文(我直接Google翻譯中文XD) 
2022 年報告全面審查了惠頓在環境、社會和治理(“ESG”)主題方面的表現,包括:

ESG 戰略與治理:

惠頓 ESG 戰略、目標和承諾的最新進展。

使用“雙重重要性”方法更新重要性評估。

建立了與循環信貸機制相關的可持續性關聯要素。

環境:

擴展了有關到 2050 年實現淨零碳排放的途徑的信息1以及迄今為止在該主題上取得的進展,重點是范圍 3 融資排放。

2021 年 68% 的範圍 3 資助的排放量符合 2°C 或更低的減排目標。

多樣性、公平性和包容性:

提前兩年實現董事會女性成員佔 30% 的目標。

設定一個新目標,以提高惠頓的性別多樣性和可見少數群體的百分比,包括領導力,並推進多樣性和包容性舉措。

社區投資計劃:

全年分配了超過590 萬美元,用於支持全球 100 多項慈善事業和倡議。

自 2009 年社區投資計劃啟動以來,已向當地慈善機構和礦業社區捐款超過3800 萬美元。

投資決策和盡職調查:

2022 年 100% 的新流媒體協議都針對 ESG 問題和風險進行了篩選。

惠頓 85% 的礦業合作夥伴致力於實施一項或多項行業可持續性標準,佔 2022 年可歸屬產量的 89%。

認出:

在 Sustainalytics 的 15,000 多家多行業公司中,貴金屬的“ESG 行業最高評級”和“ESG 全球 50 強評級”、MSCI 的“AA”評級和 ISS 的“優質”評級。

被 Corporate Knights 評為加拿大最佳 50 家企業公民之一。

在 CDP 的氣候變化調查問卷中獲得 B 分。

惠頓 2022 年可持續發展報告中的信息和數據由可持續發展會計準則委員會(“SASB”)、全球報告倡議組織(“GRI”)和氣候相關財務信息披露工作組(“TCFD”)提供。一份單獨的與 TCFD 一致的氣候變化報告將於今年晚些時候發布,其中將包括詳細的氣候相關信息披露。

再來想看看特斯拉的ESG, 圖表如下:


會想看特斯拉是因為之前印象有馬斯克大罵ESG是騙局的新聞, 可以看下面這篇:

Tesla低調重返標普ESG指數 分數比菸草和石油公司還低

這邊要強調一下, 標普ESG分數跟Sustainalytics的分數基準不同, 一個是100級分一個是50級分, 標普ESG分數是越高越好而Sustainalytics分數是越低越好。

看標普ESG分數, 特斯拉的環境分數是優於同業的(畢竟電動車就是比油車環保), Sustainalytics的分數也是一樣, 環境分數遠優於同業, 可是綜合分數就輸同業了, 代表社群跟治理部分特斯拉還需要繼續努力, 其實這也不意外啦, 畢竟特斯拉員工爆肝的新聞超多的, 能在裡面工作的真的很猛...。

這次分享差不多就到這邊, 之後在邊看書邊想有什麼其他東西是可以研究的~。

2023年5月11日 星期四

[網站開發] 新增美股空頭資料歷史整理頁面 (Norn-StockScreener投資網站開發)

最近反省近期的交易, 覺得自己今年交易的一些個股/選擇權, 因為高空頭比率的關係卻做多導致損失不少, 所以開始思考自己能怎麼針對這塊做改善。

針對這部分, 其實自己已經有在常用的一些投資頁面加個股的short float資料, 讓我在交易之前能快速知道該標的的空頭比例, 再決定要不要進場。 不過後來想想這樣還是不夠,  主要原因在於單純從short float / short ratio這兩個數字中, 我雖然能知道目前有多少流通股被做空以及平均要花多少時間消化這些空頭數量, 可是我不知道這件事的歷史變化, 以及這樣的空頭比率對這間公司, 這個產業是否正常, 畢竟只有一個數字沒辦法透漏我想要的更多細節資訊。 

想了下決定要改善這塊後, 就來研究怎麼取得美股空頭歷史資料了, 查了一下美國金融業監管局(FINRA)有規定各個交易所, 每個月中&月末都必須提交空頭資料, 然後也開放讓大眾在FINRA網站上查詢空頭歷史資料:

https://www.finra.org/finra-data/browse-catalog/equity-short-interest/data

查詢頁面提供的資料有short interest, avg daily volume, days to cover (short ratio), etc... 可惜的是沒有提供個股流通量所以沒辦法算short float, 不過這個資料我以前寫的爬蟲就有抓了, 所以也算得出來, 資料都準備好了, 再來就是寫個網頁整理這些資料了, 做好的網站如下:

https://norn-stockscreener.zmcx16.moe/short-stocks-summary/


Github:

https://github.com/zmcx16/Norn-StockScreener




上圖表格上的Short Float值為放空股數 / 流通股數量, 同字面意思就是空頭股數佔流通股的比例, 而流通股數量有兩個數字可以用, 分別是Share Outstanding以及Share Float, 前者是字面上意思的公司已發行股票; 後者則是扣除公司內部人士以及控股投資人的流通股數量, 因為一般內部人士不常買賣公司股票, 所以就決定使用Short Float = Short Interest / Share Float這個公式。 

而Short Ratio就是Days To Cover, 表達的意思是平均要花幾天才能把這些空頭股數消化完, 公式為Short Ratio = Short Interest / Average Daily Volume, 雖然FINRA本身就有提供Days To Cover這個值, 可是小於1的數值他都會直接給1, 為了精準表達就決定還是自己計算就好。


其實Short Float & Short Ratio這兩個值來說, 各大財經網站就都有提供了, 不過想說自己有FINRA資料就還是自己計算, 畢竟每個財經網站的資料都有些落差, 而且我還得計算歷史變化, 使用相同的資料跟公式才不會有奇怪的落差。

再來表格上有SF-15d, SF-30d, SF-45d, SR-15d, SR-30d, SR-45d, 代表的是最近一次報告跟前15天, 30天, 45天的變化 (short interest latest - short interest history / short interest history), 表示Short Float & Short Ratio這段時間的變化(另外還有6mo & 1yr的資料, 因為時間太遠就預設隱藏, 有需要也可以自行打開), 有了這些欄位資料, 我就可以知道這些個股是空單持續增加, 還是維持一陣子了, 或是已經空單已經開始減少, 輔助使用者做進一步交易判斷。



除了統整的表格資料, 也提供近一年的歷史圖表做視覺化, 上圖為股價&交易量線圖; 中圖為空頭股數&平均交易量線圖; 下圖為Short Float & Short Ratio的歷史線圖, 可以直接看這個圖表了解這一年股價跟空單交易的趨勢走向。




介紹完之後, 再來看看近期銀行危機的股價&空單交易變化吧, 首先來看看最近倒閉的FRC:


可以看見FRC在區域銀行危機之前, 交易量 & Short Interest & Short Float都很小, 然後爆發區域銀行危機後, 3/15空單數量激增, Short Float也從2.75% -> 4.94%, 這算是一個小警訊(Short Ratio反而下降是因為相對於增加的空單量, 股票交易量暴增的更是龐大), 而3/31更是誇張, Short Float從4.94% -> 30.04%, 這暴增量就是一個警訊了, 而再下一次空頭回報日一樣維持在高放空率, 再再下一次就被監管破產了, 所以也就沒資料了。

這次新增的功能就介紹到這邊, 最後補充一下個人想法, 大多時候空頭指標跟股價實際相關程度並不大, 除了非常劇烈的變化才會有正相關性, 所以建議空頭指標最好只拿來當交易前的警示判斷參考標準, 千萬不要只用這個指標作為交易的準則甚至去做放空的交易...。