Life is Like a Boat

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

働き方雑感

LinkedIn経由でリクルーターから連絡がきて、話聞くだけでもというくらいのノリだったので、とある外資系ITコンサルの人事の方と電話で話すことになりました。

このITコンサルは受託開発がメインで、俗にコンサル界隈で言われている高級派遣+手が動かせる(プログラミングできてシステム導入できる)集団といったところです。

やってるプロジェクト自体面白そうで人事の人とも予定時間をだいぶ超えて話していたのですが、最後に働き方の質問をした際に意外だった点があります。

それは、

  • 9時-18時が就業時間
  • 家からリモートで働くのも禁止(というのはどうも発注したクライアントの要望らしいです)

点です。

自分の健康や子供と遊ぶ時間を重視しているので、ちょっとその働き方は合わないな...というのが第一印象です。

だいたいこのご時世にWork From Homeが出来て普通だと思うのですが、クライアント側が発注先にリモートで働くのを強いるっていう点がパワーバランスの不均衡さが背景にあるような。実際に現場の社員の人と会話できるようアレンジしてもらえるみたいなので、突っ込んで聞いてみたいと思います。ダイバーシティとか言いながら働き方のダイバーシティはないんかいな。

宮沢元首相がアメリカの討論番組に出演している動画

ブッシュ(父)大統領の葬儀の動画をみていたら、Youtubeのアルゴがお勧めの動画で載せてきたのが、ブッシュ大統領が訪日時に夕食会で体調崩し、宮沢元首相の膝にゲロ吐いた時の動画でした。

www.youtube.com

その動画を見終わったら今度出てきたのは宮沢元首相に関連する動画。

こちらは週末の討論番組ThisWeekで宮澤元首相が出演し、クリントン政権との貿易交渉についてコメンテーターからの質問に答えるというものです。 www.youtube.com

当時の民主党の幹部が米国からの輸入数量の設定や貿易赤字削減のスケジュールを出せと強く迫っているというのに対して、日本は崩壊したソ連のような国ではなくフリーマーケットの国でどうして政府が民間に質がわからないのに量だけ設定しろと言えようか、アダムスミスの見えざる手に反した事だとキッパリ言っているシーンが印象的でした。

当時のニュースをリアルタイムで追ってたわけではないですが、クリントン政権が言っていることと細部では違いがあるでしょうが、基本今と同じでデジャブ感あると思います。歴史は繰り返すというか、来年からの日米物品交渉でも過去と同じようなやりとりが繰り広げられるんでしょうか。

CSSフレームワークのBulma

CSSフレームワークBulma。

Bootstrapから移行したい人にも勧められると言われたので、移行のメリットを調べてみました。

公式の bulma.io によると

  • BulmaはピュアCSSのフレームワーク
  • Font Awesom5をサポートしている
  • シンタックスがわかりやすい
  • シンプルなGrid
  • No Javascript

などがBootstrapとの違いとうたってますが、正直Javascriptいらない点くらいしかメリットないのでは...。「わかりやすい」という点は、Bootstrapに慣れている人からすると学習コストかかる点で同じだと思います。 多分、GatsbyJSやNuxt.jsのような静的サイトジェネレーターのデザイン向けにメリットあると思いました。

Gridで言えば、Bootstrapの

<div class="row">
    <div class="col">A</div>
    <div class="col">B</div>
    <div class="col">C</div>
</div>

<div class="columns">
    <div class="column">A</div>
    <div class="column">B</div>
    <div class="column">C</div>
</div>

になるのがまず移行時に直面する違いかと思います。

Bootstrapより新参なので作者側もサンプルは豊富に用意したいみたいです。

bulma.io

www.lottiefiles.com

Javascriptで配列をオブジェクトの配列にしたい

const xs = ['banana', 3, 'apple', 4, 'orange', 5]

という配列があったとします。

これを

