一直收藏著
laok的blog ,講基金的blog,還知道他有一本《我的投資觀和實踐》,想著有一天要買基金了就好好研究一下的。
今天沒事的時候翻了幾篇,看著看著有了感覺,最后忍不住就手癢去招行實踐了一把,于是我就這么也成為了“基民”。
看過的幾篇做個筆記:
- 1,該把多少存款用來投資?
年齡越大越應該保守
建議:30歲,30%的資產,各種投資不超過70%;40歲,儲蓄40%,投資60%;60歲,儲蓄60%,投資40%。
這個意見基本上和《奔奔族理財》意見一致,也很合理。
- 3, 第一只基金買甚么?
建議第一只基金去買貨幣基金。 貨幣基金再怎么買也不會有損失
- 首先取決于你的風險承受能力和你準備投資的年限,先要確定投資甚么基金品種;
- 再確定是哪個公司的哪種基金。選擇晨星評級至少4星以上的;
- 不能以短時間論英雄;三個月,甚至半年以內的排位我認為沒有任何意義。
指數基金不推薦,因為中國市場不夠規范(美國的市場基本上是有效的,但中國的市場恐怕連半有效市場都不是)
新基金不是個好選擇;老牌基金公司下的老牌勁旅基金恐怕是一個好選擇
- 5,關于基金定投
我采用的是一次性投入和定投結合的辦法。
當我第一次把銀行的存款投入基金的時候,我基本采用的是一次性投入(實際上我是在較短的時間分批投入的,這樣降低偶然漲跌影響)。
而后來每個月的結余工資是采用定投的方式來存養老金。
定投最大的好處實際上是心理上的。
定投就可以逼迫你克服你的貪婪。這是一種強制性的非常有紀律性的投資方式,別去考慮股市的漲跌,也不要試圖抓住這種漲跌。
要注意嚴格的投資紀律性在投資上是非常重要的。
嗯,定投是很合理的選擇啊,雖然波段的誘惑很大。。。
- 13,我為什么選擇廣發和上投
評價一個基金公司的好壞,可以看他所有的基金的平均水平。
主要參考某家基金公司所有產品在晨星的評級,如果多數是5星的基金品種,說明這家基金公司整體水平不錯。
感覺和taobao上挑賣家差不多。。。
- 31,再說定投
一個模擬的例子說明定投收益最終好于一次性投入
英文中定投稱為dollar-cost average方法
如果你要長期投資,按照普遍的認為,大盤是長期向上的,在這個向上的趨勢上有很多短期的波動。那定投實際上就是平滑了這種波動,最后得到一個平均效益。
定投不是最好的長期投資方案,但如果你沒有那么多資金進行一次性投資,例如你是從每個月的收入中提取一部分,定投則是非常好的選擇。
無論市場是牛是熊還是猴,定投都是一個不錯的辦法,這是我的觀念。
- 15,給基金新手的一些建議
推薦:基金投資入門系列貼匯總【新手必讀】
這篇還沒看完,蠻系統的介紹了入門,這個以后回來重讀。。。
另外提到的這篇入門貼,重點看了里面介紹貨幣基金的部分。總之貨幣基金就是風險小回報小,基本可以用來代替存款的東西吧
其余的翻了幾篇,有涉及到技術/數字分析方面的,沒仔細推敲。一方面也是看了上面的幾篇已經心癢癢了,呵呵
于是照搬了幾條意見,去招行還有晨星逛了逛,最后就選定了
嘉實貨幣 這只。主要是:
- 肯定選一只貨幣基金;另外現在股票市場還太混亂,看不清,感覺貨幣基金也穩妥些。
- 投入不多,不超過所有資金的1/5
- 看了嘉實的其他基金品種,蠻多在晨星達到了5星的評價
- 不是收益最高的,但晨星對它去年的評價也不錯,而且查看了近幾周排名,都排在貨幣基金的第一位。
- 晨星對嘉實貨幣去年收益的排名是第二,第一是中信現金優勢,不過招行不能買;中信現金優勢似乎也不錯,值得關注
以后考慮:
- 再仔細研究一些基金知識,同時切身體會一下操作基金的感覺
- 重點考慮定投一到兩只股票型基金,畢竟現在的股市那么低,反彈空間誘人啊~
- 財幫子網看上去還不錯,或者要找一個同類的工具型網站,最好也能包括股市投資記錄的
search: this is where all story begins
gmail: daily use, just another legend
docs: AWESOME! makes doc not just doc
toolbar for Firefox: some great tools to make Firefox even greater
reader: now part of my life, to let me know what's happening around
translate: not accurate, but always help
blog search: specific tool for specific use
notebook: just not suitable for me
calendar: reminding-SMS is really useful, pity that i'm not always a scheduled person
gtalk: simple and clean. great backup for MSN, though not a replacement yet
picasa: offline tool + online holding. perfect match
blogger: really convenient when combining with google docs; really suck when being blocked by GFW!
mobile: reader, search, map... just give me more!
YouTube: not really so atractive among tons of copiers
iGoogle: not so atractive either, sorry, i prefer classic google homepage
page creator: to build a personal web page is always my dream, but...殘念
desktop search: great idea, but hey guys, you can do better
code: for specialists, seems to be better than sourceforge, we'll see...
SketchUp: not really used, but really interested of this move direction
gadget and
OpenSocial: these guys make Javascript so sexy!
earth: thanks for offering a free tour of world
My top 5
Search
Gmail
Docs
Talk btw: I just feel like to speak some english after watching "how i met ur mother", anyway...
http://www.boost.org/doc/libs/1_35_0/doc/html/thread/synchronization.html Mutex概念線程同步最基本的是mutex(mutual exclusion的縮寫)。一個互斥體一次只允許一個線程訪問共享區。當一個線程想要訪問共享區時,首先要做的就是鎖住(lock)互斥體。如果其他的 線程已經鎖住了互斥體,那么就必須先等那個線程將互斥體解鎖,這樣就保證了同一時刻只有一個線程能訪問共享區域。
Boost.Thread supplies
recursive and
non-recursive mutexes with
exclusive ownership(獨占) semantics, along with a
shared ownership (共享) (multiple-reader / single-writer) mutex.
Boost.Thread supports four basic concepts for lockable objects:
Lockable
,
exclusive ownership
TimedLockable
,
SharedLockable
,
This is the standard multiple-reader / single-write model:
at most one thread can have exclusive ownership, and if any thread does have exclusive ownership, no other threads can have shared or exclusive ownership. Alternatively, many threads may have shared ownership.
UpgradeLockable
,
This is an extension to the multiple-reader / single-write model provided by the
SharedLockable
concept:
a single thread may have
upgradable ownership at the same time as others have
shared ownership. The thread with
upgradable ownership may at any time attempt to upgrade that ownership to
exclusive ownership. If no other threads have shared ownership, the upgrade is completed immediately, and the thread now has
exclusive ownership, which must be relinquished by a call to
unlock()
, just as if it had been acquired by a call to
lock()
.
[注:除Lockable的mutex外,其余的各種復雜mutex還需要更多代碼實踐]
Each mutex type implements one or more of these concepts, as do the
various lock types.
Lock Typesboost定義的Lock types為class template,以合適的Lockable object作為模板參數
lock_guard
- RAII-style的簡單lock,在ctor中lock,在dtor中unlock
只支持簡單的Lockable
object
unique_lock
- 比
lock_guard
復雜在:不僅提供RAII-style的lock,還允許用戶指定是否在ctor中立即lock,意味著可以指定推遲lock(defer acquiring the lock,通過指定defer_lock_t參數),直到顯式調用其lock()方法
還支持TimedLockable
concept,前提是需要lock的Lockable object本身支持
The member functions of boost::unique_lock
are not thread-safe...[注:這句沒看懂。。。]
shared_lock
upgrade_lock
upgrade_to_unique_lock
- [注:目前只用過unique_lock。后面幾種對應于不同需求的lock,從名字就可以直觀看出功能,還未試驗,直接參考api]
Mutex TypesMutex types對應于之前的mutex concepts,目前有:
適用于不同需求
Condition Variables The general usage pattern is that one thread locks a mutex and then calls
wait
on an instance of
condition_variable
or
condition_variable_any
. When the thread is woken from the wait, then it checks to see if the appropriate condition is now true, and continues if so. If the condition is not true, then the thread then calls
wait
again to resume waiting.(
中文參考)
lock
is passed to
wait()
;
wait()
will
atomically add the thread to the set of threads waiting on the condition variable, and
unlock the mutex. When the thread is woken, the mutex will be
locked again before the call to
wait
returns. This allows other threads to acquire the mutex in order to update the shared data, and ensures that the data associated with the condition is correctly synchronized.
In the mean time, another thread sets the condition to true
, and then calls either notify_one()
or notify_all()
on the condition variable to wake one waiting thread or all the waiting threads respectively.
condition_variable_any比condition_variable更通用;condition_variable要求傳給wait()的必須是
boost::unique_lock<boost::mutex>類型;
condition_variable一般更優化
One-time Initialization僅運行一次的例程
http://www.stlchina.org/twiki/bin/view.pl/Main/BoostThread#5%20%BD%F6%D4%CB%D0%D0%D2%BB%B4%CE%B5%C4%C0%FD%B3%CC
[注:還未使用過]
Barriers[注:還未使用過]
線程局部存儲(中文說明) (
Another one )
典型的應用場景是errno。
Boost線程庫提供了智能指針boost::thread_specific_ptr來訪問本地存儲線程。是跨平臺的解決方案
http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_local_storage.html [注:還沒有實踐過,等寫過相應代碼后再來補充文檔]
http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_management.html launching threads boost::thread類代表一個可執行的線程(thread of execution)。
A new thread is launched by
passing an object of a callable type that
can be invoked with no parameters to the constructor.
The object is then copied into internal storage, and invoked on the newly-created thread of execution.
If you wish to construct an instance of
boost::thread with a function or callable object that
requires arguments to be supplied, this can be done using
boost::bind.
(thread non-copiable, but movable; object that used to created a thread must callable, if not, use boost::ref)
Joining and detaching
當代表一個可執行的線程(
thread of execution)的boost::thread對象被銷毀時,這個線程便同時被
detached. Detached的線程將繼續運行直到線程終止。
也可以顯式調用(explicitly)一個boost::thread對象的detach()方法,這時這個線程直接被detach,而這個boost::thread對象講不再代表thread of execution,而指
Not-a-Thread
join()用于等待一個線程結束。
(timed_join())
Interruption 調用boost::thread對象的
interrupt()方法,可以中斷其對應的線程。
When the interrupted thread next executes one of the specified
interruption points (or if it is currently blocked whilst executing one) with interruption enabled, then a boost::thread_interrupted exception will be thrown in the interrupted thread. If not caught, this will cause the execution of the interrupted thread to terminate. As with any other exception, the stack will be unwound, and destructors for objects of automatic storage duration will be executed.
(boost::this_thread::disable_interruption,
Predefined Interruption Points)
Thread IDs
每一個運行中的thread都有一個唯一的id值。
調用對應的
boost::thread對象的
get_id()方法
,或者在運行的thread中調用
boost::this_thread::get_id()
方法。
Namespace this_thread this_thread下包含的是在正在運行的線程內部,所能進行的線程操作,包括上面提到的get_id()方法
http://www.boost.org/doc/libs/1_35_0/doc/html/thread/thread_management.html#thread.thread_management.this_thread Thread Groupthread_group class provides for a collection of threads that are related in some fashion.
New threads can be added to the group with
add_thread and
create_thread member functions.
thread_group is
not copyable or movable.
基礎概念:
參考:
- http://www.cs.cf.ac.uk/Dave/C/node32.html
一個c/pthread的thread教程,有一些典型例子的代碼、算法說明
- http://www.stlchina.org/twiki/bin/view.pl/Main/BoostThread#C++%20Boost%20Thread%20%B1%E0%B3%CC%D6%B8%C4%CF
C++ Boost Thread 編程指南(中文版)
http://www.ddj.com/cpp/184401518
英文原版
WARNING:Out-of-Date(2002年的)! 只能參考用
- http://aszt.inf.elte.hu/~gsd/klagenfurt/material/ch03s06.html
英文的一篇boost.thread說明,里面有boost::thread的簡單例子,其中一個使用了condition
WARNING:Out-of-Date! 只能參考用
Code: