企業の業績を把握するために株式を分析する

[以前](http://qiita.com/ynakayama/items/b3e3138231f910a0de77)に前編を書きましたからそろそろ後編かと思いきや、その話はもう少しだけ置いておいて今回は企業の業績を如実に反映した指標とも言える株価についての話です。

株価データを取得して、[加重平均](https://www.daiwa-am.co.jp/guide/term/ka/kajuu_1.html)や前日比を算出したりチャートを描画したりといったきめ細かな加工をしたいというニーズは大いにあると思います。このような場面では、実際に第一線の[クオンツ](http://www.ifinance.ne.jp/glossary/finance/fin056.html)らの手によって金融取引の現場で生み出された Python のライブラリ [pandas](http://pandas.pydata.org/) を使うと機能も豊富で開発も速いため非常に実用的であり強力で便利です。もっとも、 pandas そのものについては今までの記事でさんざん活用してきましたから今さら説明は不要でしょう。

[こちらの記事](http://qiita.com/HirofumiYashima/items/0ef0f1a631ef1ebb2a47)では pandas で株価データを時系列処理にかけて Gmail に配信するといった内容でまとめられています。 (ありがたいことにこの連載の記事も何点か引用されています。ありがとうございます) pandas の応用方法のひとつとして役に立ちます。

さて、他社に関わるさまざまな情報を分析したいとします。ここで、何を調査するにあたり何を説明変数とするとしても、多くの場合は柱となる評価の指標に業績 (= 株価) があると思います。そこで今回は株式の概況を調査するにあたり基本的なことをまとめておきたいと思います。

## テクニカル分析とランダム・ウォーク

昨年 2014 年は日本市場で運用するヘッジファンドの運成績は 5.4％ となり世界平均の 4.4％ を上回ったというデータがあります。

日本のヘッジファンド成績5.4％、世界平均上回る－銘柄選別好調 (1)
http://www.bloomberg.co.jp/news/123-NIGU486JIJUT01.html

一方で、米国のファンドや香港・シンガポールのヘッジファンドの年間成績の平均値は年間で 15% から 20％ だと言われています。また日本国内の独立系ファンドで、年間これ以上のリターンを出す資産運用会社もあります。

もちろんこれらは投資の資金の額がちがいますし、[レバレッジ](http://ja.wikipedia.org/wiki/%E3%83%AC%E3%83%90%E3%83%AC%E3%83%83%E3%82%B8)も異なります。レバレッジとは自分のお金を証拠金として預け入れることで、証拠金の数倍～数百倍の運転資金を利用して大きな取引ができるようになるというものです。最近では個人投資家の間で流行の FX では 400 倍程度のレバレッジがかけられるところもあります。これはうまくいけばハイリターンがのぞめますが、その分リスクが高く、ちょっとした為替レートの変動などで証拠金が不足してしまうといったことにもなります。もちろん 2 〜 3 倍程度や、あるいは 1 倍でも十分に有利な取引ができますので、なれないうちはそのほうが良いでしょう。

公開株式の日足データは Yahoo! ファイナンスのようなページでチェックできます。たとえば株式会社 DTS の株価は[このように](http://stocks.finance.yahoo.co.jp/stocks/detail/?code=9682)なっています。

[システムトレード](http://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%83%88%E3%83%AC%E3%83%BC%E3%83%89)と聞くと中にはコンピュータで自動的に売買するようなイメージを抱かれるかもしれませんが、過去の検証が可能な数値や指標などの組み合わせによりモデルを作成、バックテストによる検証を重ねた上で、一定の値になったら売買するといった方法で一貫した取引することを指します。

投資家に付きものの感情的な投資判断を除去し、客観的な指標に基づく判断ができるといったメリットがあります。システマティックであるため逆に不測の事態に弱く、また過度なルールの作り込みをしすぎて市場の個別の事情に基づくトレンドなどを拾いきれないといったデメリットもあります。

[テクニカル分析](http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E5%88%86%E6%9E%90)はチャートによる分析、数理計算による計算機での解析をする方法です。こう書くといかにも難解な数式を組み合わせて難しい技術を駆使しているようですが、今まで書いてきたデータ分析の基本的な方法を利用して人間の視覚的判断で取引価格のトレンドを見出したり変動値幅を計算するだけでもテクニカル分析であると言えます。

[ランダム・ウォーク理論](http://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%83%BB%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF%E7%90%86%E8%AB%96)はある意味このテクニカル分析の科学的意義を真っ向から打ち消す理論です。要するに猿がランダムにダーツを投げても、プロが選んだ取引を選択しても大差無いというもので、ちゃぶ台返しも良いところです。

とはいえ、実際には、投資家のもっとも初歩である的確な損切りをおこない、また大きなトレンドを確実におさえて損益をプラスに持っていくことが可能であるという主張があり、筆者もおおむね同じ考え方です。またテクニカル分析には、特定のルールによって定義付けをして取引モデルを構築することで、一時的感情による取引からの損失を防ぎ、古典的なファンダメンタル分析の一歩先を行く差別化を図るという意義もあるかと思います。

## 基本的な指標用語の意味

上に Yahoo! ファイナンスのリンクを貼りましたが、まずは基本的な用語を理解しなければ話になりません。たいていのサイトや取引ソフトでの表示でも出てくる主要な用語は一緒ですのでこれらを簡単に以下にまとめます。

#### PER (株価収益率) Price Earnings Ratio

```math
\frac {株価} {1 株あたり当期純利益}
```

株価が 1 株あたり当期純利益の何倍であるかを示します。株価収益率が高いということは利益に対し株価が割高であるということです。

#### PBR (株価純資産倍率) Price Book-value Ratio

```math
\frac {株価} {1 株あたり純資産}
```

株価が 1 株あたり純資産の何倍であるかを示します。 PER が利益に対しこちらは株主資本との関係をあらわします。注意するべき点は自己資本率もそれ以外も含んだ数値であるというところです。自己資本率が低い場合は要注意です。

#### ROA (総資産利益率) Return On Asset

```math
\frac {当期純利益} {前期及び当期の株主資本平均}
```

自己資本を元手として 1 年間でどれだけ利益を挙げたかという経営効率を測定する指標となります。

#### BPS (1 株あたり純資産) Book-value Per Share

```math
\frac {内部保留の合計額} {発行済株式数}
```

1 株あたりの株主資本です。利益準備金などの内部保留の合計額を発行済株式数で割って求められる財務指標です。財務分析において会社の安定性を見る指標、株式投資においては、株価の割安度を見る代表的な指標となります。


## どのように分析するか

以前に[回帰分析についてふれました](http://qiita.com/ynakayama/items/36b7c1640e6a02ce2e00)が、それでは株価の値幅から回帰式が求まるのでしょうか。一言で言うと求まりません。[こちら](http://www.data-artist.com/atelier/20141118.html)にある回帰分析で競馬の予想をしてみたという記事がわかりやすいでしょう。説明変数のピックアップをしても重相関係数が高くなりませんし、重相関が高くなるような説明変数のチョイスをすると恣意的であり現実を的確にあらわしたモデルとなりません。

[こちらの記事](http://sinhrks.hatenablog.com/entry/2015/02/04/002258)では Yahoo! ファイナンスから日本の株価情報を取得し、ローソク足チャートの描画を描く例がまとめられています。ありがたいことにこちらでもこの連載の記事が引用されています。 (ありがとうございます) もちろん今はそれぞれのサイトや、スマートフォンアプリなども充実しているので、チャートを見るだけならそれで十分だと思います。しかし数値に対して独自の分析モデルを適用して他の投資家との差別化を図るような分析をするにはまずは取り掛かりとなるのではないかと思います。

せっかくですのでリンク先の記事のコードをもとに、自前の保有銘柄情報 stock.txt に掲載された銘柄のデータを取得してプロットしてみます。クラスとメソッドについてはリンク先のものを利用します。

```py3
def read_data(stock):
    plotting._all_kinds.append('ohlc')
    plotting._common_kinds.append('ohlc')
    plotting._plot_klass['ohlc'] = OhlcPlot

    start = sys.argv[1]
    # start = '2014-10-01'

    try:
        stock_tse = get_quote_yahoojp(stock, start=start)
        stock_tse = stock_tse[-90:]
        stock_tse.to_csv("".join(["stockjp_", str(stock), ".csv"]))
        plt.figure()
        stock_tse.asfreq('B').plot(kind='ohlc')
        plt.subplots_adjust(bottom=0.25)
        plt.xlabel('Stock of ' + str(stock))
        plt.show()
        plt.savefig("".join(["stockjp_", str(stock), ".png"]))
        plt.close()

    except ValueError:
        print("Value Error occured in", stock)

def main():
    stocks = pd.read_csv('stocks.txt', header=None)
    for s in stocks.values:
        read_data(int(s[0]))
```

何社か例を挙げてみましょう。弊社 (DTS) と似た会社をいくつか挙げてみます。チャートは執筆時点のものです。

#### IT ホールディングス (3626)
![stockjp_3626.png](https://qiita-image-store.s3.amazonaws.com/0/38501/91e00738-0f1d-ff54-2700-1880c0f00c35.png)

#### NTT データ (9613)
![stockjp_9613.png](https://qiita-image-store.s3.amazonaws.com/0/38501/cdac158f-7545-d82d-165d-09ad612509a5.png)

#### システナ (2317)
![stockjp_2317.png](https://qiita-image-store.s3.amazonaws.com/0/38501/1b544449-1f16-3a22-778c-e2e4773212ae.png)

#### インフォコム (4348)
![stockjp_4348.png](https://qiita-image-store.s3.amazonaws.com/0/38501/ceea77b0-39ec-4eba-fe88-e3451b0b8641.png)

#### DTS (9682)
![stockjp_9682.png](https://qiita-image-store.s3.amazonaws.com/0/38501/b23c128c-15ef-b6df-b91f-99ae3e4575db.png)

テクニカル分析といっても、まずはチャートから基本となるトレンドをしっかりおさえることが大切です。これに加えて移動平均を捉えればまずは基礎となるでしょう。移動平均は自分で計算しても、株式ソフトウェアやサイトなどに頼ってもかまいません。

### SMA (単純移動平均線) Simple Moving Average

SMA5 や SMA25 のように使います。それぞれの数字を日数とした単純移動平均です。移動平均には色々ありますが数式でちがいを示すと次の通りです。日数の範囲を変更するとトレンドも全く逆に鳴ってしまうということもありますので、どこを基準としてどうとらえるか投資家目線で定めておく必要がある指標かと思います。

#### 単純移動平均

```math
SMA(n) = \frac {\sum_{i=0}^{n-1}(CLOSE_i)} {n}
```

#### 加重移動平均 (WMA)

```math
WMA(n) = \frac {\sum_{i=0}^{n-1}(n-i)(CLOSE_i)} {\sum_{i=1}^{n}n}
```

#### 指数平滑移動平均 (EMA)

```math
EMA(n) = EMA(n)_1 + \frac {2} {n+1}(CLOSE - EMA(n)_1)
```

なお
n = 平均化日数または指数
i = i 日前の指標
となります。

移動平均線はトレンドを判断したり、抵抗線や支持線として売買のシグナルにするなど幅広く使われます。テクニカル指標の中でも代表的なものです。

### 投資のポイント

まずは理想株価を PER から算出するのが良いでしょう。たとえば単純にこうとらえます。

```math
理論株価 = \frac {予想年間純利益} {発行済み株式数 × PER}
```

企業決算には注意を払う必要があります。具体的には営業利益を上方予想していたら、理論株価を計算する価値があります。理論株価を計算して、今の株価がそれより割安なら買いであると判断するのがセオリーです。 PER の値は、銘柄の分野によって異なるので四季報を参考にする際には単位に注意を払いましょう。

### 逆指値注文

FX などではもちろんのこと、株式の現物買いであってもまず[逆指値注文](https://www.sbisec.co.jp/ETGate/WPLETmgR001Control?OutSide=on&getFlg=on&burl=search_domestic&cat1=domestic&cat2=none&dir=info&file=domestic_stoporder.html)を覚えることは基本中の基本です。逆指値にはいろいろなやり方がありますが、とてもざっくりと分けると次の 3 種類になるかと思います。

1) ストップロスオーダー

最も基本。保有する銘柄あるいは信用建玉について、相場が思惑と反対に動いた場合に損失の拡大を最小限に防ぐためのものです。

株式を購入したらまずストップロスオーダーで損切りの条件指定で注文をするのが良いでしょう。初心者にはもちろん上級者にも必須と言えるテクニックかと思います。

2) トレンドフォロー

株価が上昇しそうな気配を読んで逆指値注文をして上昇機運に乗るような逆指値のしかたです。設定値を上回ったら買うという注文をします。上昇のトレンドがある銘柄をおさえたいときに役立ちます・

3) 利食い

一定の株価になったら自動的に売却して利益を確定する、という逆指値注文です。これもわかりやすいですね。

このように実際に投資をするなら逆指値を使いこなすことがとてもオススメです。特に 1. の損失の拡大を防ぐのはとても大切で、一人前の投資家になるのは損切りをしっかりできてこそと言っても過言でないほどです。

含み損はたしかに抱えていても売るまでは損失が確定しないかもしれませんが、含み損をかかえたままにするのは定石に反し悪手と言って疑いようがありません。これから投資をするかたは損切りを何％という風に最初に自分の中でルールを決めて取り掛かりますと、思わぬ大きな損をすることがありませんので安心です。

## まとめ

他社の動向などをとらえるには、まず根幹となる企業の業績の指標とも言える株式についても基本的な知識を学んでおくことが大切かと思います。

経済の基本的な仕組みを知った上で、さまざまな角度から分析することでより思索や考察が進むことでしょう。