Life is Like a Boat

忘備録や経済、投資、プログラミングに関するメモやtipsなど

バニラの価格はなぜ高い

f:id:nerimplo:20180927170710j:plain

Business Insiderのバニラの価格についてのツイートを見つけたので、まとめてみました。

Business Insider on Twitter: "Here's why vanilla is so expensive… "

労働集約的なバニラ栽培

バニラは蔓性植物で、我々が知っているバニラ味は、鞘状の実を発酵・乾燥させることで生成されます。

バニラのツルは成長するのに2-4年かかります。さらに年に一回だけしか花を咲かせないという特徴があります。 花が咲いた時に受粉される必要があり、受粉を助けるハチや鳥などの媒介生物がいなければ、結実率は落ちてしまい収穫量も下がります。

80%以上のバニラが生産される最大生産国マダガスカルでは手作業でこの受粉作業を行うそうです。収穫までも含めるとバニラの栽培は極めて労働集約的です。

消費者の嗜好の変化、盗難リスク、天候リスク、etc..

f:id:nerimplo:20180927170537p:plain

バニラの価格(FTより)は高騰を続けており、重さで比べると銀より高い値段がついています。 その要因としては、消費者の嗜好の変化が挙げられます。

80年代、人工的なバニラの味や香りが開発され、価格的に割に合わなくなった天然バニラの農家は生産を削減しました。

その後、人工品ではなく、天然のものを摂取しようというというトレンドになり、天然バニラの需要が戻りました。

しかし、バニラ農家が生産量を再び元に戻すにのは時間がかかります。

さらにバニラはその価格の高さから盗難のターゲットにもなります。ならず者は成長したバニラの鞘を盗んで市場で換金するのです。

その上、最大生産国のマダガスカルは日本の台風のようにサイクロンが周期的にやってきます。バニラ農家は天候リスクも負っています。

国内で栽培できるか

福岡で商業栽培が行われているそうです。

j-net21.smrj.go.jp

また、北海道でも2020年に量産体制に移るべく試験栽培を昨年から始めた会社があるようです。 http://www.ishiya.co.jp/upd_file/news/434/news_file434.pdf

栽培方法を見ると18度以上、湿度70度以上を保てる場所が必須らしいので、ビニルハウスでの栽培になりますね。冬場の暖房費がかかりそうです。 自分で始めるなら、初期投資額、 初収穫までキャッシュのアウトフローが続く3-4年間をどうやり過ごすか、温度や湿度管理を完全自動化、販路開拓など課題がありそうです。



うちの子供らはバニラアイスが好きでスーパー行くとよく買ってとせがまれます(^◇^;)。 もう少し大人になったら、その味が元をたどればマダガスカルからきているんだぞと地球儀見せながら教えたいと思います。

東洋炭素メモ

東洋炭素メモ

2018年12月期第2四半期の決算説明資料より http://www.toyotanso.co.jp/IR/0541-Iri1.pdf

18年12月期の1, 2Q累計で見た営業利益は41.7億。中国高温ガス炉向けが寄与。

売上の53%を占める特殊黒鉛製品は3種類にブレイクダウンできる。 エレクトロニクス分野、一般産業分野、その他

中国高温ガス炉向けの黒鉛材はその他に分類されるようだ。

ポイント

  • 下半期の予想を見ると会社としては特殊黒鉛製品その他分野の売上は例年並みに落ちるとみている。-> 中国高温ガス炉向けは特殊要因
  • このため、18年12月期3,4Q累計でみた営業利益は1,2Q累計と比べて半減する見込みとしている。
  • この数字は、去年の3,4Qであげた営業益23億とほぼ同じ。この数字が本来の同社の実力に近いイメージを持つ。
  • 予想一株利益は224円。26日の終値は3460円。
PER PBR
15.4 (会社予想を元にした) 1.17

PostgresのWindow関数を使う

時系列のデータを含んだテーブルがある場合、 前日比や前月比と言った以前の値との比較を出したくなります。 Pandasだとshiftメソッドを使えば可能ですが、PostgresだとWindow関数を使います。

こちらが元データ。

SELECT dt, x FROM data ORDER BY dt DESC LIMIT 3
dtx
2018-08-0150.8
2018-07-0149
2018-06-0149.2

こちらがWindow関数のうちlag関数を使った場合です。

SELECT dt, x, lag(x, 1) over (order by dt) as prev_x
FROM data
ORDER BY dt DESC
LIMIT 3
dtxprev_x
2018-08-0150.849
2018-07-014949.2
2018-06-0149.250.1

prev_xのカラムにxの1行前の値が入っています。

lag(x, 1) over (order by dt)が肝です。

lag関数の第二引数を変えることで、例えば12とすると、行に毎月データがあれば、12ヶ月前を意味するので前年同月の値が入ります。

100日前の株価との比較をしてリターンを計算するといった操作はpandas側ではなく、postgres側でやってしまえば良さそうです。 viewを作って毎回クエリを書かないように済ませることもできますし。

Moat ETFウォッチ

モーニングスターのMoat Focus Indexに連動するVakEck Vectors Morningstar Wide Moat ETFのサイトで同EFTが所有する全株式のリストが公開されています。

https://www.vaneck.com/etf/equity/moat/holdings/

