【祿】邁向財務「自由」之路:建立專屬且免費的自動化軍隊1(上篇)

副題:Google Sheets自動六合彩彩池到價電郵提示 Step-by-Step 更可引發無限應用可能

多數企業家成功的一大基本條件,在於將較基本的工作交與別人而自己保持清晰的腦袋。這樣,企業家便能節省時間,集中精力發揮自己的所長。將基本的工作交與別人,更能發揮乘數效應,同一時間擁有多個自己同時工作,發揮最大的效能。

我們作為個體戶或是小投資者,未必能聘請員工作為「秘書」或是「軍隊」為自己效命。然而現今科技進步,我們何不跟大企業學習,借助互聯網和雲端運算,在網路世界將日常執行的繁瑣事情程序化,建立虛擬秘書軍隊?

筆者這次會從最簡單的例子開始,解構如何利用 Google Sheets 製作六合彩彩池到價電郵提示。

讀者應很容易就能舉一反三,製作股票到價提示、每日投資組合狀況匯報、每周賬單繳付提示等系統。從此不用再記得去 refresh 網站、生怕錯過了機會;而且有甚麼要知道、何時要知道,都由自己話事,活像是擁有專屬自己的秘書甚至是自動化軍隊,更甚者這是免費的


要建立六合彩彩池到價電郵提示,大致有三大步驟:
1. 建立一張能閱讀六合彩彩池及下期搞珠日期的 Google Sheet
2. 建立一段能將彩池及日期以電郵發出的程式碼
3. 建立指示讓程式碼在搞珠日後的午夜運行

上篇會先介紹第一步驟,下篇會介紹餘下兩個步驟。如果讀者希望直接取得原檔,可以在本頁留言處留下電郵地址;原檔會在下篇發表後不日發出。


1. 建立一張能閱讀六合彩彩池及下期搞珠日期的 Google Sheet

要建立 Google Sheet,首先要擁有 Google 帳戶。登入 drive.google.com 後選新增空白的 Sheet 文件。給他隨便起個名字,就叫 MarkSix 吧。

六合彩彩池及下期搞珠日期的資訊可在馬會網站http://bet.hkjc.com/marksix/index.aspx?lang=ch 找到:



要利用 Google Sheet 閱讀資訊,方法是利用 ImportXML 函數。函數有兩個參數:

=IMPORTXML(url, xpath_query)

url 顧名思義就是資料來源的網址,即是 "http://bet.hkjc.com/marksix/index.aspx?lang=ch"(緊記加上 quotation marks)。
xpath_query 是需要閱讀的資訊在頁面的位置,例如我們要閱讀六合彩彩池的資訊,就得告訴 Google Sheet 這個彩池到底放在網頁的哪裡。

找出這位置的編碼通常是整個Project 最具挑戰性的部分。一般第一個嘗試的方法是 Inspect Element。方法是在瀏覽器上 Highlight 彩池的金額,按滑鼠右鍵,選取「Inspect」或「Inspect Element」(筆者用的是 Google Chrome,其他瀏覽器的操作應是大同小異的):



瀏覽器會彈出網頁的原始碼,並 Highlight彩池金額的相關部分。此時在 Highlighted原始碼按滑鼠右鍵,選取「Copy XPath



此時如果我們貼上 Copy 了的東西的話,大概會得到以下的結果:

//*[@id="oddsTable"]/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]

這就是六合彩彩池的資訊在上述馬會網頁的位置。

現在讓我們測試一下能否使用這位置擱取彩池資訊。在 Google Sheet Cell A1 輸入:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id="oddsTable"]/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]")

很抱歉嘗試是失敗的。仔細看看 Formula Bar,會發現 xpath_query 參數中有一個部分顏色轉黑了。原來 Google Sheet 誤以為 XPath 裡的 " Google Sheet Function 定義字串結尾用的 "



解決方法是多打一個 " 以示脫逸:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id=""oddsTable""]/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr[6]/td[2]")

這次函數順利執行,但執行結果是 #N/A,即是函數未能取到任何資訊。通常的原因是 XPath Restrictive,這時候可以嘗試取走一些可有可無的項。例如在這個例子中,每一個 table 中只可能有一個 tbody,那就是說 tbody 這些項是可有可無的。擁有一些基本 HTML 的認識會對這除錯步驟很有幫助。

Xpath_query 中取走所有 tbody 的項:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id=""oddsTable""]/table/tr[2]/td/table/tr/td/table/tr[6]/td[2]")

這回我們終於成功取到彩池金額:



其實如果讀者對 HTML 有少許認識,不難在網頁原始碼發現彩池金額的 td cell 已經附送了 id

<td class="snowball1" style="line-height:15px;">$15,000,000</td>

利用這個資訊以及少許 XML 的知識,可以嘗試更乾淨俐落的取到彩池金額:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//td[@class=""snowball1""]")

Google Sheet 會回傳兩個金額,一個是多寶 / 金多寶,另一個是我們要的彩池。



仔細看一下網頁原始碼尋找原因,讀者會發現多寶 / 金多寶的金額也是用同一個格式裝住的,而 ImportXML 函數會回傳在網頁中所有符合條件的項目。這時候我們只要告訴函數我們想取的是第二個 Element 即可:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "(//td[@class=""snowball1""])[2]")



同一方法,我們可以在 Cell A2 用以下任一方法取得下期的搞珠期數:

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "//*[@id=""oddsTable""]/table/tr[2]/td/table/tr/td[1]/table/tr[2]/td[2]")

=IMPORTXML("http://bet.hkjc.com/marksix/index.aspx?lang=ch", "(//td[@class=""content""])[5]")


資料擱取大致完成。然而為了方便下一個步驟的資料處理,讓我們先將彩池金額從文字(字串 string)換成數字。在 Cell B1 輸入:

=VALUE(A1)


以後每次打開這張 Google Sheet,試算表就會自動從馬會網頁取得下期六合彩的彩池金額以及下期搞珠日期的資訊。

至於如何指令 Google Sheet 將此資訊定期電郵至讀者的信箱,敬請期待下篇

【全】TFCC 受傷雜感 II

筆者手腕每日熱敷30分鐘

上回講到筆者接受磁力共振檢查,檢查結果的確一如筆者所料,是左手手腕背部 TFCC 軟骨撕裂。幸好該次磁力共振檢查並沒有在手腕其他部位找到受傷的痕跡,算是不幸中之大幸吧!

但問題又來了,既然只是一般的 TFCC 撕裂,為什麼過往兩個多月的休息並沒有讓筆者復原?經過一輪互聯網的資料蒐集、職業治療師 及 新的物理治療師指導下,筆者有以下的發現及感受:

  1. TFCC 撕裂的治療在起初 10 天的處理是很關鍵的。期間不但要讓手腕完全休息,早晚戴護腕讓手腕關節不會摺起來,也不可提起一磅以上的重物。日常很多微小的動作都會讓這個關節摺起,換句話說沒有戴護腕的話很容易會加深受傷。筆者在最初兩三個星期並沒有正當接受治療,骨科醫生亦只是簡單說一句「讓手腕休息一下」,期間雖然沒有提起重物,但用雙手打字、穿衣服等,已經足以令傷患未能復原過來。奇怪的是,骨科醫生從來沒有為我安排護腕,筆者現在戴的護腕是公營醫療體系提供給我的。當中有沒有陰謀的存在?
  2. 手腕不再疼痛並不是治癒的象徵,反而這會讓你以為病情已經好轉,鬆懈下來,在沒有完全康復的情況下使用手腕,使之再次受傷。測定治癒程度的科學方法,是利用一個非電子的浴室磅,先用沒有受傷的手腕慢慢將手掌壓下去(這是健康的手腕能給予的最大力量),再用受傷的手腕慢慢壓下去,見痛即停。如果受傷的手腕能回復沒有受傷受的狀態,即代表完全康復。詳情參考:http://wristwidget.com
  3. 筆者的第一個物理治療師,每次都為我做冷敷,也指示筆者要每日冷敷患處。當時筆者曾經懷疑過,康復的話不是應該用熱敷加速血氣運行麼?查詢過當時的物理治療師,她說扭傷是炎症,用冷敷是正確。然而網上資訊以及更換了新的物理治療師後,均指出受傷初期(即首 2-10 天)真正出現炎症反應時冷敷才有效;開始進入康復階必須接受熱敷 — 尤其 TFCC 在手腕深處,血管很少,必須用熱敷和針灸刺激血氣運行,將營養運送到患處以加速復原。至於筆者當初也有一兩天自行嘗試熱敷,但因腕部覺得疼痛而放棄;新的物理治療師指出,開始熱敷後頭兩三天疼痛是正常。這說明筆者當初正確,冰敷實在是開倒車;在日常生活和投資市場都一樣,不要盲信專家,求人不如求己。
  4. 關於筆者是否需要戒口,不同人也給予筆者不同的答案。筆者老闆說燒鵝和海鮮不能吃、同事說雞鴨鵝不可吃、網上資訊說要避免高蛋白質食物、物理治療師說糯米及其製品堅決不可吃。他們說的都有道理,但都權衡輕重和衡量風險。最保守就是什麼都不吃,結果未醫好個病已經餓死。正如投資什麼也有風險,最保守就是手持現金,殊不知手持現金也要冒很大通脹風險。
  5. 上個月筆者 Facebook 貼文廣招治療方法後,許多朋友建議筆者做針灸。起初筆者不以為然,但了解治此症需要靠通血管之後,筆者很主動的尋求針灸治療,結果選了一位集合物理治療、針灸和推拿的治療師。這說明一件很好的投資物放到你面前,你沒有相關的知識去駕馭它,它畢竟還是一舊廢鐵。情形就像 2009 年筆者睇過樓,但沒有買樓一樣。如果當時知道可以 95按甚至十成按、如果當時知道 QE 為何物,筆者現在已經財務自由了⋯⋯ 

【全】我的志願


(如果我能重新寫作當年的小學雞文章,我大概會這樣寫。)

我的志願是成為一位隱形富豪。

成為隱形富豪的先決條件是成為富豪。而富豪的定義是有錢。不,正確點說,是有被動現金流。

有錢不一定等於有現金流。若果一天我中了六合彩多寶彩池,我就會很有錢。然而有一大筆錢但不懂得去運用去讓錢生錢,終有一日這筆錢會被用盡,或者會被通脹蠶食殆盡。這樣,我一刻很有錢,但不能確保永恆的有錢,終日擔心錢最終不夠用,所以並不是真正的富有。

現金流一定要是被動的。有些跨國企業高層薪金很高,有些中小企業老闆或者頂級銷售人員主動收入也很高,但這些是捱更抵夜仆心仆命換取回來,而且一個不覺意得罪公司權貴隨時烏紗難保生意被整蠱,或是別人犯錯自己卻被「莫須有」,收入實是燃燒身體和心靈健康換取的。這種富有是短暫的,是不能持久的。

經濟科說生產有四大要素:企業家、工人、土地、資本,分別賺取的是利潤、薪酬、租金和利息。前兩者是用勞動力換取,是主動現金流,手停口停;後兩者是用投資於風險項目來換取,是被動現金流,只要風險控制得宜,理論上可以延綿千秋萬代。

所以要達成我的志願,第一步是要學習風險管理;第二步是要累積土地和資本。

成為隱形富豪的第二條件是隱形。

很多上市公司重要人物也有被動現金流,很多公眾人物名人明星、或是退下火線的運動員做廣告做代言也有很多被動現金流,但成為這些都不是我的志願。

上述這些人,有些固然希望拋頭露面,有些很明白拋頭露面只是為了搵食需要,搵夠之後希望隱姓埋名卻被狗仔隊跟蹤偷拍,終身缺乏私人空間和安全感。同樣的是以心靈富足和安寧換取金錢,金錢上富有但心靈並不富有。

保持隱形和低調能讓我做自己真正喜歡做的事,而不用考慮介意別人的目光,不用滿足別人的求知慾。只要不傷害別人,所有自己喜歡的事我都可以做而不用向別人解釋。這就是「財務自由」真正的「自由」。

所以要達成我的志願,在學習風險管理和累積土地資本的時候,我得保持低調的作風。

我希望能在 50 歲前達成我的心願,過著低調奢華的生活。

【祿】止凡新書讀後感


筆者是止凡 Blog 的長期讀者。止凡經常都會邀請讀者留個言好作互相交流;筆者做了 CD-Rom 這麼久,最近也有感「有交流才有進步」,開始在其 Blog 發表留言。

然而筆者真正課金購買其著作的只是第一次。見到其一眾 Blogger 投資高手兼好友寫序寫介紹文,多得可以在書末開一個 Section,就知道止凡的 Blogger 人際網絡,跟他的財務知識、實盤操作和輕鬆的文筆,的確是下了一番苦心經營回來的。

花了兩天共五個小時完成了止凡的作品《跟著價值走的12堂課》,心裏泛起了四個大字:「知易行難」

「知易行難」就是巴菲特及市場先生講的「Simple, but not easy.」

筆者慚愧自己財務數學出身,工作上也不時跟會計師打交道,甚至試過「遙控」分公司的會計師輸入哪條 Journal Entry;看到止凡介紹的這些財務報表的項目和財務數字理應是「食生菜咁食」。數學及財務理解能力應是「贏在起跑線」,實踐起上來卻為何是有心無力?很明顯筆者絕非不能,只是不為⋯⋯ 

慚愧的是自己工作十年,沒有好好運用自己的 Unfair Advantage,卻做了一個普通的打工仔。筆者接觸到網上的第一批理財資訊,就是來自市場先生及止凡的 Blog;然而當時卻未敢踏出投資第一步。還記得低於 $10 的永安,是我跟市場先生 Number 買入的(至今仍然全數持有),但由於不甚去了解背後的理念,故入貨量並不多。

現在看回來,如果當年能理解施洛斯投資法及市場先生的操作,應用在股樓工商舖,現在財務自由應已達成,何必還在職場浮浮沉沉⋯⋯

5年前筆者如夢初醒,立志要財務自由,不斷在網上發掘理財資訊,又參加坊間不同的理財講座。得到 Starman 批了一句「理財的前提必先有財可理」,現在筆者理財儲蓄方面算是有些成就,下一個目標就是將資本轉化為動能,一邊讓它茁壯成長,另一邊繼續學習不同的投資工具。

錯過了複利率的力量,要追回逝去的光陰,代價是十分沉重的。以年回報 5% 計算,預想 55歲退休的話,25歲的年輕人每月儲蓄 $1萬只儲頭 10年,其效果是等同於 35歲才開始儲蓄但一直儲至退休。這就是筆者上月文章指「27歲著手準備退休也驚覺太遲」的原因(見另文)。故此,筆者寄予年輕人要及早籌劃,認識個人財務管理,也希望止凡的計劃能幫助更多年輕人釐清理財觀念。

試過坊間各大小良莠不齊的課程後,兜兜轉轉終於回到最初的起點,機緣巧合之下上了巴黎以及及後市場先生的課程,並決心加入價值派。還記得第一次參與巴黎老師的課程,臨在公司出發前見到課程 WhatsApp 群組發訊告急需要手提電腦,而剛巧筆者公司在課堂地點附近而身旁又有手提電腦… 沒錯,當日那位帶備手提電腦的學生正是筆者,機緣巧合之下這段小插曲就被止凡收錄在新書之中😃 (見《跟》第18頁)

人家常說,儲了錢20年也不買股票,40歲才第一次買股票的人最危險。但願筆者一直看的相信的想執行的也是價值派投資法,以「不用每次也做對,但絕對不要錯」的心態做投資,希望不會出事吧!

