2023年12月30日 星期六

2023投資績效報告

2023投資績效: 40.41%

VTI: 26.05%

SPX: 26.19%

QQQ: 54.85%



雖然報酬看起來還不錯, 不過夏普比率只有0.8大輸大盤指數, 代表這些報酬是靠風險換來的, 高興不太起來...。

績效細項如下:

  • 股票績效: 32.7%
  • 選擇權績效: 14.7%
  • 劵商利息&其他費用: -7.2%
  • 股息:  11.5% (有1/3是ZIM的配息...)

上面的股票績效&選擇權績效如果把變壁紙的SBNY算進去的話(畢竟交易時是擠兌危機前, 行權的時候已經是壁紙...), 實際上要在轉移11%左右(股票: 43%, 選擇權: 3%)

---

  • 未實現: -55.7% 
  • 已實現: 50.6%  (股票: 37.4%  選擇權: 13.2%)

Note. 上面的細項%是自己用年初帳戶市值換算的所以不一定完全準確, IB的活動報表沒辦法看未實現&已實現細項%, 超麻煩...。


近五年績效:


開戶到現在累積報酬還是輸大盤, 主要還是因為認真投資是這幾年的事, 剛工作1~2年沒特別花心力在投資這塊, 還踩到一個深海鑽油公司暴死的雷, 後來才開始自己認真做投資工具&投資(&薪水開始有餘裕多投入進去)。


總結完畢, 再來是落落長的心得:

今年是個神奇的一年, 一方面是經歷去年的空頭後整個大起飛(尤其是科技股相關); 另一方面則是今年的美國銀行擠兌危機導致數間銀行倒閉, 我還踩到了其中兩間銀行(SBNY&FRC)導致股票變壁紙, 資產的15%直接歸零..., 然後自己也因為銀行危機太早把科技股轉換成銀行&消費類股, 導致今年初的績效直接歸零甚至還一度變負的...。

不過因為自己的投資準則就是買績優公司撿便宜當股東, 只要基本面沒有根本性變壞就一直持有(當然也有各種例外的時候, 就是當個凹單仔XD), 原本想說銀行&消費類股可能要凹單個兩三年, 沒想到今年底就解套了。 雖然解套很開心, 不過也重新思考自己的投資策略, 今年跟往年相比, 有太多的看對但抱不住, 只能繼續改進檢討(今年要檢討的地方跟過去比真的太多了...), 希望能早日達到財富自由的目標!


再來會針對幾個交易事件紀錄說明&交易策略分析檢討:


2023年初:  2個月績效就+48%

去年整年科技股持續破底, 去年底的時候看科技股真的有夠便宜, 就用自己的投資網站過濾出長期營收&獲利正成長的科技公司or成長股, 然後把一些價值股賣掉轉投資這些低檔的成長or科技股:

  • ADSK 買:191.6 賣:192.22 (已實現:0.32%) 現市價:243.48(成本市價差:27%)
  • AMD  買:75.95 賣:96.79 (已實現:27.4%) 現市價:147.41(成本市價差:94%)
  • AMZN 買:84.66 賣:125 (已實現:47.6%) 現市價:151.94 (成本市價差:79.5%)
  • ANSS 買:241.97 賣:293.125 (已實現:21.14%) 現市價:362.88 (成本市價差:50%) 
  • ASML 買:569.13 賣:669.91 (已實現:17.7%) 現市價:756.92 (成本市價差:33%)
  • CRM  買:149.6 賣:171.26 (已實現:14.48%) 現市價:263.14 (成本市價差:75.9%)
  • GOOG 買:91.2 賣:124.02 (已實現:35.97%) 現市價:140.93 (成本市價差:54.5%)
  • NFLX 買:248.65 賣:345 (已實現:38.7%) 現市價:486.88 (成本市價差:95.8%) Cover Call行權
  • NOW  買:441.02 賣:406.43 (已實現:-7.84%) 現市價:706.49 (成本市價差:60.2%)
  • QCOM 買:119.75 賣:124 (已實現:3.55%) 現市價:144.63 (成本市價差:20.8%) Cover Call行權
  • WDAY 買:171.27 賣:174.81 (已實現:2.07%) 現市價:276.06 (成本市價差:61.2%)
  • ZTS  買:149 賣:161.54 (已實現:8.42%) 現市價:197.37 (成本市價差:32.5%)

