2018年6月16日 星期六

讀書筆記 - 股市心裡操縱術 - G.C. Selden



只要有更好的投資標的,就不該管現在投資的損益,那些都是沈沒成本,而應該直接把現在的投資換到更好的投資標的上
大眾堅信不移的說法大多是錯的

自己過度貪心可以從幾點看出來:
1. 不斷提高自己的投資報酬率
2. 原先覺得風險高的投資,現在看起來能穩操勝卷
3. 不再分散投資風險
4. 堅信這次肯定不同


恐慌是一種比貪婪更強烈、更猛爆的情緒,這也是為什麼股市空頭跌勢通常極為猛烈,讓人措手不及,而相對的上漲過程中總是較趨勢溫和的原因

恐慌不是突然出現的,而是長期累積的結果

恐慌時期出現的價格底部往往不是由恐懼造成,因為恐懼的股民早已拋售股票,它是由於一些人資源耗盡、不得不賣出股票造成,如果能給他們時間他們會繼續持有的,所以「時間是交易的本質」不能忘記

持續下跌後,價格本身並不能吸引購買,問題的核心是資金的流動量有多少(曾經被證明過:紐約票據交換所儲蓄超過放貸,快速反彈很快就出現了)

一個人想要什麼,就會相信什麼(盲點)

理性的股民會在最大收益時最小化所承擔的風險,然而,過分自信的股民會錯誤地判斷他們所承擔的風險水平,從而持有較高風險的投資組合

過度自信的股民傾向買賣過去勝利過的組合

股民最好做到完全忘記自己的艙位、收益和損失,忘記當前價格與自己買進或賣出價格的關係,而只管心市場動態。不論是營利還是損失。


不該下單的情況:
1. 沒有未來的企業不下單
2. 未經研究不下單
3. 短期暴漲過的個股不下單
4. 情緒不好的時候不下單
5. 未設止損不下單


最糟糕的幾種心態:

1. 賭徒心態,追求短期刺激,盲目追逐高風險高獲利
2. 鴕鳥心態,虧太慘就當作沒看到放在那繼續爛
3. 敝叟自珍心態,因為是自己的所以認為很好
4. 急功近利心態,投資要看長線





2018年6月10日 星期日

Understanding your Circle of Competence


之前在 Twitter 看到一個段落是說成功的關鍵在於 focus

但什麼是 focus,這個 Circle of Competence 也許是一個更好的解釋



所謂 Circle of Competence 意思就是「你自己真的理解但多數人不是真的理解的知識」

以餐廳運作為例,大家也許都知道餐廳的定價策略等等,人人都可以侃侃而談,但如果餐廳換成藥店、換成生物科技呢?

from 灣區日報

巴菲特与 Charlie Munger 的投资、处世哲学:找到你的 Circle of Competence,在里面努力你就更容易成功;学习、实践、经验积累可以慢慢拓展这个 circle,但要勇于承认自己不知道的事。

https://wanqu.co/a/6593/2018-06-09-understanding-your-circle-of-competence.html
https://www.fs.blog/2013/12/mental-model-circle-of-competence


產品定位決定你可以定價的高低,你想過換句話說嗎?


哈,有趣,產品定位換句話說就可以提高產品定價


以下 quote from 灣區日報

产品定位决定你可以定价的高低

假如你的用户每个月在 Google 上投放广告 $4万,你现在有一款“节省投广告成本”的产品,你每个月可以帮助用户省 $2万,那你定价肯定不能超过 $2万,要不然用户为什么需要你。但你其实可以定超过$2万的

你只需要重新定位你的产品:“帮助增长用户”。如果原来用户每个月投 $4万可以获取200个用户,他们会愿意投 $8万来获取400个用户,那么你就有 $4万的利润空间可以定价了。用户来投广告是为了增长不是为了省钱。

同理,那些“省时”、“提高效率”的产品定位都可以改进,只要抓住用户真正价值所在(比如增长),那你就可以大大提高你产品的定价。


https://wanqu.co/a/6597/2018-06-10-how-repositioning-a-product-allows-you-to-8x-its-price-asmartbear.html?s=email
https://blog.asmartbear.com/more-value-not-save-money.html?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=email

用 Ruby proc 做 success and error handler, like JS Promise


```rb

# A base class for all classes implement calls to API.
class ApiCall
  attr_reader :params

  def self.call(params)
    new(params).call
  end

  def initialize(params)
    @params = params
  end

  def call
    @res = execute
    self
  end

  def on_success
    yield @res if @res.success
    self
  end

  def on_error
    yield @res unless @res.success
    self
  end

  private

  def execute
    fail NotImplementedError
  end
end

StripeCall.(number: 'valid')
  .on_success { |response| puts response.body }
  .on_error { |response| puts response.body }
# => ok response

StripeCall.(number: 'invalid')
  .on_success { |response| puts response.body }
  .on_error { |response| puts response.body }
# => bad response
```


感覺有點借鑑 JS promise 的做法,傳 on_success 和 on_failure 的 proc 進到 method 當作 handler,之前有想過這種做法,剛好在 Ruby weekly 看到有人示範了,的確是減少了 if else 判斷,也省略了 response 這種 hidden context,不過最後為了寫的方便一點用了 method(:handle_success) 就沒有特別喜歡,但還是學習了這個用法,又是 meta programing 流派...


原文: https://railsguides.net/conditional-execution-with-dsl/


另外在 comment 裡看到一個 gem https://github.com/apneadiving/waterfall

也是挺有趣的,真的很有 functional programing 的味道

是不是大家開始慢慢被影響導致越來越多人用 Funtional Ruby 了呢~?最近也常常聽到和看到有人要用 Ruby 實現以及使用 elixir pipe operator XD

2018 Ruby Kaigi 網路上看到的懶人整理




  • Matz considering alias yied_self with then
  • Rib, an alternative for irb
  • Stripe team building Ruby type checker



https://blog.bigbinary.com/2018/05/31/rubykaigi-2018-day-one.html






http.rb replace net::http


作者認為 Net::Http 雖然是 standard lib 之一,但 API 設計很不好,底層實作也有很多覺得不滿的地方,包含 Net::Http 的 Error 封裝方式,讓人不知道怎麼 rescue

有機會可以試用看看

https://github.com/httprb/http

https://twin.github.io/httprb-is-great/


2018年6月6日 星期三

skip document installation when gem install


https://stackoverflow.com/questions/1381725/how-to-make-no-ri-no-rdoc-the-default-for-gem-install

1. 加 ~/.gemrc

```
gem: --no-document
```

done