2022年10月2日 星期日

[個人網站開發] 新增持股相關企業-近期業績公布日資料

最近又到美股財報季了, 由於現在個人持股已經到22檔, 管理上越來越困難, 尤其是財報季的時候, 通常在自己持股的公司公布財報前, 我也會想知道相關產業的公司業績如何, 提前知道相關產業的營運績效, 心裡對自己持股的公司的產業情況也比較有個底, 提前當作參考做個心理準備也好~。

要做這個也很簡單, 寫個爬蟲抓YAHOO財經的資料, 先抓自己持股頁面的類似公司有那些, 然後再跳到那頁面抓取業績公布日就好, 之後就把資料丟到個人網站上, 整理後結果大概就像這樣:


個人網站頁面: https://project.zmcx16.moe/?page=investment-stocks
Github: https://github.com/zmcx16/zmcx16.github.io

上面的Similar就是我的持股標的, Date跟Symbol則是Yahoo分類的該公司的類似企業的股票代號以及業績公布日, 而Similar顯示"-"的則代表那標的就是我持股的業績公布日, 點擊後就會跳到Yahoo財經對應的頁面, 簡單寫個小爬蟲以後就能輕鬆許多XD 


最後稍微分享下這次的小爬蟲程式, 程式碼如下:
https://github.com/zmcx16/zmcx16.github.io/blob/master/.github/script/build_similar-earning-data.py


程式是直接打https request到Yahoo財經個股首頁抓網頁內容, 不使用yfinance是因為雖然yfinance可以查詢業績公布日, 卻沒辦法取得個股相近的股票代號, 所以沒辦法只好打https request取得整個網頁檔再自己寫parser。

運氣好的是, Yahoo財經擋爬蟲做得很陽春, 只要request header有帶user-agents就不會特別阻擋(沒帶的話會回404 error, 做這麼簡單的方式真棒XD)。 然後可能Yahoo財經是老網站了, 前後端分離做得很陽春, 個股首頁的資料沒有獨立成API(其他頁面有), 可是也不是純SSR (Server-Side-Rendering), html網頁碼長得像這樣:


所有資料直接以dict的形式塞到root.App.main變數裡, 我連寫regular expression都不用, 直接抓這一行再把頭尾去掉再當json載入就好, 個股首頁所有用到的資料都放在這裡, parser可以寫這麼輕鬆真的是太棒了XD

這次分享差不多就到這邊, 美股最近依然持續大跌, 希望能稍微跌慢點, 這樣我才有加碼的機會啊~~~。

2022年9月24日 星期六

[網站開發] 美股選擇權定價模型 - 新增業績公佈日 / 除息日 / 行權機率

最近在交易選擇權時, 有時會看到模型的分數後就草草交易, 沒有多花時間確認近期新聞 / 合約到期日前是否會公布業績 or 除息, 導致交易到一些看似勝率高, 結果反而是風險高的合約, 為了避免之後再遇到這種情況, 就決定把業績公布日 / 除息日也整合到選擇權頁面, 這樣就不用為了這些資訊每次都去Google查詢, 也不會忘記查詢相關資料 + 節省更多時間。

關於資料取得方面, 業績公布日是從YAHOO取得, 而除息日YAHOO的資料通常是最近一期的除息日, 可是這資料對選擇權來說根本沒意義, 有意義的是近期公布的未來除息日, 這個資料可以從這網站取得:

https://www.dividend.com/ex-dividend-dates/

整合到網站後成果如下:

Github:

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

https://github.com/zmcx16/Norn-Finance-API-Server


Norn-Stockscreener選擇權估值頁面:

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



如果業績公布日 or 除息日在選擇權合約到期前的話會用紅色特別標註, 如果是已經過了或是沒有資料就不顯示, 這樣就可以快速知道這個合約的價格是不是因為這些事件的關係所以才有高溢價 / 折價, 如果有的話就不能單純相信模型算出來的分數。

另外因為業績公布日這資料是透過YAHOO取得, 而YAHOO要是爬蟲抓資料太頻繁會被ban ip, 所以這個欄位我只實作在Self Query以及自己的個人網站上, 主頁面的資料是取自marketwatch, 就不支援了...。


