Saturday, August 30, 2014

Reading Notes : Secret of Wealth

Note:

1. Set goals for yourself
2. Save 10% of what you make
3. Invest now, in the market and in yourself
4. Get out of debt

Quote:

If you choose not to decide, you still have made a choice.

The quality of a person’s life is in direct proportion to their commitment to excellence.

Successful people don’t make excuse.

The rich have been getting richer using other people’s money for centuries.

Not starting is a bigger mistake than making a bad investment.

The only reason you are where you are in life is because you chose to be where you are.

Think hard and ask yourself “how can I realize these dreams if I keep doing what I’ve been doing?” The answer is that you can’t, which is why you need to stop making excuses and take action.

The best thing about the future is that it comes only one day at a time.

If you don’t know where you are going, you will end up some place else.

Cherish your own vision and your dreams as they are the children of your soul; the blueprints of your ultimate achievements.

How you spend your time is more important than how you spend your money. Money mistakes can be corrected, but time is gone forever.

A penny saved is two pennies earned.

They delay purchases they don’t need right away until their next shopping trip and often they find that they didn’t really need the item.

If your life is without failure, you haven’t taken enough risks.

In the long run, men hit only what they aim at, therefore, they had better aim at something high.

If you think education is expensive, try ignorance.

Deciding to commit yourself to long-term results rather than short-term fixes is as important as any decision you will make in your lifetime.

Do not wait for an opportunity to be all that you want to be. When an opportunity to be more than you are now is presented and you feel impelled toward it, take it. It will be the first step toward a greater opportunity.

Book Recommendation:

Believe and Achieve by W.Clement Stone
The Richest Man in Babylon by Geoge Clason
The Millionaire Next Door by Thomas J. Stanley


Friday, August 29, 2014

读《浪潮之巅》




历史的车轮滚滚前行,顺之者昌, 逆之者亡。 而大潮将至, 能者勇者乘风破浪,慵懒之人则只能迎来被浪潮吞没的命运。也许这就是所谓的历史的必然性,个人无法逃脱,公司无法逃脱,一个国家同样也无法逃脱。

而只有站在浪潮之巅,才能顺势而为从而走得更远。

那是一个拒绝平庸的年代,一个群星闪耀的年代。

摘抄:

1. 成功的公司各有各的绝招,失败的公司倒是有不少共同之处。

2. 一个人一辈子赶上一次大潮就足以慰平生了。

3. 一个公司的基因常常决定它今后的命运。

4. 过于超前市场的技术不仅导致成本过高,而且维护为用也是巨大的。

5. 我们社会的科技和生产力发展就必须和商业联系起来。 一个技术,一种产品只有当他被证明在商业上是成功的,才能真正地为我们这个社会接受。

6. 当一个人往下走的时候是不需要扶的,当他往上走时恰恰需要你扶一把。

7. 一个小公司要想成功, 有很多因素必须同时具备:
    * 创始人很重要,任何梦想家都不足以成事, 因为所有成功者都是实干家  
    * 成功的创业者必须有个小而精的团队
    * 他们的技术必须是不容易被别人学会和模仿的
    * 找到一个能盈利的商业模式
    * 判断力和执行力
    * 外部环境与时机
    * 好运气
















Sunday, August 17, 2014

随便写写(2)






随意在网上挑了本书,只是因为喜欢作者的名字与书名。

有的时候与喜欢的文字相遇也是一种缘分。 作者应是博学,可惜自己功力不够,不能尽赏书中言语之精妙。不免好奇,究竟是什么样的经历造就了这样奇特的文字。


《即兴判断》 木心

一有幸福可言,就意味着灾祸的存在,幸福是指灾祸竟已过去和灾祸犹未到来,那一段时空状态才是所谓幸福,别的还能指什么,别的没有指什么了。
 
中国文化精神的最高境界是欲辩已忘言。
欧陆文化精神的整体表现是忘言犹欲辩
 
修身——好玩。齐家——不好玩。治国——好玩。平天下——不好玩。因为,因为修身可能。齐家不可能。治国可能。平天下不可能。比起来,治国最好玩,堪惜很少大玩家。
 
词句与想法互为先后,想法带出词句,是语言。文学之胜于语言,正在乎最珍贵的想法,往往是被词句带出来的。
心灵有时像杯奶,小事件恰似块方糖,投下就融开了,一路甜甜地踅回来。
 
博比爱大多了,爱一定要使被爱的人明了处于爱中,所以烦恼郁毒,而博者不求受博者有知觉,便能随时恣意博去,博之又博,惊讶与快乐莫须再分。
 
江畔的大阳伞下,老人瞑目端坐,娟娟少女斜签着捧书朗读,前面是一望无际的松花江,男性气概的熏风吹得畅洋,使我既羡慕那位老的,也羡慕那位少的,更羡慕那本被捧着的书。

Friday, August 15, 2014

Something a beginner investor should read.



List :



Let us read, and let us dance; these two amusements will never do any harm to the world.

Laissez lire, et laissez danser; ces deux amusements ne feront jamais de mal au monde.

                                                                                                                                               -----  Voltaire



Tuesday, August 12, 2014

Keep investing on a regular basis




Just to save money is not enough, we should keep our saving growing. Here is a very simple strategy: keep investing on a regular basis. 