P.S. 上述有不少標的是分批買進&賣出的, 為了方便買進只寫平均成本, 賣出只寫最後一次賣出價。 上述除少部分大多數都是3~4月賣出。


看到上面的已實現跟成本市價差, 真的是買得準賣得蠢(另外有一部分是Cover Call被行權, 這塊檢討留到後面再說...), 會這麼早賣的最主要原因, 就是隨後3月發生的銀行擠兌危機..., 導致我的IB槓桿率一度最高到2倍左右, 雖然我的IB帳號可以開到4倍多槓桿, 可是我不想承受這麼大的風險, 於是就決定早早賣出降低槓桿率...。

我自己偏好的槓桿率是0~50%最高不要超過100%(隨大盤DrawDown調整), 如果是短時間大量行權到200%是極限, 超過200%我就會立刻賣出部分持股, 畢竟我的目標是長期持有當股東, 選擇權交易為了活用資金, 短時間的槓桿以我個人來說是可以接受的(不過遇到黑天鵝到底能不能承受得住, 還是得看這隻黑天鵝多大隻就是...)。


銀行擠兌危機事件:

這次的銀行擠兌危機發生前, 我有Sell Put不少銀行股, 雖然我有分散交易&分散行權時間來降低行權風險, 不過想法還是太天真了, 當時為了多賺點權利金, 分散好幾檔都是銀行股, 然後同一個銀行股又交易好幾個不同時間的合約(隔週~一個月左右行權), 然後這次的銀行擠兌危機是整個銀行產業股價都被拖累, 導致我幾乎所有銀行股合約都被行權, 然後被行權的量又是我想持有的量的1~4倍, 變成我的資產分布光是銀行股就瞬間超過50%...。

於是就面臨了三選一問題, 是要認賠銀行股, 還是要把手邊的科技&成長股獲利了結, 或是繼續維持高槓桿, 當時的我選了賣出科技&成長股, 想說這類股已經漲了不小, 短時間上檔獲利有限, 然後手邊被行權拿到的銀行股大多數都是超大間的銀行(BAC,BK,C,WFC), 美國政府不太可能放任擠兌危機持續擴大, 沒想到科技股後面會漲的這麼兇猛, 沒賺到最主要的波段...QQ 

幸虧銀行股後來大多數也回來了, 在不想維持超過200%高槓桿率的情況, 不管選哪邊其實都不算錯, 真的錯的還是我過度交易的選擇權合約..., 後來我也更謹慎控管選擇權交易, 產業更分散而且每個標的就算行權也都不超過5%資產。


持股變壁紙成就解鎖:

再來該說說最心痛的部分了, 這次銀行擠兌危機大銀行只要肯等待基本上不會有什麼大問題, 但是小銀行就不好說了, 偏偏銀行擠兌危機發生前, 我手邊也是有小銀行的Sell Put合約(SBNY, CMA, ZION), 恩...就是倒閉了那間SBNY標誌銀行, 而且我還有兩份合約, 所以被行權時SBNY已被監管, 資產的10%直接歸零變壁紙...。

SBNY是銀行擠兌危機之前交易的合約, 這個要怪說自己運氣太雖小還說得過去, 不過這次銀行危機之後, FRC第一信託銀行也是當時存款外流嚴重的銀行, 當時看到新聞寫許多大銀行提供資金應對FRC存款外流問題, 想說這麼多大銀行當靠山應該是穩的, 就投入了總資產的5%買進, 沒想到之後財報公布存款外流太嚴重, 財報公布沒兩天就被擠兌到監管了, 人生第二檔壁紙沒想到實現得這麼快...。

