Life is Like a Boat

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

決算後ギャンブルメモ

大抵この時期の決算シーズンは発表社数でみて

  • 1月中旬の小波
  • 1月最終週の木金の中波
  • 2月第一週後半から第二週の大波

という感じなのですが、今週はちょうどその谷間でたまった発表分をぽちぽち見ながら業績の趨勢をみる感じでした。

決算ギャンブルは業績発表前にポジションを持ち、発表後に反対売買する事なのですが、決算発表日の翌日終値で買い、5営業日に売るパターンをした場合を調べてみました。

これは決算後ギャンブルと名付ければ良いかわかりませんが、

の2パターンあると思います。

まず、決算発表日翌営業日に前日終値比でプラスになった銘柄数は354社中140社。そのうち、5営業日後もさらに上昇を続けた銘柄は81あります。これらはポジティブサプライズがモメンタムになって上昇が続いたと解釈されると思います。そのトップ10を抽出してみました。 f:id:nerimplo:20210124134458p:plain

つぎに、決算発表翌営業日が前日比でマイナス、5営業日後の終値でプラスリターンになっている銘柄数は99でした。直後に売られたが日が経つにつれ戻ったパターンです。その上位10を表示しています。 f:id:nerimplo:20210124125922p:plain

うち、リターン別でソートして1位になったJESCOの1時間足をみると、 f:id:nerimplo:20210124130633p:plain

発表翌日のオープンで売られ、その翌日のオープンで下ひげを付けています。自分だったらその翌日の下ひげ近辺で損切りしてそうです。

それぞれのパターンを表にまとめてみました。

t5>t1 t5=<t1
t1+ 81 59
t1- 91 123

t1が決算発表の翌営業日、t5が5営業日後です。決算発表日の翌営業日(t1)の終値が前日比プラス、かつ5営業日終値(t5)がt1を上回っている銘柄数は81です。

2020年を振り返る - 投資編

激動の一年が終わりました。 年間の日本株PFのパフォーマンスを計算したところ、年初来で28.9%増。米株PFは12/30時点で80.2%増となりました。

自分のTwilogを読み返しつつ今年を振り返りたいと思います。

1-2月

思い返せばイラン司令官殺害のニュースなど中東情勢の悪化懸念から始まった2020年。東京オリンピックを控えて年前半のGWにかけては波乱含みの展開、年後半から上向くイメージでいました。

1月5日には武漢新型コロナウイルス患者が発生したと発表(NHKスペシャルによると感染はそれより前に始まっていて、武漢の海鮮市場は初期クラスターの一部だったようです)。

当局は専用病棟を速攻で建てているし、

強権的なロックダウン措置をとる対応が中国発のニュースで流れていました。

とはいえ、この時点で自分は大阪でのMicrosoftのイベントに行っていましたし、正直対岸の火事程度に思っていて、まぁ豚インフルの頃と同じになるやろ、くらいの構えでした。

それでも、プットオプションを保険目的で買ってました。中国ニュースを追っていると武漢では秀吉もびっくりな一夜城で病院建てるくらいの大騒動なのに、株式市場は2月第3週まで、特に日経平均はそれほど影響を受けておらず、このウイルスの脅威は実はそれ程なくて、間違っているのは(心配し過ぎなのは)自分じゃないか、と思うようになりました。そうであれば、ここは少しでも利益乗ってるプットオプション外して様子を見よう、と判断したのが2/20です。後から振り返ってこの判断がいかに愚かだったのか思い知ることになります。 f:id:nerimplo:20201230170641p:plain

歴史的下落の3月

自分は社会人になってからリーマンショックと2011年3月大震災を経験したのですが、その頃は運用額も今より少なく、銘柄数も多くなかったので、今回体感する下落の恐怖は今までで最大でした。 株式PFの下落を少しでも回避するため、信用ポジは徹底的に損切り、少しでも利益が乗っている現物は長期保有候補であってもとにかく売りました。キャッシュポジションはPFの8割近くになりました。

米株ではNYダウのサーキットブレイクという、ものすごいプライスアクションを経験しました。「Frozen III」なんてジョークよく言えたよなと今振り返って思います。

おそらく、想定を超えるプライスアクションを経験した人は笑いしか出てこないんじゃないか。

3月末時点では年初来-35%でした。

金融/財政総動員

3月15日、FRBは臨時の会合を開き、パウエル議長は危機対応を表明。事実上のゼロ金利政策と大量の国債などを買い入れる量的緩和の再開を決定しました。 www3.nhk.or.jp

その後通常の失業保険にさらに600ドル/週を上乗せするなど、政府が国民のポケットに金を突っ込む平時であれば考えられない政策を含むCARES法案が米議会で合意。 www.washingtonpost.com