We will use R to test this very simply idea. Suppose that we start from 2004-05-10 and we keep investing 1000 to MDY every 20 business days. The transaction cost is 10/trade. The period is intentionally selected so that it can go through the financial crisis. 

To estimate the annualized return of this strategy, we will compare the final market value of our investment to our total investment and use the formula :
(finalValue/initialInvetment) **(1/numYears)-1
Note that this formula will provide an approximate estimation of the annualized return, because the time of investment being in the market does not cover the whole period. The test shows that we can get about 6% annualized return each year from this very simply strategy.

The R script is attached at the end of the post. The results of the strategy heavily depends on the parameters of the algorithm and the studying period.

We can improve this strategy by making it more flexible. For instance, when the market condition is not good, we can try to invest more money to the equity market, believing that the economy or the market will come back sooner or later.


------------------------------------------------------R script -------------------------------------------------------

 library(tseries)


ustart  <- "2004-05-10" # start date
uend    <- "2014-08-08" # end date

ticker  <- "mdy"
quote   <- get.hist.quote(instrument=ticker,
                          start=ustart,
                          end=uend,
                          quote=c("AdjClose"),
                          provider="yahoo",
                          compression="d")

dates <- rownames(as.data.frame(quote))
quote <- as.double(quote)

# --------------------------------------------------

ptr                                   <- 0
l                                      <- length(quote)

amount                           <- 1000
investmentPeriod            <- 20
transactionCost              <- 10
totalInvestment               <- 0
shares                             <- 0
totalInvestment_std         <- 0
shares_std                       <- 0

dateIndex                        <- array()
annualizedReturn           <- array()
annualizedReturn_std     <- array()

count                              <- 0
level_low                        <- 0.03
level_high                       <- 0.05
extra_amount                <- 250


while (ptr < l) {
 
  ptr <- ptr + 1
 
  if (ptr %% investmentPeriod == 0 ) {
    count <- count + 1
    dateIndex[count] <- ptr
    if ((annualizedReturn[ptr-1] < level_low) && (count > 6)) {
      extra_amount          <- min(500,amount * (level_low - annualizedReturn[ptr-1]) * 15)
      totalInvestment            <- totalInvestment + amount + extra_amount
      shares                          <- shares + (amount + extra_amount) /quote[ptr]
    
      totalInvestment_std     <- totalInvestment_std + amount
      shares_std                   <- shares_std + amount / quote[ptr]
    
    
      # } else if ((annualizedReturn[ptr-1] > level_high) && (count > 6)) {
      # extra_amount <- max(-200, amount * (level_high - annualizedReturn[ptr-1]) * 2)
      # totalInvestment <- totalInvestment + amount + extra_amount
      # shares <- shares + (amount + extra_amount) /quote[ptr]
      #
      # totalInvestment_std <- totalInvestment_std + amount
      # shares_std <- shares_std + amount / quote[ptr]
    
    
    } else {
    
      shares                         <- shares + amount / quote[ptr]
      totalInvestment           <- totalInvestment + amount
    
      shares_std                   <- shares_std + amount / quote[ptr]
      totalInvestment_std    <- totalInvestment_std + amount
    }
  }
 
  if ((totalInvestment == 0) || (count < 6)) {
    annualizedReturn[ptr]    <- 0
  } else {
    currentValue                    <- quote[ptr] * shares
    currentValue_std             <- quote[ptr] * shares_std
    portionOfYear                 <- count * investmentPeriod / 252
    aReturn                           <- ((currentValue - count * transactionCost)/totalInvestment) ** (1/portionOfYear) - 1
    aReturn_std                    <- ((currentValue_std -count * transactionCost)/totalInvestment_std) ** (1/portionOfYear) - 1
    annualizedReturn[ptr]          <- aReturn
    annualizedReturn_std[ptr]    <- aReturn_std
  }
}



# --------- plot ----------

plot(quote, type="l", ylab="", xlab="", xaxt="n")
uPoints <- cbind(dateIndex, quote[dateIndex])
points(uPoints, pch=17, col="blue")
par(new=TRUE)
plot(annualizedReturn, type="l", col="red", ylab="MDY",xlab="",xaxt="n", yaxt="n", ylim=c(-0.15,0.15))
lines(annualizedReturn_std, type="l", col="green", ylab="return",xlab="",xaxt="n",yaxt="n",ylim=c(-0.15,0.115))
lines(rep(level_low,l),type="l", col="lightgrey")
lines(rep(level_high,l),type="l", col="lightgrey")
legend("bottomright", legend=c("price","simple","aggressive"), col=c("black","green","red"), lty=1, cex=0.45)
y_grid <- c(-0.15,-0.1,-0.05,0,0.05,0.10,0.15)
axis(4,at=y_grid, label=y_grid)
nDates <- trunc(l / 252) * 4
cc <- trunc(l/nDates)
pos <- c(1:nDates) * cc
axis(1,at=pos, label=dates[pos],las=2)
title("Invest On a Monthly Basis")


# ---------- not important --------
annualizedReturn[l]
annualizedReturn_std[l]
(quote[l]/(mean(quote[1:15]))) ** (252 /l) - 1

Sunday, August 10, 2014

随便写写(1)(test)


 

行走在荒原,
注定孤独的灵魂;
沉在夜底的星,
看尽人间凄美的故事。