【福】換過角度也可以很快樂


筆者過去週末在海口觀瀾湖高爾夫球度假村。為了能讓左手手腕盡快復原,筆者絕不敢負傷作賽;所以這次換一個角色,就是當上太太的教練。

坐在球車上,為太太的揮桿拍下慢鏡,為太太記錄分數及每一桿的統計數字,分析下一球如何進步。眼見太太的球技進步了,開球遠了直了,感覺就像自己的腦袋借助了太太的身軀,「二人成為一體」完成球賽。

高爾夫從來都是腦袋的運動。從仔細控制身體每一塊肌肉的移動,到判斷距離、地形、地勢、風向、果嶺速度並選擇合適的球桿和方向,少一點智慧和經驗也不行。所以這個運動能教人如此着迷。

而這次筆者初次體驗「沒有手腕的高爾夫」,感覺像是下盲棋:沒有棋盤的實現形態,卻已在大腦內、球車內運籌,球場只是千里之外的決勝場地。

比起我和太太分別作賽,這種「合作賽」打起來別有一番快樂。看來筆者還要多謝受傷的手腕呢。

【全】2017年7月份小結:財多身子弱

身體健康方面,一個突如其來的手腕狀況轉差,讓一切運動目標都停下來了。年初定下的減重和高爾夫差點目標順延至明年;本年餘下時間的目標只有一個:左腕全速康復,也要注意承受雙倍工作量的右腕的休息


心靈富足方面,今個月學會了跟現實妥協。人大了,真的要學懂「等」和「忍」;也不能再像從前那樣 Play Hard。五月玩冰壺時還覺得(借用某保險公司宣傳口號一句)「敢  至係人生」,應該盡情玩樂,然而做風險管理相關工作的筆者竟然無做好事前的熱身,無好好了解這個運動的創傷性風險,結果上了昂貴的一課。

但重要的是,「If you lose, don't lose the lesson。」

這個月筆者也開始紀錄心情,用的是一個叫「Stigma」的 App。這個 App 能將不同的心情量化,自動製作心情上落圖表。且看筆者 7月份的按日及按週心情變化:



筆者打算收集幾個月 Baseline 數據後,再製作可量化的目標。


財務自由方面,本月是豐碩的一個月。所指的不只是大升市下的浮盈進帳,還有幾方面的目標都開發成功 / 取得可觀進展:
  • 股票倉繼續跑輸大市,主要是現金水平過高;但進帳已差不多等於出雙糧。上週末筆者對後市不太樂觀(見另文),所以一小部份股票先行沽售獲利;但昨天的彈升似有攻破城門之象,讓筆者對餘下持倉持觀望態度。(7月份:股票倉 +4.5%、盈富基金 +6.3%、IVV.US +2.1%)
  • 儲蓄目標繼續有序達成,儘管本月醫療開支增加了;但因有保險保障,加上以往幾個月有額外儲蓄足以補貼。可見如能善用理財工具,突發開支也不難應付。
  • 一次性收益項目方面,本月開始為筆者旗下其中一個物業轉按(見另文),另外亦開展了與稅務局爭取過往稅務年度之優化免稅額安排。兩項目如順利完成,將為筆者帶內額外約 $45,000 收入。 
  • 研發項目方面:
    • 本月筆者受到投資群組討論的啟發,自創了「恆指沸騰指數」,用以度量現價恆指是否過熱,崩盤的風險有多大。就如水溫一樣,0 點是冰封,100 點是沸騰。截至 7月末,恆指沸騰指數報 63.7 點。
    • 另外筆者在開發「自動選股系統」方面也有突破性進展。現在只需輸入股票編號和現價,系統就能從網路取得基本的財務報表資訊,根據筆者的選股策略即時打出一個質素分數。當然這個程式還有不少地方需要 debug,但已為每日初選股票的工作量減輕了不少。
上述多個項目,筆者會待手腕情況好轉後進一步分享。

熱門文章