ラズベリーパイで製作する株式銘柄分析アプリ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150223/84e9d560-fcff-d343-6722-4c5cc300ec89.png)

# 1. モチベーション

あるキッカケから株式投資をやるようになり、個人投資家としてデビューしました。株式投資を続けるには、

- 保有銘柄の終値取得
- テクニカル分析
- ファンダメンタル情報の取得

などの地道な作業が必要ですが、<font color="Red">これらを毎日手作業でやっていたらとても継続は無理ですね。</font>

また、ネット証券がリリースしたアプリを使って銘柄の情報収集ができますが、基本はアプリの仕様に縛られますので、好きにカスタマイズすることはできません。

そこで、

- 保有銘柄の日々の情報収集を自動化
- 好きなようにカスタマイズできる(例えば複数テクニカルチャートの同時閲覧など)

のようなことができれば、<font color="Red">情報取集にかかる時間を削減でき楽しく楽して株式投資できそうですね。</font>

◆テクニカル分析を自動化しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150223/55853060-db67-f0af-103a-1fae8a9020a3.png)

#2 株式投資ストラテジー

2年弱株式投資を勉強で取り組んできましたが、色々と試行錯誤した結果、自分のスタイルは以下の流れにしています。考え方ややり方は色々とあると思いますが、このやり方は、個人投資家のメリットである時間を味方につけたいわゆる安全運転方式です。実際、短期間で大儲けはできませんが、損するリスクが少なく着実に利益を出せていける方法かと感じています。


![strategy.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150223/c826be62-f004-4885-090c-3a20185c6b98.jpeg)

内容を具体的に説明していきたいと思います。

###(1)投資銘柄の候補選定

四季報の発売時期に合わせて、投資銘柄候補の入れ替えを行います。投資候補銘柄候補の条件は以下の通りにしています。

* 営業利益率 10%以上
* 今年度の営業利益は増益見込みである
* PERが15以下
* 時価総額500億円以下
* 週足移動平均線(26週、50週)が上向き
* 四季報コメントがネガティブではない

これらの条件を満たす銘柄を条件抽出していき、投資銘柄候補を確定していきます。


###(2)投資銘柄の候補確定
投資銘柄の候補選定、確定を3か月に1回のサイクル(四季報の発売時期)で実施していきます。


###(3)投資銘柄候補銘柄の分析
銘柄の株価を毎日収集し、テクニカル分析を実施して買うタイミングがやってくるまで待機しておきます。また、個別銘柄のテクニカル分析だけではなく、モーニングサテライトなどの経済番組をチェックして、今の全体の流れがどういう感じなのかということを肌間隔でつかむようにもしています。例えば、今は米中貿易戦争の影響が表れており外需関係の銘柄は厳しい一方、内需関係の銘柄には資金が流れ込みやすい時期だとかを肌間隔でつかむという形です。

###(4)銘柄の購入
テクニカル分析や全体の流れを考えながら、株価が安いと判断すれば銘柄を購入します。

###(5)銘柄の購入
売るタイミングは買うタイミングよりも難しいと言われています。基本は損切は極力せず売却益がでるまで待機しておきます。機関投資家に比べ個人投資家のメリットを生かした時間や目標利益の制約もないということを利用しています。




#3 それではどこを自動化するか

もっとも時間がかかり継続しにくいところは、銘柄を毎日分析するということです。株式投資を始めたころはエクセルに書き出して、複数銘柄の分析をしていましたが本業もあるので、毎日継続するのは困難です。そこで、銘柄の分析作業をPythonを使い自動化させるシステムを設計しました。このシステムを設計・運用してから毎日の銘柄分析がクリック1つで実施できるようになり、とても楽ができています。



実装したい機能を下記に記載してみました。


###3.1 運用面要件

- 常時稼働させておく。
- 個人で利用する。(不特定多数への公開はしない)
- 株価データの更新は1日に1回実施する。
- 自宅にサーバーを設置する。
- 邪魔にならないこと(小型)
- 外出先からもデータの確認ができるようにする
- サーバー初期投資金額5000円程度
- 稼働コストは100円/月程度のこと


###3.2ソフト面要件

- 任意銘柄の登録や削除ができる
- 株価終値データの取得
- 決算日のアラート表示
- 過去1年間のReturnとvolatilityデータ
- 各種テクニカル分析の一斉表示
- 定時刻や好きな時間に取得データの更新可能
- すべての操作はWebブラウザから可能



以上の条件を考えてみました。まずはどんなデバイスを使用するのがいいか考えてましたが、この手の典型パターンはRaspberry Pi3です。当然ながら一般のPCに比べると計算能力が落ちますが、1日に1回データを更新すればよいので用途にはぴったり合致しますね。



###3.3サーバーの電気代


ちなみに常時稼働時の1カ月の電気代ですが、多く見積もって

2.5A × 5V × 24h × 31day × 1/1000 × 13.49 ≒ 125円 / 月

です。常に高負荷状態ではないので<font color="Red">実際の電気代は100円以下ではないかと思われます。</font>

クラウドサービスを借りたとしても1カ月100円までは安くならないので、コストパフォーマンスはよいかと思います。

#4. システム構成は？

システム構成は、下記(図1)をご覧ください。

(図1)
![system.JPG](https://qiita-image-store.s3.amazonaws.com/0/150223/d76ac76f-ffa9-0117-9132-97cd2764a85f.jpeg)

一連の処理を担うのはRaspberry Pi3です。Raspberry Pi3に下記の機能を実装させることにしました。

- 銘柄データ取得
- 銘柄データ分析
- 分析結果保存
- ユーザーインターフェース(Webサーバーが担う)

銘柄データ取得と銘柄データ分析はpythonを使って実装をしております。
ユーザーインターフェースはWebブラウザ上に表示されます。銘柄データの取得等の各種タスク指示は、Webブラウザを通じて行うようにします。


ユーザーが外出先から使用したい場合は、VPNシステムを使用し、自宅のRaspberry Pi3に接続します。VPNシステムは複数存在しておりますが、「hamachi」を使用すれば、個人利用にかぎり5台までVPNにより接続ができます(2019年1月26日現在)。「hamachi」の詳細説明は下記リンクをご覧ください。
https://www.gigafree.net/internet/share/hamachi.html


##4.1 どんな動作をしているのか

ユーザーがWebブラウザより銘柄データ取得の指示を行うと、Raspberry Pi3は、インターネットより指定された銘柄データを取得します。取得した銘柄データは、pythonにより処理されます。処理されたデータのうち、テキストデータはSQLITE3により、専用のデータベース（STORAGE0)に格納されます。また画像データは、Raspberry Pi3のストレージ(STORAGE1)上に保管されるようにしました。ユーザーは、閲覧したい銘柄をWebブラウザより指定すると、STORAGE0とSTORAGE1より該当のデータが引き出され、ブラウザ上に表示されることになります。

#5. 実際の動作を動画で紹介します。

下記サイトをご覧ください。
https://vimeo.com/352029932