2007年8月17日 星期五

[交易系統] 我的基金管理系統-自動化!

前幾次我講過基金交易的原則、以及用來追蹤基金表現的機制。接下來,為了不要每天花時間key in這些無聊的淨值資料,整個機制需要被自動化。

所以,我們必須找一個方式,每天自動更新試算表上面的基金淨值。

經過一些研究,我找到Morningstar作為資料來源。Morningstar Taiwan有著台灣地區銷售中絕大部分基金的資料、基金篩選器、淨值每日更新、還有Morningstar Rating - 對基金進行評等的工具。如果你要做基金研究,Morningstar絕對是一個好網站。

不過,對於自動化的目的來說,更重要的是資料可以容易取得。Morningstar的資料都是Free的。每一個個別基金的資料放在個別的網頁上,格式也都相同。比如說,富達歐洲坦博頓拉丁美洲的基金資料頁,除了內容不同,格式都相同。讓程式處理的完美Case。

廢話不多說。我使用Python處理這件事情。Python是一個很容易使用的Scripting Language。有許多的Support Library,Google Spreadsheet也提供Python Library。
程式的幾個重點,細節不談:

1. sgmllib用來parse Morningstar的基金網頁。程式中只抓TD這個tag,然後將關鍵字後面的資料取出來。我們取淨值、52週高點與52週低點。
2. 試算表中的M欄是關鍵索引。Morningstar的基金資料頁URL一定是這樣的格式:
http://tw.morningstar.com/HKG/fund/FundQT.asp?Symbol=F0000000L3
我們把Symbol的部份取出來(F0000000L3),放在M欄成為索引。這也是程式中這個變數的意義:
Setting_Fund_Index_Column = "M"
3. 程式除了更新Google外,會將資料剪貼到Windows剪貼簿中。
4. 其他需要設定的變數有:
Setting_Google_Email = "google user name"
Setting_Google_Password = "google password"
# 試算表名稱
Setting_Spreadsheet_Name = "Fund Tracking"
# 試算表資料所在頁名稱
Setting_Worksheet_Name = "Funds"

程式在此,請需要的人自行取用。

你需要安裝或設定的項目有:
1. Python 2.5
2. Python for Windows Extensions (只為了顯示抓取頁面結果以及clipboard。)
3. Google Data API Client
4. 程式中Setting_開始的變數。也就是
Setting_Google_Email = "google user name"
Setting_Google_Password = "google password"
Setting_Spreadsheet_Name = "Fund Tracking"
Setting_Worksheet_Name = "Funds"
Setting_Fund_Index_Column = "M"

我把這個python程式放在Windows的啟動folder裡面。Linux User應該可以修改一下之後作成cronjob。每天可以自動更新基金資料,真爽!

2007年8月15日 星期三

[工作雜感]才能、成就動機與Who I am

老闆認為我很有才能、很有成就動機、是個achiever,到底是不是好事?
如果你被認為是這樣的人,你最好瞭解一下老闆的期望。你的老闆對於你現在的狀況、他想要你做的工作、所可以提供的資源、還有組織所可以給你的支援,有真正清楚明瞭的認知嗎?還是他只是在一個過於desperate的狀態下,希望用付你薪水的方式,讓你一個人在沒有支援的狀況下力挽狂瀾?
更重要的是,你認為你的老闆知道Who you are嗎?
也許你只是一個想每天上班8小時的人,但是為了這個期望,你必須每天加班到晚上十點?
也許你是個天生的銷售人員,卻非得被一大堆的管理工作壓到死?
雙方對於彼此的期待差距太大,除了造成失望以外,不會有任何好處。如果你被這樣對待,請一定要:

(1) 重新與老闆建立彼此的期待
不要害怕衝突。會丟掉工作?每天痛苦的去上班,又和自己要的不一樣,反而更糟。讓我們看看這樣大家可以撐多久。
只有雙方重新溝通,有新的alignment是雙方都能接受的,對於未來必須要創造新的希望,才有動力可以繼續下去。

(2) 設定雙方可以接受的目標
既然開始談了,之前的目標就有修正的必要。新的工作是什麼?對於目標描述的越精細,達到的機會就越大,所產生的損耗也越少。

(3) 明確溝通達成目標需要的資源

人到一個職位上,老闆僱用你作為員工,彼此必定有期望。雙方是否可以有alignment,會成為是否可以繼續下去的關鍵。
真的無法形成共識,就想下一步吧。
也許這不是你該去的地方。

2007年8月10日 星期五

[玩網路] 用Yahoo Pipes過濾奇摩競標

大概只有我沒有發現,奇摩競標開始出現了rss feeds。這對於本懶人來說真是一大福音。自從敗入K100D以來,總是有缺少一些「實用的」鏡頭的感覺。也就是說,鏡頭永遠少一隻!

奇摩上面在賣鏡頭的,絕大部分都是店家。對於我這種要撿便宜貨老鏡的人來說,大概90%以上都是雜訊。每次要上去找鏡頭,無論怎麼搜尋,下再複雜的條件,都無法過濾雜訊。我實在懶得花這個美國時間看每一個post的內容。

Yahoo Pipes這個服務已經推出一段時間了。在UNIX上,大家想必已經習慣使用pipes把上一個程式的輸出導到下一個程式。Yahoo這個服務則是針對rss, xml data而來。簡單的說,這個服務可以用「水管」,把一個一個處理rss的「組件」組合起來,組合成每個人想看的資訊。

正好本懶人「需要」(喔,想要)敗入長焦Macro鏡一隻,就讓我們來搞一個rss feed處理這件事吧。

我們要找pentax的相關鏡頭。關鍵字有:pentax, m42, smc, PK。先到奇摩去,找到鏡頭的類別,下一個查詢。


