2018年8月28日 星期二

科普貴教你天天自助 calc 便宜股撈明牌

這篇其實是 LibreOffice Calc 的 「連結外部 csv 檔」 教學, 只是拿台股來作例子比較有實用感、 可以提高大家的學習動機 :-) 不需要唸資訊科系、 不需要寫程式, 只需要一部 linux 電腦, 並且略熟試算表函數, 例如 vlookup 及 iferror 等等即可操作。

一、 一日明牌

請先下載 stock.ods, 但是 先不要打開它!。 這個試算表包含四張工作表:

  1. price: 某日所有個股股價
  2. div: 所有個股歷年現金股利
  3. divty: 所有個股今年現金股利
  4. main: 主表。

div 原本僅含 2017 年或更早的資料; 2018 年的資料是從 divty 工作表裡面查表得出的。 而 main 則參考其他三個表的資訊, 統整出可以幫你撈明牌的排序清單。 查表的 vlookup 指令我都幫大家寫好了。 最麻煩的是 price , 這張工作表每天都會改變, 當然需要你自力救濟。 所以我把它設定為 「連結外部 csv 案」 -- 只要你更新外部的 price.csv 檔, main 工作表的數值就會跟著更新, 而你也就可以撈到當天的低價股清單。

Calc 問題你否要更新外部連結 當你初次用 calc 把它打開時, 它會問你是否要更新 (指向外部檔案 price.csv 的) 連結。 先不要更新 -- 選 「否」。 先欣賞一下資料有點過時, 但能動的試算表。 尤其是 main 的 B、 C、 D 三欄的 vlookup 算試, 請把它抄下來。

連結斷開了, price 工作表毀了 如果你不小心讓它更新了, price 工作表會爛掉, 因為在你的電腦裡還沒有 price.csv 這個檔案; 就算有, 位置也不正確。 這時只好把這個工作表刪掉。

二、 明天過後

不論有沒有更新, 反正等你讀到這篇文章時, 這張 price 工作表八成已經過期了、 不能用了。 所以還是手動把這張工作表刪了吧。 沒關係, 每天 13:30 收盤之後十幾分鐘之內, 證交所會公佈所有股票收盤價; 我會在 13:50 時把證交所的資料簡化成適用於 stock.ods 的格式、 放在我的網站上。 請在 13:52 以後下這個指令: wget https://v.im.cyut.edu.tw/~ckhung/saas/stock/price.csv (或用 curl -O https:/... 也可以)

工作表 => 從檔案插入工作表 選好檔案之後, 指定 csv 分隔符號並預覽 最重要的是勾選 「連結」

然後就像平常要從 csv 檔匯入資料一樣, 點選 「工作表」 => 「從檔案插入工作表」、 選取剛才下載回來的 csv 檔、 指定 csv 分隔符號並預覽。 按 「確定」 之前先暫停一下! 在決定工作表位置 (在目前的工作表之前或之後) 的那個對話框裡, 有一個最重要的選項 「連結」 要勾選。 然後才按下確認, 於是出現了一個新的工作表。 剛才打的勾, 現在暫時還看不出什麼效果。

再來, 把壞掉的 main 工作表裡的三欄的 vlookup 運算式重新修好。 存檔離開。 再重新開啟 stock.ods。 這時 calc 會問你要不要重新載入最新版的 price.csv -- 因為它是一個 「連結」, calc 不確定外部的 price.csv 檔有沒有改變內容, 所以每次都會問你是否要重新載入最新版。 明天收盤後, 下載回新版的 price.csv (或是手動亂改幾個數字實驗看看)。 再次打開 stock.ods 時, 回答同意更新, 注意 main 工作表的數字會瞬間改變。

我把最有成就感的最後一步 -- 在 main 工作表裡根據 「殖利率」 欄排序 -- 留給大家。 從今天起, 自己的明牌自己撈 :-)

三、 明年以後

到了明年, 資料會過時, 該怎麼辦?

divty 工作表的資料來自 MoneyDJ, 點 「即將」 改選各產業類別, 這樣可以一頁下載很多個股的今年配息資訊,

至於 div 工作表, 則只好搜尋 「歷年配息」, 看哪個網站有完整的資訊, 每支個股下載一次。 這個表格可以每年更新一次就好。 或是不更新, 直接從每年新的 divty 抄一欄過來即可。