[ {item: 'banana', amount:3}, {item:'apple', amount:4}, {item:'orange', amount: 5} ]

のオブジェクトの配列に変換したいです。

やりかたは沢山あると思うのですが、 先に

['banana', 3, 'apple', 4, 'orange', 5]

[ [ 'banana', 3],  ['apple', 4], ['orange', 5] ]

の配列の配列にしてあげる方法をとります。

const xs = ['banana', 3, 'apple', 4, 'orange', 5]; 
xs.reduce((a, c, idx) => {
    return idx % 2 === 0 ? a.concat([xs.slice(idx, idx + 2)]) : a;
}, [])

aがaccumulatorを意味します。 returnの部分は三項演算子で、condition ? true : false を意味します。 idxを2で割って0の場合(idxが偶数)、accumulatorに配列xsのidx番目からidx+2番目を配列にして結合する。2で割って0でない(奇数)なら、accumulatorを返す、です。

ここまで実行するとスクショのようになります。 f:id:nerimplo:20181129171203p:plain

次に、この配列の中の配列をオブジェクトにします。 ['banana', 3] => {item:'banana', amount:3} です。

これは配列の何番目に何が入っているかわかっているので

.map((e) => {
    const o = new Object(); o['item']=e[0]; o['amount']=e[1]; return o;   })

でいいと思います。

Object.assignで

.map((e) => {
    return Object.assign({'item':e[0],'amount':e[1]}, {}) })

するのもありだと思います。

f:id:nerimplo:20181129171241p:plain

developer.mozilla.org

最終的なソースコードはこのようになります。

const xs = ['banana', 3, 'apple', 4, 'orange', 5]; 
xs.reduce((a, c, idx) => {
    return idx % 2 === 0 ? a.concat([xs.slice(idx, idx + 2)]) : a;
}, []).map((e) => {
    return Object.assign({'item': e[0], 'amount': e[1]}, {})
})

こういうのをスニペットにしてGistに残しておくと、似たようなケースがあった時にすぐ思い出せて「あれー、うーん」と考える時間の削減になりますw。

ウォッチ銘柄メモ - 勝ち馬に乗る

四季報やMonexなどのスクリーニングツールを使ってファンダが良さそうな銘柄群をYahooFinanceにまとめて管理しています。 かれこれ過去6年分くらい溜まってまして先日数えたら1000を超えていました。全上場企業が3400くらいあるはずなので、1/3くらいになりそうな勢いです。

あくまで、調べた時点、スクリーニングに引っかかった時点で加えたものなので、今は市場の厳しい評価を受けているRIZAPなども含まれていました。

実証研究によれば、過去3〜12ヶ月の高い(低い)株価パフォーマンスに基づいて構築されたポートフォリオは、その後の3〜12ヶ月においても同じような高い(低い)パフォーマンスを上げる傾向があるという、モメンタム効果が知られています。

10月始めから全体的に続いている下落トレンドの中でどういう銘柄が高いパフォーマンスを出しているか、モメンタム戦略を考える上で何かしらのヒントになるのではないかと思っています。

そこで、10/1~11/22までの騰落率でTOP15を出してみたところ、こんな感じになりました。 自分の1000くらいあるウォッチ銘柄プールから抽出したものです。

コード 10/1~11/22の騰落率 名前 業種
2164 71.39 地域新聞社 サービス業
6046 58.77 リンクバル サービス業
3541 56.63 農業総合研究所 卸売業
6161 48.82 エスティック 機械
4735 43.46 京進 サービス業
6047 42.81 Gunosy サービス業
8111 40.86 ゴールドウイン 繊維製品
6276 40.63 ナビタス 機械
4924 40.26 シーズ・ホールディングス 化学
4235 34.62 ウルトラファブリックス・ホールディングス 化学
9698 33.43 クレオ 情報・通信業
2120 32.65 LIFULL サービス業
7725 29.83 インターアクション 精密機器
7550 26.77 ゼンショーホールディングス 小売業
3646 24.28 駅探 情報・通信業