此外, 這次也多加了一個行權機率的欄位, 會加這個欄位主要是因為, 凱利公式如果計算出的建議下注比率分數很高, 有可能是高勝算高獲益 or 高勝算低獲益 or 低勝算高獲益, 可是大多時候比起最終的建議下注比率分數, 我更傾向只交易高勝率的合約, 如果今天凱利公式的分數高是因為合約價格溢價太高但是勝率並不高, 那我可能會更傾向不交易這個合約, 這時候如果有單純的行權機率可以參考的話對我的幫助很大。

其實真的要看行權機率, 單看Delta也可以間接知道這合約的行權機率, 不過Delta這數字對我不太直覺, 所以還是想要一個真實的機率值。至於這機率值的計算方式就是單純用蒙地卡羅模擬股價變化直到合約到期日, 然後再計算行權數 / 模擬次數就好, 直接簡單易懂XD


這次分享差不多就這樣, 再來有空也會繼續搞新東西, 希望今年績效能早點轉正阿~。

2022年8月28日 星期日

[網站開發] 美股選擇權定價模型 - 新增隱含波動率計算凱利公式

接前篇: [網站開發] 美股選擇權定價模型 - 用蒙地卡羅模擬計算凱利公式

之前做的美股選擇權估值模型中, 計算凱利公式時用到的蒙地卡羅公式中的標的資產波動率, 是使用該對應資產的指數加權移動平均歷史波動率計算出來的, 藉由波動率模擬標的資產的價格變化, 來計算選擇權到期時預期的獲利或虧損來計算公式。 

不過畢竟歷史波動率是過去的資料, 過去的波動率也不能代表未來會一樣, 資產價格的變化也不是常態分布, 所有的估值模型也只能做為參考, 不可能有精確預測未來的模型, 不過只要衡量的估值跟真實的價值誤差能減少, 對於投資交易的績效改善應該就十分有幫助了。

至於這次想做的, 只是想多個相對的交易參考點, 之前做的蒙地卡羅資產模擬是完全用資產標的的過去資料(歷史波動率)模擬資產價格的變化, 如果用選擇權合約的隱含波動率來模擬的話, 效果會如何呢, 關於選擇權合約的隱含波動率介紹, 可以參考市場先生下面這篇文章:

隱含波動率vs.歷史波動率》一次看懂兩種波動率該如何使用


隱含波動率簡單來說, 就是把合約的現在價格, 套用既有的選擇權估值模型, 去反推公式中的輸入參數波動率是多少, 這樣反推出來的波動率就不是輸入參數, 而是輸出結果, 而這輸出結果也可以間接表示當前市場的情緒所反映的標的資產預期波動率。

通常來說, 選擇權的隱含波動率跟標的資產波動率應該是無關的, 每個合約都有自己的價格, 所以也都會有自己的隱含波動率, 可是標的資產只有一個, 所以真實的波動率也只會有一個, 這樣想想拿選擇權的隱含波動率去套用在標的資產的價格模擬上是件很奇怪的事。 

不過實際上來說, 標的資產價格跟標的期貨價格以及標的選擇權合約的價格本來就是息息相關的, 投資人在買期貨或選擇權時會以現在的資產價格做參考基準, 反之在買進資產時也可能會參考目前期貨或選擇權的價格來決定是否要交易, 也會透過買期貨或選擇權幫現貨避險, 甚至是尋找現貨跟期貨跟合約的折溢價做套利交易, 所以某方面來說, 透過隱含波動率來模擬標的資產價格其實也是可以作為一種交易的參考(至於相關性多高, 有多大的參考價值又是另一回事就是)。

這樣分析下來, 用隱含波動率去做標的資產價格模擬雖然可能有參考價值, 但好像比歷史波動率相關性還低, 那為什麼要這麼做呢? 最主要的原因是, 用歷史波動率是用過去資料做估值計算; 而用隱含波動率則是可以用現在的市場預期價格(情緒)換算出來的波動率做估值計算。 這樣我的估值模型就多了一個可參考的點, 歷史波動率算出來的估值模型是用過去資料模擬的結果; 隱含波動率算出來的估值模型則是用當下市場資料模擬的結果, 我可以只專注交易這兩種結果勝率皆高的合約來改善自己的投資績效。 

做出來的成果如下:

Github:

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

https://github.com/zmcx16/Norn-Finance-API-Server


Norn-Stockscreener選擇權估值頁面:

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


因為每個選擇權合約都有自己的隱含波動率, 要把所有合約都跑標的資產的蒙地卡羅模擬計算量太大了, 所以這次做的凱利公式(隱含波動率) 只支援Self Query即時打API的功能, batchjob跑所有合約的就不提供了。

