見出し画像

米株銘柄でゾンビ株を探そう!

こういうツイートがありました。

ゾンビ銘柄とは

このツイートによるとゾンビ銘柄とは、

* 3年平均EBIT/金利コスト < 1
* market cap > $300million

のに条件を満たす銘柄のようです。

EBITとは、簡単に言ってしまうと、

会社が稼いだお金からコストを引いたもの。ただし、借金の金利と税金はまだ引いていない数字。

つまり、EBITよりも金利コストが大きければ、稼いだ金で借金を返せない会社、という事になります。

借金が大きすぎる会社って景気が悪くなるとヤバイよね?なんで生きてんのかわかんなくない?=ゾンビということっぽい。

で、このツイートの人は、そんなゾンビの株価がSPをオーバーウェイトしてんだけどwwwww(笑ってるかはしらんが)言ってると思われます。

ゾンビを探せ!

じゃ、いつもの通り Quantopian で探してみましょう!解説に貼ってある画像に、

Zombie companies = Three-year average EBIT / int exp ratio than 1 and market cap greater than $300 million

とありますので、これに当てはまる銘柄を探します。

画像1

EBIT

Quantopian では MorningStar がだしている EBIT 情報がありますので、これをサクッと使います。

EBITの三年平均を出すには、下記コードのように SimpleMovingAverage を使うといいでしょう。

ついでに、先日紹介した financial_health_grade も使ってみます。

import numpy as np
from quantopian.pipeline import Pipeline
from quantopian.research import run_pipeline

from quantopian.pipeline.data import USEquityPricing
from quantopian.pipeline.data.morningstar import Fundamentals
from quantopian.pipeline.filters import QTradableStocksUS

from quantopian.pipeline.factors import SimpleMovingAverage

def  make_pipeline():
   base_universe = QTradableStocksUS()
   close_price = USEquityPricing.close.latest
   
   ebit = Fundamentals.ebit.latest
   ebit_ma_3year = SimpleMovingAverage(
       inputs=[Fundamentals.ebit], 
       window_length=252 * 3
   )
   interest_expense = Fundamentals.interest_expense.latest
   market_cap = Fundamentals.market_cap.latest
   ebit_interest_expense = ebit_ma_3year / interest_expense 
   financial_health_grade = Fundamentals.financial_health_grade.latest
   
   # interest_expense > 0 を追加したのは、金利をもらっている会社をはずしたいから
   zombies = (ebit_interest_expense < 1) & (market_cap > 3000000 ) & (interest_expense > 0)
   
   return Pipeline(
       columns={
           'close_price':close_price,
           'ebit':ebit,
           'ebit_ma_3year':ebit_ma_3year,
           'market_cap':market_cap,
           'interest_expense':interest_expense,
           'ebit_interest_expense':ebit_interest_expense, 
           'zombies':zombies,
           'financial_health_grade':financial_health_grade,
           
       },
       screen=base_universe,
   )

## とりあえず直近のデータだけ取得する
pipeline_output = run_pipeline(
   make_pipeline(),
   start_date='2020-6-1',
   end_date='2020-6-5'
)      

今日現在、ゾンビ状態で、DクラスにいるSP500構成銘柄

2020/06/05現在で、ゾンビ状態にあるDクラスのSP500構成銘柄があるかどうか確認します。SP500銘柄は、 wikipedia からリストを手動で作成しました。

zombies = pipeline_output[(pipeline_output["zombies"]) 
                         & (pipeline_output["financial_health_grade"]=="D")].index.get_level_values(1).unique()

[sym for sym in list(map(lambda x: x.symbol, zombies)) if sym in sp500_composites]
['APA', 'NBL', 'COTY', 'DXC']

いました。ではこの4銘柄のYTDの動きを見ます。

from quantopian.research import prices, symbols
start='2020-01-01'
end='2020-6-5'
zombies_sym = [symbols(sym) for sym in list(map(lambda x: x.symbol, zombies)) if sym in sp500_composites]

close_price_zombies = prices(assets=zombies_sym,start=start, end=end,)
(close_price_zombies/close_price_zombies.shift(1)).cumprod().plot()

ダウンロード (4)

3月の一番底から見ると、 $COTY  は戻っていないように見えますが、ほか3つは戻っているように思えますね。

特にAPAとNBLはかなり戻しています。

戻している会社を調べる

APA

* 天然ガス、原油、液体天然ガス(NGLs)の探鉱・開発・生産を行う独立系エネルギー企業。2019年12月31日現在、原油5億5,100万バレル、NGLs1億8,600万バレル、天然ガス1兆6,000億立方フィートの総推定埋蔵量を有している

あー原油で上げてるのかな。

NBL

原油・天然ガスの取得、探査、開発、生産。20億5,000万バレルの石油換算の総証明埋蔵量

あーお前もか。

今後、大きく原油が下がるようなニュースがあった場合や、二番底に向かいそうな場合、もしくは金利が大きく上がりそうな場合(今、長期金利は上げつつありますね)、この2つはショート対象として考えてもいいかもしれません。

追記

リズ姉さんが、またゾンビの話をしていました。

Russell2000のゾンビヤバイ、って言ってる感じかな。







いいなと思ったら応援しよう!