1位はEli Lilly、2位のExpress Scripts Holdingはヘルスケアセクターの会社。MerckやPfizer, 武田のシャイアー買収で争ったAllerganなど、なんとトップ10のうち7社がヘルスケアに関連する企業です。特に製薬会社は特許による堀を有していることが選ばれる理由でしょう。

ちなみに、モーニングスターでは下記が経済的な堀(Economic Moats)であるとしています。

  • ネットワーク効果

売り手が多ければ多いほど、商品を見つけようとする買い手も増える。 例: AmazonやeBAY

  • 無形資産

特許やブランド、規制当局から与えられた営業許可など。自分のマーケットに侵入してくる競争相手を寄せ付けないような商品を有している。 例:製薬会社

  • コスト競争力

同類の商品を販売するのに係る費用を低くすることができる。例: PBMのCSV、ESRX

  • スイッチングコスト

その企業の製品・サービスを使うことをやめて、別会社の製品・サービスに乗り換える事が困難である状態。例えば、AdobeのPhotoshopに使い慣れたデザイナー集団が他社の製品に乗り換えるのは困難。

  • 効率的規模

ニッチな市場が一社または僅かな企業によって占められている時、"効率的規模"が存在する。例えば、地点Aと地点Bを結ぶパイプラインの会社には地理的な独占があり、他社が同じルートにパイプラインを設置することによるリターンは資本コスト以下になってしまう。例: 石油、天然ガスパイプライ会社のEPD

www.morningstar.com

Hodges CapitalのポートフォリオマネジャーGary Bradshaw氏による推奨小型株

Nightly Business Report 9.17より、

www.youtube.com

Hodges CapitalのポートフォリオマネジャーGary Bradshaw氏による推奨小型株

  • Ollie's Bargain Outlet Holdings Inc(OLLI)

全米22州に展開。店舗数は274で伸び代あり。Amazon effectと言われるリテールセクターの中でも店舗拡大を続けている。

  • Conn's Inc (CONN)

アメリカの家具チェーン。家電製品やマットレスなどの販売。

  • Diamondback Energy Inc (FANG)

SmallCapに分類されるテキサスの原油と天然ガス企業。キャッシュフロー、利益、産出量をみて楽観的な見通しを持っている。

Performance | Hodges Funds
Hodges Mutual Fundsのホームページ。それぞれのFundが保有するTop10が公開されている。

Google AnalyticsをPlotly Dashで作ったサイトに追加する

Dashで作成したページにGoogle Analyticsを埋め込む方法です。

  1. Google Analyticsのサイトから新規にアカウントを作成。トラッキングIDが生成される。 f:id:nerimplo:20180919121814p:plain

  2. Plotly Dashの/assetsディレクトリ下にgtag.jsを作成する。

  3. ソースは下記の通り。

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

ga('create', 'YOUR_TRACKING_ID', 'auto');
ga('send', 'pageview');

なんとこれだけです。

/assetsディレクトリ下にはカスタムのcssやJavascriptを置く事ができます。これらはDash側から特段指定せずに自動的にロードされます。

Including custom CSS or JavaScript in your Dash apps is simple. Just create a folder named assets in the root of your app directory and include your CSS and JavaScript files in that folder. Dash will automatically serve all of the files that are included in this folder.

dash.plot.ly

なお、dashが他のコマンドラインから走る場合(flaskコマンドやgunicornなど)、mainモジュールはapp.pyがある場所にはないので、app = dash.Dash(name)とセットしてあげる必要があります。

KABU+の価格データ - 分割併合に対応する

KABU+を使い始めて2ヶ月になります。

nerimplo.hatenablog.com

本来ならヒストリカルな価格データを使っていろいろ実験してみたいところですが、KABU+の価格データの何が問題かというと、分割併合の際に過去分が修正されないことです。
例えば、9262 シルバーライフは4月24日に1:2の分割をしています。 f:id:nerimplo:20180914142244p:plain

生データのままだと個別パフォーマンスの計算やチャートで表示したらとんでもないことになります。

サポートにメールしたところ、過去データの修正はするつもりがなく、発行済株数を使って計算しろとのことでした。

しかし、新株発行などのイベントがあるとコレは使えません。

例として

発行済株数1万 自分の買ポジ1000株@100円
の企業が、1万株の新株を発行したとします。

発行済株数は2万株になります。希薄化になるが、どうして自分の買値が半分の50円になるでしょうか!

なのでここは正攻法で

  1. 分割併合の情報をどこからかもってくる
  2. 日次バッチかなにかで修正済み終値を生成する

が必要そうです。

1)については松井証券

銘柄情報-株式併合

のこのページで取得できました。分割併合データ用のTableをHeroku Postgresに用意してとりあえず9月末までのデータの取り込みはできました。
日次バッチは

  • 本日分の分割修正が必要な銘柄とスプリット比率を上記テーブルから取得、

  • PythonからPostgreSQLのストアロプロシージャを呼び出す、

  • 修正済み終値のフィールドをアップデートさせる

という方法にしようと思っています。

もっといい方法があればどなたか教えてください><。

ちなみに、9月は分割併合のイベントが多いです。理由は、売買単元が100株に統一されるためです。 r.nikkei.com

ようやく感がありますが、今まで1000株単位だった鹿島建設や北野建設は2:1、10:1などの併合比率で売買単元を100株にするようです。