首先來看看上週五跌超慘的3M (MMM)吧, 3M這麼有名的公司就不介紹了, 直接看估值模型跑出來的賣權合約結果:



綠色框起來的部分是標的資產的歷史波動率, 以及用歷史波動率計算出來的凱利公式(EWMA)下注比率, 歷史波動率都一樣是因為這是用標的資產的歷史資料算出來的, 不會因為選擇權合約的不同有所不同; 藍色框起來的部分則是該合約的隱含波動率, 以及用隱含波動率計算出來的凱利公式下注比率(IV)。 可以看到因為隱含波動率比標的資產的歷史波動率皆大得多, 所以計算出來的凱利公式(IV)的投注率跟凱利公式(EWMA)相比皆低得多, 要做賣出賣權的話可能就得考慮一下, 至於為什麼會落差這麼大, 可以看看近期3M的股價走勢:

上週五有一根超級大跌, 原因Google了一下, 除了上週五美股大跌以外, 3M這邊有個新聞:

破產聲請遭駁回 3M撇不開耳塞案賠償重挫近10%

看起來是法官駁回3M子公司的破產保護, 可能導致3M面臨大規模的耳塞瑕疵索賠, 這消息直接反映在3M的股價以及選擇權合約的價格上, 所以選擇權估值模型計算出來的凱利公式(IV)的投注率才會低得多, 以歷史波動率來說即便是指數加權平均, 這種單一根大跌也很難反應在整體的波動率上, 如果只看凱利公式(EWMA)下注的話風險就會高得許多。

再來看看美股版的中華電信AT&T: 



隱含波動率跟歷史波動率落差沒有很大, 所以計算出來的凱利公式也差不多, 這代表市場現在預期跟標的資產過去表現差異不大, 像這類的個股就比較好估值, 會出現非預期的大風險的機率也比較小。

這次分享差不多就到這邊, 最後說個題外話, Norn-Finance-API-Server的Self Query目前是接在免費的Heroku服務上, 可是Heroku今年11月28號後就要取消免費了, 所以Self Query這個功能不確定會不會繼續免費開放, 如果有找到其他免費的代管server會考慮再搬過去, 殘念哪...

https://blog.heroku.com/next-chapter




2022年8月13日 星期六

MahoMangaDownloaderVer16.8 & 16.9更新

有使用者後續反應copymanga幾個問題, 一個是章節標題有"-"後面會自動被截掉的問題, 另一個是有機率新增漫畫時會卡很久然後跳空白清單, 第一個問題算好解決, parser改個地方換個寫法就好, 後者就很麻煩, 應該是有防爬蟲機器人的邏輯, 總之也只能試著繞過看看了..., 目前自己測試應該是有改善不少...。

Ver16.9 更新內容:

* 修復copymanga章節標題有"-"標題會被截掉問題

* 改善新增漫畫時機率性跳出空白清單問題


檔案位址:

https://drive.google.com/file/d/10FsEGc-jlqslplyuvYiKIAFL4YUJ5DYQ/view?usp=sharing

32位元版本:

https://drive.google.com/file/d/10O26LdMcnJrLsDEwvxmUzdgZUvLsn8He/view?usp=sharing


2022年7月4日 星期一

MahoMangaDownloaderVer16.6 & 16.7更新

今天有使用者反映漫畫櫃下載的圖片都不能看, 可是舊版可以, 看起來應該是16.6版為了某些不能下載的webp漫畫修改的header造成的, 不過我也沒辦法reproduce, 所以要改也很兩難, 太多特殊個案了...。 總之先改成, 用舊版的header先下載, 失敗的話再用新header下載了, 遇到這種沒辦法reproduce + 部分特殊邏輯的問題真的覺得很麻煩...。

Ver16.7 更新內容:

2022年6月5日 星期日

[網站開發] 透過Clarivate百大創新機構報告尋找投資標的

接前篇:

[網站開發] 透過最有價值品牌尋找投資標的 (Norn-StockScreener 新增Ranking Indicators頁面)

上篇文章提到透過Interbrand每年的最佳品牌報告尋找投資標的, 以品牌作為投資的參考指標, 這次則是想新增以創新為主的指標, 研究了一下發現可以參考Clarivate每年的全球百大創新機構報告:

Clarivate (科睿唯安, 原湯森路透智慧財產權與科技事業部, 擁有超過60年的專業服務經驗) 是一家獨立的公司(美股代號: CLVT),擁有並經營著一批以訂閱為基礎的商業服務,主要為全球客戶提供科學和學術研究、專利分析和監管標準、製藥和生物技術情報、商標保護、品牌保護和智慧財產權管理等服務。

以下為入選Clarivate 2022年創新百大機構的清單:

https://clarivate.com/zh-hant/top-100-innovators/the-top-100/?clv-award-year=2022



另外網站上也可以直接下載整份年度報告, 裡面除了百大創新機構清單以外, 還有一些他們如何選出這些機構的評量指標, 基於產業 / 地區 / 國家的創新排名, 以及總結&未來預測等等, 整份報告只有28頁而且有中/英文版, 有興趣的人也可以下載看看(下載要填註冊企業相關資料, 我是當個人企業在填, 只要有填就可以下載了)。


另外分享一些在整理這份創新機構清單時&網站整合時的小心得:

1. 因為研究對象是創新機構, 所以入選的機構不一定會是上市公司企業, 例如今年入選的機構有法國國家科學研究中心、原子能和替代能源委員會以及工業技術研究院(沒錯, 就是台灣的工研院! 我看到的時候也嚇到了...)

2. 有些機構雖然是公司企業, 可是不一定有上市, 有上市也不一定在美股有ADR, 像這種機構就跟之前整合品牌指標到網站上時一樣, 股票代號會以"-"表示, 如果是有上市但美股ADR沒有, 一樣還是可以看到股票代號, 不過相關的基本面以及績效資料就不會顯示在整合網站上。

3. 跟之前整合品牌指標時不同, 創新指標的入選機構有非常多化學、工業、電子、半導體等產業, 其實也不意外, 創新跟專利&智慧財產權是密不可分的, 而化學、工業、電子、半導體等產業競爭當然特別重視專利跟智慧財產權這塊。

4. 2022年的入選機構增加了特別多的汽車&電子製造&半導體機構, 電子&半導體機構不說, 汽車產業有這麼多公司入選讓我蠻意外的, 或許這代表現在傳統的汽車大廠真的認真在研發電動車領域了, 或許也是一個投資的好機會。

5. 因為Clarivate百大創新機構報告沒有對入選機構特別做排名, 可是我還是想排序, 所以就以這11年下來入選幾次做為排序的基準了。


最後整合好的頁面如下:

Norn-StockScreener投資網站: https://norn-stockscreener.zmcx16.moe/ranking/

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


總共有21個機構並列第一, 都是連續11年入選百大創新機構的企業。 而74名後的27個機構則是今年第一次入選的機構, 裡面有不少台灣的電子產業公司以及全世界各大傳統汽車公司。

這次分享差不多就到這, 不過還是老話一句, 跟品牌指標一樣, 創新指標只能做為參考用, 持續創新的公司不代表就會有競爭力&持續成長&賺大錢, 還是要做各方面的研究後, 在決定是否要投資這間公司!

2022年5月22日 星期日

[網站開發] 透過最有價值品牌尋找投資標的 (Norn-StockScreener 新增Ranking Indicators頁面)

最近看的投資理財的書, 有介紹到一些不錯的尋找優良公司投資的方法, 像是透過公司品牌價值、研發佔營收比例等等, 覺得蠻有意思的, 我自己主要是透過自製的選股工具找好標的, 可以做基本面條件過濾(P/E, P/B, ROE...etc), 也可以用多因子選股模型計算個股分數(價值因子, 成長因子, 動能因子...etc), 或是就挑一些自己熟悉的公司, 而像品牌價值這種主觀性很高的指標, 就沒辦法直接套用到我目前的選股工具上。

既然沒辦法做進去, 那乾脆就開個新頁面吧! Ranking Indicators這個頁面我打算就用來表示一些特殊指標挑出來的公司, 一方面透過這些獨特的新指標, 可以讓我的資產更多樣性; 另一方面我也可以藉此學習更多基本面, 技術面以外的領域, 讓投資方法更多元化!