奇摩除了找到正在競標的商品以外,還有一個RSS Feeds的連結。把連結複製起來。


到Yahoo Pipes,選Create Pipe。從左邊的工具列上拉Fetch Feed工具,放入RSS連結當作Source。

用Filter過濾出macro...


看看下面的debug pane,會即時顯示結果。
出現很多店家!我們不要:eWh*t,...


看看結果:哇哈哈,兩筆!

存檔之後,經由Pipe處理過的競標資料,加入Firefox即時書籤隨時可看 :)

結論:

  1. 如果各位有看Yahoo Pipesebay的範例,eBay的rss除了rss的資訊外,還有結標時間、出價次數、現在出價等等。奇摩,拜託再open一點吧。不要讓我再用一些撇步處理你的rss...
  2. Google也要推出相關服務Google Mashup了。比起Yahoo來,我還是比較喜歡Google...
  3. 因為Open,才有介接的機會...
  4. 露天,請加油。你還沒有RSS喔。你的前身eBay可是非常Open喔。不要讓我裝什麼露露通喔。

2007年8月8日 星期三

寫部落格文章,賺美金$2500

好。這個人瘋了。Ashwin Khanna說,只要在你的部落格寫下:

Over at Ashwin’s blog, you will find one crazy blog owner!! You can win $2500!! To enter just copy this text and paste it in your blog!! But hurry, this competition will not last long! So get posting!

就有機會抽到$2500美金。
嗯,讓我來翻譯一下。

在遙遠的Ashwin的部落格裡,有一個發瘋的部落格作家!只要複製這些文字貼到你的部落格,你就有可能贏得2500元(美金)!但是要快,比賽馬上就要結束!現在就發文!

USD$2500?台幣75,000?看在錢的份上,Why not?
讓我們希望這可以替Ashwin先生帶來足夠的traffic。阿門。

2007年8月4日 星期六

[交易系統] 我的基金管理系統-Fund Tracking試算表

自然,我不會把我個人的真實資料放上來讓大家有機會打恐嚇電話給我。事實上也沒多少錢啦。
這張圖應該就可以說明一切。


幾個重點:
  1. 黃色欄位是要平日維護填入的。紅色欄位是需要注意的。(記得10%的停損嗎?)
  2. N欄是距離最高點的差距。一但N欄數字大於10,請嚴格執行停損。
  3. 每次新買一檔基金的時候,請加一橫列,複製公式過去,並填入A、D、M欄。
  4. I欄與J欄的資料要輸入上次你收到銀行或基金公司給你的資料時,當時的日期以及淨值。沒啥作用,純粹自爽用。不過,看到從上次到今天漲了多少跌了多少,有時還蠻爽的。

大家可能會問,匯率不用輸入嗎?


匯率的輸入是以查表的方式做的。在D欄輸入幣別之後,試算表內的公式會去Currency這個Sheet裡面查表找到匯率帶入。所以不用擔心。
因此,請一併更新Currency這個Sheet的匯率資料。這裡有個好Source。

老話,很簡單吧。剩下來的就是紀律,
先警告各位,這張表無法反映匯率所帶來的波動。用的人請小心。
我的表是放在Google Spreadsheet上。不過這裡提供Excel版本供各位使用。
先說喔。我不負責使用這個方法或檔案所帶來的後果。
下次要說的是,如何自動化這張表,這就跟M欄的那些奇怪文數字有關了。我不但是個懶人,還是個Geek。

相關文章:
[交易系統] 我的基金管理系統-Fund Tracking試算表
[交易系統] 我的基金管理系統-自動化!

2007年7月28日 星期六

[交易系統] 我的基金管理系統-設計原則

看到雜誌上或網路上的基金投資方式,許多文章都會提到停利點的概念。這件事情我實在不太能理解。如果投資基金的目的是長期的,又有大部分的個人投資者都在定期定額(也是個長期的投資方式),設定停利點不是只會增加交易的次數,避免獲得長期的利益嗎?設定停利點除了防呆,沒有別的好處。
為了最大化可能的利潤,並且保護自己不會在下跌時受傷,我基金交易系統的出場原則(Exit Strategy)如下:

(1) Buy and hold, let the profit run。買了不賣,除非:
(2) 基金下跌到最高點的90%以下。

很簡單吧。這正是KISS,Keep It Simple and Stupid。所以,我的交易系統不是防呆,是讓我更呆。符合懶人的性格。
在過去兩年,這個出場策略沒有產生過一次賣出交易。(這一次美股因為次級房貸大跌,可能我的拉丁美洲危險了。)最大的好處是,如果市場下跌,至少投資者可以拿到最高點的90%,當然,這必須要在交易紀律有被嚴格執行的狀況下。
為了追蹤這個出場原則,一個好的記錄機制是需要的。對我來說,這個機制必須:

(1) 讓我瞭解我的資產分配狀況
(2) 每一個基金目前的表現,是否達到停損點
(3) 我可以在任何地方取得檔案

最好的解決方案就是Google Spreadsheet了。
下一篇我會介紹我的基金管理試算表,以及怎麼Update這張表。
至於要如何進場?有很多人都講過了。楚狂人在他的部落格上有四四三三選擇法,跟我的不太一樣,但概念相近,可以參考!

相關文章:
[交易系統] 我的基金管理系統-Fund Tracking試算表
[交易系統] 我的基金管理系統-自動化!

2007年7月27日 星期五

[有趣]明顯的,愛迪生不喜歡貓…還有大象

在電力剛剛發明,人們還在爭論到底要用直流還是交流電的時候,愛迪生屬於直流電的一派。為了證明他的觀點,他…電死了一隻大象,一隻貓,還私底下贊助廠商發明了電椅。
唉,人類自古皆然。無權無錢要小心。