SBNY&FRC讓我的資產瞬間蒸發15%, 加上手邊被行權的銀行股持續下跌, 讓我今年的績效瞬間歸零甚至變負的, 不過幸好預期降息來的比想像得快, 雖然變壁紙的部分回不來, 至少大多數銀行股都漲回擠兌危機前, 我的資產分布中的銀行股也從超過50%降到20%以下, 回到了我覺得舒適的產業配置比例, 以下是這次銀行股相關的交易:

  • BAC  買:30.89 賣:31 (已實現:0.36%) 現市價:33.67 (成本市價差:9%) Sell Put & Cover Call行權
  • C    買:44.73 賣:46 (已實現:2.84%) 現市價:51.44 (成本市價差:15%) Sell Put & Cover Call行權
  • CMA  買:62.5 賣:(已實現:%) 現市價:55.81 (成本市價差:-10.7%) Sell Put
  • FRC  買:13.82 賣: (已實現:-100%) 現市價:0 (成本市價差: -100%)
  • SBNY 買:74.27 賣: (已實現:-100%) 現市價:0 (成本市價差: -100%) Sell Put & Cover Call行權
  • WFC  買:39.87 賣:42 (已實現:5.34%) 現市價:49.22 (成本市價差: ) Sell Put & Cover Call行權
  • ZION 買:42.5 賣:42.5 (已實現:0%) 現市價:43.87 (成本市價差: ) Sell Put & Cover Call(預計)行權

目前FRC(代號已改為FRCB)&SBNY已移到OTC場外交易, 基本上賣了也是浪費手續費, 留倉做個紀念隨時提醒自己這次的事件了XD




另外從上面的交易可以看到大多數都是Sell Put & Cover Call被行權, 這邊留到後面在檢討...。


目前虧損不小的持股:

  • AAP  買:91.42 賣: (已實現:%) 現市價:61.03 (成本市價差:-33.2%) Sell Put行權
  • ALB  買:173.75 賣: (已實現:%) 現市價:144.48 (成本市價差:-16.8%) Sell Put行權
  • ILPT 買:17.25 賣: (已實現:%) 現市價:4.7 (成本市價差:-72.8%) Sell Put行權
  • MPW  買:6.24 賣: (已實現:%) 現市價:4.91 (成本市價差:-21.3%)
  • SID  買:4.54 賣: (已實現:%) 現市價:3.93 (成本市價差:-13.4%)
  • ZIM  買:40.74 賣: (已實現:%) 現市價:9.87 (成本市價差:-75.8%)  Sell Put行權

首先ILPT是去年交易繼續持有留下(細節在去年的投資績效報告), 因為是REIT所以打算繼續凹單等降息, 看能不能有機會恢復配息; SID也是前年鐵礦石&鋼鐵價格大漲時買進的, 但沒想到鐵相關原物料會跌這麼低, 當時賭烏俄戰爭會結束+美國大基建價格會回漲結果等超久, 一樣繼續凹單持續等待; 至於ZIM就是繼續賭運價不會跌爛, 結果還是賭輸了XD 不過都跌成這樣佔資產比例也小了, 就打算繼續留著等下一次運價循環。

至於今年交易的部分, 首先是AAP, 當時是看公司股價便宜 + 美國汽車DIY零組件第四大廠商, 想說營收有持續成長應該沒問題, 就決定交易Sell Put賺權利金&看有沒有機會撿便宜, 沒想到公司的Q1財報獲利大減, 股價直接海洩下去...。

因為AAP本身營收還是有持續成長的, 只要業務重組得當提高毛利率, 想說股價還是會有重新回去的機會(當然越搞越糟也是有可能就是...), 後來有在低檔加碼了些, 會繼續觀望公司的業績狀況決定要不要繼續持有。

會投資ALB其實就是賭鋰電池的需求跟價格, 不過沒想到鋰價還繼續往下跌, 就看往後幾年電動車增加的需求是否能讓鋰價回升, 因為ALB是百年以上的老公司, 所以基本上除非發生什麼嚴重的大事件, 不然我應該還是會繼續持有。

MPW則是醫療的REIT, 因為升息的關係+部分租賃的客戶發生財務問題收不到利息, 目前就看能不能解決這些問題&降息後恢復以前的高配息...。


選擇權交易檢討:

從去年做了選擇權估值模型後, 就一直在調整自己的選擇權交易策略, 基本上大方向策略就是先用自己做的投資網站找出大約100檔左右想要投資的公司, 然後每天跑cron job去尋找這100間公司有沒有凱利公式勝率高的合約, 在用Sell Put合約賺權利金&撿便宜以及Cover Call合約賺權利金。 