不論是哪個表格, 後續還要用 extract.php 或 lynx 加 regexp 等等文字工具轉成 csv 檔。 詳見 程式設計老手的股市初學淺見。 總之, 你有一年的時間可以自學這些命令列工具。

四、 海撈只是第一步

用試算表撈便宜好股只是第一步。 撈出來的有可能是以前配很好、 這兩年退步很多 (所以股價才變便宜) 的股票。 請一定要檢查今年前幾季 EPS 並且爬文確認安全。 詳見上面 「股市初學淺見」 連結提醒。

因為試算表的寫法是 「近五年平均」, 所以也有可能漏掉某些今年尚未宣佈股利政策的好股。

除了用現金股利海撈之外, 也可以考慮加入來自每季財報的其他更多數值; 但這就不是本文處理的範圍了。

#include <標準免責聲明> 投資有賺有賠@#$% ... 風險自負!

五、 自由軟體的經濟效益

二十多年以來, 貴哥一直疾呼: 我們的社會需要更重視軟體工具的 使用價值 (use value) 而不能只關注它的販售價值 (sale value)。 當初推動自由軟體的業務交給經濟部而非教育部, 這就是決策上的一大敗筆。 很遺憾的是: 直到 2018 年的今天, 科技部對於執行計畫的老師們的要求, 依舊停留在 「以創造產值為主」 的思維。 事實是: 不論是自由軟體或是專屬軟體, 它的使用價值都應被更加重視。

專屬軟體背後有強大的商業力量 (因為對廠商而言, 它有極高的販售價值!) 所以它滲入教育體系、 滲入勞動技能檢定, 它的使用價值被過度誇張, 甚至又被包裝成 (在職場上) 販售 (個人能力的) 價值, 以致被我們的教育體系成功洗腦的某些學生們會認為 「微軟軟體是企業招募人才最基本的工作競爭技能 」。 對於軟體廠商來說, 在一個只看得見販售價值的社會裡, 這是非常好用的行銷策略。 而且這個策略動用全國的教育資源來幫它行銷, 不僅不需要付廣告費, 還可以賺軟體授權、 證照報名等等費用。

自由軟體的販售價值很低 (除了跟硬體綁在一起等等少數情況之外) 背後又欠缺強大的商業力量, 所以一個社會如果只看得見販售價值, 就很容易忽略它的使用價值。 如果能夠從 「重視使用價值」 的角度去看軟體, 就算只看見 「零授權費」 這個特性, 也會知道: 非專業體系的通識教育, 當然應該採用自由軟體, 才能縮減數位落差。 美工專業人士是否必須用 photoshop 及 illustrator、 財會專業人士是否必須用 Microsoft excel? 本文不打算討論這些問題。 但是學校要教一般大多數的學生畫畫、 算錢, 當然應該用 gimp、 inkscape、 calc、 gnumeric 之類的自由軟體。 包含中小學的電腦教育, 及大學的通識教育, 都應該如此。

貴哥是個學術無成而且 無賴不要臉 的邊緣人。 從中小學教育到通識/科普領域, 我一直沒有取得很好的機會與舞臺來推廣自由軟體; 在僅有的一些小小舞臺上, 也沒有發揮得非常理想。 失望之餘, 今年只好轉身認真學買股票。 (多麼勵志的故事啊!) 也透過分享這個 .ods 檔, 表達對小格讀者的感謝。 是你們的點閱與分享, 讓我覺得自己花時間寫這些不賺錢的文章, 終究是生命當中很有意義的事 :-) 祝好眼力、 睿智的大家能夠拿這些 「零販售價值」 的自由軟體、 開放授權文章及 .ods 試算表, 發揮它們的 「使用價值」、 從當中穫得極大的個人經濟利益!

3 則留言:

  1. 作者大大的文章對我幫助很大
    尤其是 "如何有效學習電腦" 這篇, 讓我對 shell 的指令學習效益充滿興趣&信心
    最近發現竟然還可以分析股票 XD 不知道會不會因為這樣從從來不接觸股票到開始去抓資料分析 XD

    回覆刪除
  2. 我覺得貴哥給我最大的啟發就是,讓我知道台灣還是有人在堅持這塊 (free software),還有就是 "組合的力量",每樣 工具/技能 都學一點,等累積數量夠多了,組合的力量就強了。

    回覆刪除
  3. 先前重灌伺服器,忘記設時區,所以每天都延到晚上快十點才更新 price.csv 。 明天起應該就恢復正常了。

    回覆刪除