リンクバルは街コンの運営企業。同業他社もマッチングアプリなどの台頭もありますが、リアルなイベントに参加する人は変わらず存在するし、 参加者の増加がPLにプラスのインパクトを与える構造が続いているとみてます。結婚しそうな層の雇用が安定し、所得が上がっているのが追い風になると思います。

LIFULLは決算発表後上向きのトレンドが継続しています。Mitula社の連結による上方修正が材料になりそうですが、スケジュール的には来年1月に連結開始、詳細がわかり次第業績予想の修正を行うとしています。 中期的には不動産アグリゲーションのトラフィックのシェアが高まり、マージンの高いトランザクションに応じた課金が増えていくことでPLインパクトが出て来るのではないかと期待しています。 https://lifull.com/wp-content/uploads/2018/10/summary_20181023.pdf

ウォール街のモメンタムウォーカー

ウォール街のモメンタムウォーカー

いい加減に覚えたい、よく使うPandas APIレファンレンス2

Pandas側からDBとのやり取りはよくするのに、いつも書き方を忘れてしまうのでメモ代わりに残してみました。

流れ

  1. 環境変数を読み込む

  2. クエリを作ってデータフレーム化する

です。

インストール

まずモジュールのインストールから

pip install -U python-dotenv

.envの作成

次に環境変数を集めた.envを作つくり、Notebookと同じディレクトリにおきます。

.envファイル

HOST= host
PORT= port_number
DATABASE= db_name
USER= user_name
PASSWORD= your_password

ノートブック上で読み込む

ノートブック上では

%load_ext dotenv をして、.envのパスを指定して読み込ませます。 2行だけで済むので楽チンです。

Notebook

%load_ext dotenv
%dotenv .env

import psycopg2

# postgres config
connection_config = {
    'host': os.environ.get("HOST"),
    'port': os.environ.get("PORT"),
    'database': os.environ.get("DATABASE"),
    'user': os.environ.get("USER"),
    'password': os.environ.get("PASSWORD")
}
connection = psycopg2.connect(**connection_config)  


df = pd.read_sql(sql='SELECT col1, col2 FROM data_table',
                    con=connection, index_col='col1')
col1 col2
0 東京 3
1 神奈川 4
2 千葉 3

まとめ

私は1プロジェクト1ノートブック派なので、環境変数をまとめたファイルを複数作っておいて、 $HOME/env_files/ のような場所に集めて集中管理した方がいいかもしれません。 Notebookをgithubにpushする時、.gitignoreに毎回書くのは面倒ですし。

配当、安定的なキャッシュフロー、リーズナブルなPER

Hodges CapitalのEric Marshall氏がNightly Business Reportに出演して自身のマーケットビューを語っています。

www.youtube.com

同氏が注目しているのはQuality Stockです。昨年来見られた高い成長とそれに伴うモメンタムが強く出ているセクターからクオリティとバリューへの転換に注目したいと言います。

具体的な銘柄では

  • Fedex (FDX)
  • Agco (AGCO)
  • Nordstrom (JWN)
  • Cinemark (CNK)

上から順に運輸、農機、小売、映画館です。これらはマーケットの中でも退屈で忘れられたエリアだと言います。同氏が強調していたのは配当、安定的なキャッシュフロー、リーズナブルなPER。

最近のマーケット関係のニュースサイトのヘッドラインを読んでると、貿易摩擦、連銀の利上げ、ヨーロッパと中国の減速、イタリアの財政とUKのBrexit、コモディティの下落(銅、アルミニウム、亜鉛、木材)、サイクルの最終局面だ何だと、本当に言い出したらきりがない状態ですが、配当、安定的なキャッシュフロー、リーズナブルなPER、これらがダウンサイドからポートフォリオを守る要素なのはいつの時代も変わらないことだと思います。