kharukaのブログ~お金と技術とキャリア~

Edu Fin~金融×教育~若いうちからお金について学ぶってだいじ!学んだテクノロジーはみんなの財産。過去、現在、将来の人生についてのブログ

実践データ解析- 株式市場その1-(2018年1月31日更新)

目次

前提条件

  • OS:Windows 10 64-bit, version 1607

  • Anaconda 4.4.0(Python 3.6 version 64-bit)インストール

実践データ解析 目次

1. タイタニックその1

kharuka2016.hatenablog.com

2. タイタニックその2

kharuka2016.hatenablog.com

3. タイタニックその3

kharuka2016.hatenablog.com

4. タイタニックその4

kharuka2016.hatenablog.com

5. 株式市場のデータ解析入門

6. 株式市場その1

7. 株式市場その2

8. 株式市場その3

9. 株式市場その4

10. 株式市場その5

11. 選挙とデータ解析

12. 選挙その1

13. 選挙その2

14. 選挙その3

株式市場その1

1. コマンドプロンプトでJupyter Notebookを起動します。

jupyter notebook

2. 写経したソースコードGitHub Repositoryを参照してください。

3. 課題

3.1. 株価の時間による変化を見てみる。
3.2. 日ごとの変動を可視化する。
3.3. 移動平均を計算する
3.4. 複数の株価の終値の相関を計算する
3.4. 複数の株価の変動の関係を見る
3.5. 特定の株のリスクを計算する
3.6. シミュレーションを使った未来の予測

4. 補足

4.1. from pandas.io.data import DataReaderの箇所で以下のエラーがでます。

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-3-94408a55e554> in <module>()
----> 1 from pandas.io.data import DataReader

C:\Users\<user name>\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\data.py in <module>()
      1 raise ImportError(
----> 2     "The pandas.io.data module is moved to a separate package "
      3     "(pandas-datareader). After installing the pandas-datareader package "
      4     "(https://github.com/pydata/pandas-datareader), you can change "
      5     "the import ``from pandas.io import data, wb`` to "

ImportError: The pandas.io.data module is moved to a separate package (pandas-datareader). After installing the pandas-datareader package (https://github.com/pydata/pandas-datareader), you can change the import ``from pandas.io import data, wb`` to ``from pandas_datareader import data, wb``.

4.2. エラーの指示通り pandas-datareader をインストールし、from pandas.io.data import DataReaderからfrom pandas_datareader import dataに修正します。

4.3. 修正方法が間違っているようなので更に次のようにimport pandas_datareader.data as webと修正します。

4.4. yahooから株価を取得する箇所も修正します。

修正前

for stock in tech_list:
    globals()[stock] = DataReader(stock,'yahoo',start,end)

修正後

for stock in tech_list:
    globals()[stock] = web.DataReader(stock,'yahoo',start,end)

4.5. しかし以下のようなエラーが出ます。困った。いろいろ調べていると現在yahoofinanceは使えないらしいです。

ConnectionError: HTTPSConnectionPool(host='finance.yahoo.com', port=443): Max retries exceeded with url: /quote/AAPL/history (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00000196A6B83C50>: Failed to establish a new connection: [WinError 10060] 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。',))

4.6. googlefinnanceで挑戦してみます。

4.6.1. googlefinance 0.7からtar.gzをダウンロードし、Anacondaのインストールフォルダ配下pkgsでファイルを解凍します。

例:

C:\Users\<user name>\AppData\Local\Continuum\Anaconda3\pkgs\googlefinance-0.7

4.6.2 ファイル解凍した後、googlefinance-0.7ディレクトリに移動します。

cd C:\Users\<user name>\AppData\Local\Continuum\Anaconda3\pkgs\googlefinance-0.7

4.6.3 パッケージをインストールします。

python setup.py install

4.6.4 googlefinanceの使い方がよくわからないため保留。

4.7. Anacondaのインストールパス配下にあるC:\Users\<user name>\AppData\Local\Continuum\Anaconda3\Lib\urllibのrequest.pyにプロキシの設定を試みるもエラー解消せず。

import urllib.request
proxy_support = urllib.request.ProxyHandler({'http': 'http://<proxy server name>:<port number>'},
                                            {'https': 'https://<proxy server name>:<port number>'})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)

4.8. URLからデータを引っ張ってくるのを諦め、stooqからcsvファイルをダウンロードし対処しました。なんだかなー、、、

4.9. 解決策がUdemyのQ&Aにありましたね。googlefinanceもyahoofinanceも現在はAPIを公開していないようですね。がっかり。

まずはquandlをpip installします。

www.quandl.com

訂正前

globals()[stock] = DataReader(stock,'yahoo',start,end)

訂正後

import quandl
for stock in tech_list:
    globals()[stock] = quandl.get('WIKI/{}'.format(stock),start_date=start,end_date=end)

4.10. Adj CloseがAdj. Closeになっているなどの変化はありますが問題なく使えます。

入門 Python 3

入門 Python 3

参考:

  • udemy 実践Pythonデータサイエンス

www.udemy.com