Ranking Indicators頁面第一個整合的指標: "Interbrand - Best Global Brands", Interbrand成立於1974年, 是全世界最大的綜合性品牌諮詢公司, Interbrand每年都會公布世界最有價值品牌排行榜, 而品牌這個價值也是財報的資產負債表上看不到的, 就像蘋果(AAPL)的P/B高達33, 但是蘋果也已連續九年位居全球最有價值品牌榜首, 不能單從P/B就覺得蘋果的股價太高, 蘋果的最大資產並不是他的固定資產或浮動資產, 而是品牌&設計&技術力, 就算是一塊眼鏡大小的擦拭布, 蘋果賣600塊台幣還能大熱銷, 只能說真的超神XD

Interbrand - Best Global Brands網頁連結:
https://interbrand.com/best-global-brands/



幾乎都是耳熟能詳的品牌, 點擊對應的品牌, 還可以看到這個品牌的介紹以及歷年來估計的品牌價值, 像剛剛提到的蘋果, 品牌價值一直是顯著上升, 尤其是iPhone & Mac筆電上市後, 品牌價值的成長速度更是顯著提升。


再來就是想要怎麼把這些品牌, 連結到投資上了, 要做的方式其實很簡單, 找出這些品牌的公司, 並看看對應的公司能不能投資, 有沒有在公開市場上市這樣, 下面分享下整理後的一些心得:

1. 有些品牌是私有公司持有, 並沒有在公開市場上市, 像是Chanel(香奈兒)、IKEA(宜家家居)、LEGO(樂高)、Cartier(卡地亞)、Huawei(華為), 像這種情況就不用想投資了~。

2. 有不少公司不在公開市場交易, 只有場外交易(OTC), 而且成交量可能極低, 不一定適合一般散戶投資人買賣。 (100個品牌中就有30幾個品牌是這樣, 靠品牌賺錢在公開市場募資的必要性大概也不大, 有價值的品牌本身就是一個不需競爭的強大優勢)

3. Louis Vuitton(路易威登) 除了自己的品牌, 還有Tiffany & Co.(蒂芙尼), Hennessy(軒尼詩), Sephora(絲芙蘭); 而Dior(迪奧)又有LVMH(路易威登)大多數的股權, 這些奢侈品品牌在過去不斷的併購結合, 感覺真的蠻可怕的..., 畢竟都是自己人, 定價權就在自己身上了...。


再來是整合的部分, 因為Interbrand的資料是品牌價值, 不是上市公司, 所以要連結在一起總會有些障礙或限制:

1. 品牌持有是私有公司的部分, 股票代號會直接顯示: "-"。

2. 品牌對應的公司已被收購, 會直接用母公司的股票代號代替。

3. 目前我的資料庫並沒有場外交易(OTC)的資料, 所以大概有1/3的品牌只提供股票代號, 沒有基本面以及績效資料。

4. 基本面跟績效資料非實時更新, 更新頻率為每日一次。


最後整合好的頁面如下:

Norn-StockScreener投資網站: https://norn-stockscreener.zmcx16.moe/ranking/

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



首先簡單來試用一下, 今年股市像溫水煮青蛙, 大盤一直跌, 來看一下在大盤一直跌的情況下, 這百大品牌的公司誰績效最好:


今年績效最好的分別是家樂氏、嬌生以及可口可樂, 感覺也完全不意外, 畢竟民生必需品最抗跌, 投資市場再慘通膨在誇張, 也還是要吃飯啊...。


今年跌最慘的是Netflix, 畢竟今年Netflix訂戶大量流失導致股價大跌, 加上升息關係科技股一片血海也不意外阿...。中間多一個Ford福特汽車倒是讓我蠻意外的就是。

關於這頁面的使用方法, 以我個人來說, 大概會幾個禮拜或一個月來看一下這頁面, 看一下這些公司有沒有便宜可以撿, 並分析一下對應的品牌有沒有可能繼續成長或衰退的可能, 做為多元投資的其中一個參考項目。


這次分享差不多就到這, 不過最後想多分享一個自己的想法, 畢竟品牌跟公司營運不是絕對的關係, 有可能品牌價值一直成長, 公司卻一直虧錢; 或是品牌價值已經開始走下坡下跌了, 公司營運或財報上卻可能還看不出有什麼端倪, 建議如果想從品牌價值尋找投資機會的話, 還是要充分做好基本的調查跟分析。 如果品牌價值持續成長當然很好, 不過記得要看一下這間公司目前營運如何, 股價最近有沒有被炒作太高; 如果一間公司你很想投資, 可是品牌價值開始停滯不前甚至開始下滑的話, 最好再多考慮一下, 是不是這間公司開始走下坡了, 多思考研究一下後再做投資決定。