これらの政策により市中のマネーはM1/M2を見ると判るように急拡大。 f:id:nerimplo:20201230172930j:plainf:id:nerimplo:20201230172941j:plain

経済学史に深く刻まれる出来事でしょう。

急回復の春

4月、5月は大きく回復し、特に5月の月間確定損益は過去最高となりました。 スクリーニングに出てくるバリュエーションを気にせずとにかく平時に普通に戻ればある程度稼げる時価総額大きめの優良企業を現物で買い始めました。 5月に月間で過去最大の確定利益となった要因としては、3月末から4月にかけて建てた信用買いポジの貢献が大きいと自己分析してます。

ヨコヨコの夏/秋

その後7-8月の利確と損切りの夏を過ごし、一進一退の秋になり、10月中旬の新興市場ピークアウトの余波を受けました。 この頃、AI Insideが大きく貢献した一方、決算ギャンブルをしたパソナ空売りポジションが決算発表後に見事に逆サイドに行くS高となり大きな損失となりました。

8月以降は海運セクターのポジションを初めて作りました。郵船と川崎汽です。読み通りどちらの業績も市況の回復を享受し、株価はそれに反応した形となりました。

大統領選後

大統領選から12月にかけて時価総額上位のバリュー/クオリティのカムバックを享受できました。シクリカルの機械や化学セクターにうまく乗れました。特に12月にかけてYH水準で推移できたのは夏頃にポジション作ったレノバです。エネルギー政策関連として注目される事は当初は全く考えてなかったのですが、自前で発電所を建てられる優位性と今後の投資額、売電設備の着実な積み上がりを期待して5-7年のスパンで考えての投資でした。ポジション量も現物としては多めだったので、現物PFのパフォーマンスに大きく貢献しました。ちなみに同株は12月後半で全株利確しました。

振り返ってみると、急落→急回復→ヨコヨコ→上昇とPFとマーケットは大方同じように推移しました。地合いに助けられた1年だったと思います。

来年のビュー

COVID19については現在の第3波をやり過ごす過程でモデルナやファイザーのmRNAワクチン、アストラゼネカの安価なワクチンが世界的に普及していくことでしょう。順調にいけばアメリカは来秋にも集団免疫を獲得することになり、消費や設備投資の回復、失業率の下落、COVID19により生じたスラック解消による賃金増と好調なマクロ経済環境に戻ると予想しています。

来年1-3月は、平時の経済環境でうまくキャッシュを稼げそうな企業の押し目を狙う戦略でいくつもりです。全体的なマーケットの雰囲気を把握するために使っている25日移動平均線を上回る銘柄の割合を見つつ、信用枠ではシクリカルなセクターやテーマ株投資で上手く回していこうと思っています。

大統領選以降のセクター別騰落率

大統領選以降のセクター別騰落率でトップ10を調べてみました。

トップは総合電機。バフェット氏が今年、日本の商社株に初めて投資したと発表した総合商社セクターもランクインしてます。 ちなみに総合電機セクターにはソニー、日立、パナソニックなどが含まれています。 f:id:nerimplo:20201128221504p:plain

比較のために3月から大統領選までの騰落率トップ10はこちらになります。メンツがガラッと変わっているのがわかります。 f:id:nerimplo:20201128222004p:plain

勝ち馬に乗る

よく勝ち馬に乗るというアナロジーでモメンタム投資が語られます。モメンタム戦略では中期(3-12ヶ月)の株価パフォーマンスに基づいてポートフォリオを構築します。

今回は定義を変えて昨年の騰落率がプラスでかつ今年の騰落率がそれを上回っている「勝ち馬であり続ける勝ち馬」をみてみました。

まず2018年をプラスで引けた銘柄は525銘柄しかありません。全上場企業がだいたい3700社として、14%程度です。

そのうち、年初来で18年の騰落率をも上回っている企業は182社あります。

そのうちのトップ10は下記のテーブルの通りです。

コード セクター 社名 2018年騰落率 年初来騰落率
7748 製造用機械・電気機械 ホロン 127.24 134.43
3849 システム・ソフトウエア 日本テクノ・ラボ 102.93 186.4
3983 広告 オロ 89.99 128.2
7564 衣料品・服飾品小売 ワークマン 86.48 152.11
6067 企業向け専門サービス メディアフラッグ 81.23 108.46
9698 システム・ソフトウエア クレオ 60.51 76.57
6544 建設資材・設備 JESHD 52.56 69.55
4734 システム・ソフトウエア ビーイング 50.98 56.74
2492 システム・ソフトウエア インフォマート 48.23 88.05
3038 食品卸 神戸物産 47.67 101.48

1位のホロンはで半導体電子ビーム測定・検査装置専業の研究開発型企業(四季報より)だそうです。調べるまで聞いた事ない会社でした。

上記182社からさらにセクター別に銘柄数をカウントしてみると、システム・ソフトウェア、バイオ・医薬品、飲食店という順になりました。よく日経新聞に載っている産業天気図で好調さが伺えるセクターから高いパフォーマンスを出す企業が出ている事がわかります。だいたいこのセクターはアメリカ株でもパフォーマンスがよく、先月のNBRでも出演者のFMが似た様な話をしていました。

セクター 銘柄数 年初からの騰落率
システム・ソフトウエア 37 67.4
バイオ・医薬品関連 10 46.7
飲食店 10 15.8
コンテンツ制作・配信 9 67.2
企業向け専門サービス 8 113.9
製造用機械・電気機械 7 65.3
不動産・住宅 7 48.9
建設・土木 7 21.2
陸運 7 17.4
広告 6 67.8

NBRの10月29日放送回より

S&P500が新高値をつけたわけですが、Nightly Business ReportでCIOのRaymond James氏が1. リセッションはこない、2. 予想より良い利益の伸び、3.季節性を理由にこのトレンドは持続すると解説しています。

特に3.の季節性については、4Qが歴史的にパフォーマンスがよい四半期であること、大統領選の前年であることをあげています。ちなみに過去60年間で行われた16回の大統領選のうち、S&P500がプラスになった年は14回あります。

同氏が推奨するのは米大型株、特にIT、通信サービス、ヘルスケアセクターです。 f:id:nerimplo:20191030162455p:plain

f:id:nerimplo:20191030162458p:plain

番組の動画はこちらから。 www.youtube.com

LambdaとSQSを使った自動化

決算発表が過ぎ、やっぱり進捗率を網羅的に把握しておく必要あるなと再認識するに至りました。よく株探で上方修正期待の高進捗率ランキングなどと記事が出ますが、幅広くみたい場合はやはり手元にデータセットを作るしかないのではないかと。こうした動機から、せっかくなので今まで触った機会が少なかったAWSを使って日次で進捗率を把握する仕組みを作ってみました。

処理の流れ

  1. PuppeteerスクリプトをHeroku Schedulerで毎日定期実行。
  2. 結果をCSVにしてAWS S3に保存。
  3. S3にCSVファイルが保存されたタイミングでAWS SQSを介してファイルが生成された旨のイベントを生成、AWS Lambdaを実行。
  4. LambdaはPythonのPandasで前処理しているイメージ。不用なカラムの除去、データ型の変更、カンマ区切りの除去、憎き全角スペースの除去などを行います。結果はHeroku Postgresにupsertする。

成果

こんな感じで進捗率が把握できます。18年分も取得して決算期変更等がなければ前年同期比の比較ができるようにしました。 f:id:nerimplo:20190826131031p:plain

ポイント

Pandasはdataframeをto_sqlする際に、PostgreSQLにupsertする仕組みがありません。 Dataframeを一度array of dictionaryに変換、sqlalchemy.dialects.postgresqlを使ってupsertのステートメントを作るようにしました。

python - Bulk Upsert with SQLAlchemy Postgres - Stack Overflow

コスト

AWS側は無料枠を使い切るまで残り98%くらいあり、このペースの日次の実行だと十分余裕がありそうです。 Heroku Postgres側は毎月$9のHobby Basicを使っています。

ゼロからわかるAmazon Web Services超入門 はじめてのクラウド (かんたんIT基礎講座)

ゼロからわかるAmazon Web Services超入門 はじめてのクラウド (かんたんIT基礎講座)

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

Amazon Web Services 業務システム設計・移行ガイド (Informatics&IDEA)

バフェット・コードのAPI機能を使ってデータをPandasのDataframe化する

年初にCAMPFIREでバフェット・コードがファンドレイズしてまして、有料機能がお得に使えるので一口申し込みました。

以下、その有料機能の目玉の一つであるAPI機能を使ってデータを取得、PandasでDataframe化するまでの記録です。

手順としては、

  • バフェットコードのマイページ画面からAPIキーを取得。

f:id:nerimplo:20190326174520p:plain

  • API仕様書を読みながらURLパラメータをセット

仕様書はこちらです。https://docs.buffett-code.com/

例えば、1333マルハニチロの2017Q1から2018Q4のデータが欲しい場合、curlだとこんな感じになります。

curl "https://api.buffett-code.com/api/v1/quarter?tickers=1333&from=2017Q1&to=2018Q4" \
     -H 'x-api-key: YOUR_API_KEY'
  • Pythonのrequestsモジュールを使いリクエストして戻ってきたJSONをPandasのDataframe化

が大体の流れです。

作業に使ったJupyter Notebookをgistで共有してます。詳しくはこちら。