目前還是想繼續維持這樣的交易策略, 不過這次的銀行擠兌危機讓我更體會自己太低估行權風險了, 目前有在調整自己能接受最大的put行權金額, 之前是設定全部行權最多增加到槓桿率100~200%, 現在調整到50~100%以下, 並且也拉高了凱利公式門檻, 調整之前每個月差不多能賺75%~100%現在的本職收入, 現在直接降到30%以下了, 雖然權利金賺的少了, 但相對的更不用擔心黑天鵝帶來的風險。


至於Cover Call的部分, 從上面的交易紀錄可以看出, 為了賺權利金, 我放棄了超多未來的潛在報酬, 可是我自認自己超不會賣股票, 用Cover Call可以延遲我賣股的時間&找更好的價格, 像是下面幾次Cover Call讓我獲利頗豐&避免虧損:

  • KSS 買:24.92 賣:29 (已實現:16.4%) 現市價:28.68 (成本市價差: 15.1%) Sell Put & Cover Call行權
  • MPW 買:9 賣:10 (已實現:11.1%) 現市價:4.91 (成本市價差:-45.4%) Sell Put & Cover Call行權

MPW後來跌到了4.9塊, 等於我閃過了-45%的虧損; 而KSS在今年7月的29.1塊後就急速下跌, 最低到17.8塊(-28% drawdown), 讓我後來又有機會從低點加碼, 現在的未實現報酬也十分不錯, MPW我後來也在6.24塊重新進場, 讓我有機會用更低的價格在投資這幾間公司。

  • KSS 買:21 賣: (已實現:%) 現市價:28.68 (成本市價差:36.6%) Sell Put行權
  • MPW 買:6.24 賣: (已實現:%) 現市價:4.91 (成本市價差:-21.3%)

不過即便如此, 從比例上來說我因為Cover Call錯失的獲利也是大得多太多了(前面提到的NFLX被行權也是), 像是我抱了快2年的INTC, 從50塊進場到25塊加碼, 最後因為INTC這波漲得超快一下就被行權了, 兩年下來只獲利了7%, 不勝唏噓阿...。
  • INTC 買:36.9 賣:39.5 (已實現:7.04%) 現市價:50.25 (成本市價差: 36.17%) Cover Call行權

目前想改善的地方是, 如果要做Cover Call要更嚴格限制在自己期望的價格, 而且不要一次Cover一整批部位, 這樣至少被行權時, 還有機會思考要賣出, 還是繼續持有, 心理上也比較不會有錯失的不平衡...。


今年應該是個人檢討最多&資產波動最大(畢竟15%資產差不多時間變壁紙...)的一年, 希望這些經驗都能變成未來成長的養分, 早日達到財富自由的一天!  另外最後提一下今年回饋社會的部分, 跟往年一樣每月10%的薪資收入認養家扶國內外兒童, 今年還有額外一筆10W的土耳其大地震捐款, 也是為了感謝當年921土耳其的幫忙(雖然烏俄戰爭土耳其的立場不是很能認同, 不過一碼歸一碼就是...)。 也希望明年的自己有更多能力&行動力回饋社會~。



2023年12月11日 星期一

MahoMangaDownloaderVer19.6~19.9更新

2024/04/15 updated

這次更新主要是發現wnacg搜尋後的頁面有改版, 導致網址複製tag搜尋的功能壞了, 就順手修一修這個功能, 一般關鍵字搜尋則是不會有問題, 因為不同搜尋方式導致網頁碼的attribute不一樣真的蠻神奇的XD。


至於慣例的推坑時間, 最近看完最弱魔物使開始了撿垃圾之旅。前面設定有點黑暗不過後面超溫馨&治癒, 女主角跟史萊姆都超可愛&惹人憐愛, 還有一堆老好人配角XD 推薦想被治癒一下的人可以追這部~


巴哈動畫瘋:

https://ani.gamer.com.tw/animeVideo.php?sn=36954


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), 不過最近績效不錯已經有小贏標普 (離那斯達克的車尾燈還有夠遠就是~~), 希望下半年的投資績效可以更好~~。