質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

複数銘柄で株価指標を表示するプログラムを作成したい

ryou4r0
ryou4r0

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

1049閲覧

投稿2021/03/10 07:26

編集2021/03/10 07:46

前提・実現したいこと

Pythonで複数の銘柄で複数の株価指標を表示するプログラムを作成したい

作成したコードでは1つの銘柄の指標結果しか表示されないため、抜け・誤りがあれば教えていただきたいです。

発生している問題・エラーメッセージ

1つの銘柄分の指標結果しか表示されない

該当のソースコード

Python

import datetime as dt from datetime import timedelta as td import pandas as pd import pandas_datareader.data as web import math import numpy as np import talib as ta end = dt.datetime.today() start = end - td(days=1000) Ticker = ['MSFT','FB','AAPL','CHTR','ACC','ACH','ACHC','ACI','ACIA','ACIW','ACLS','ACM'] df = web.DataReader(Ticker[0],'yahoo',start,end) df['mfi'] = ta.MFI(df['High'], df['Low'], df['Adj Close'], df['Volume'], timeperiod=14) df[Ticker[0]] = df['mfi'] da = pd.DataFrame(df[Ticker[0]].dropna(how='any')) for i in range(1,len(Ticker)): try: globals()['df'+str(i)] = web.DataReader(Ticker[i],'yahoo',start,end) globals()['df'+str(i)]['mfi'] = ta.MFI(globals()['df'+str(i)]['High'], ['df'+str(i)]['Low'], ['df'+str(i)]['Adj Close'], ['df'+str(i)]['Volume'], timeperiod=14) da[Ticker[i]] = globals()['df'+str(i)]['mfi'].dropna(how='any') except: pass pd.options.display.precision = 2 da.tail()

試したこと

上記プログラムの実行結果
Date     MSFT
2021-03-03 32.47
2021-03-04 26.27
2021-03-05 30.37
2021-03-08 29.91
2021-03-09 36.59

表示したい結果
Date     MSFT  FB  AAPL  ....
2021-03-03 32.47  00.00  ....
2021-03-04 26.27   00.00   ....
2021-03-05 30.37   ....   ....
2021-03-08 29.91   ....   ....
2021-03-09 36.59   ....   ....

補足情報(FW/ツールのバージョンなど)

同様のプログラムで指標をRSIにした場合は問題なく表示できました。

Python

import datetime as dt from datetime import timedelta as td import pandas as pd import pandas_datareader.data as web import math import numpy as np import talib as ta end = dt.datetime.today() start = end - td(days=1000) Ticker = ['MSFT','FB','AAPL','CHTR','ACC','ACH','ACHC','ACI','ACIA','ACIW','ACLS','ACM'] df = web.DataReader(Ticker[0],'yahoo',start,end) df['rsi'] = ta.RSI(df['Adj Close'], timeperiod=14) df[Ticker[0]] = df['rsi'] da = pd.DataFrame(df[Ticker[0]].dropna(how='any')) for i in range(1,len(Ticker)): try: globals()['df'+str(i)] = web.DataReader(Ticker[i],'yahoo',start,end) globals()['df'+str(i)]['rsi'] = ta.RSI(globals()['df'+str(i)]['Adj Close'], timeperiod=14) da[Ticker[i]] = globals()['df'+str(i)]['rsi'].dropna(how='any') except: pass pd.options.display.precision = 2 da.tail()

プログラムの実行結果
MSFT FB AAPL CHTR ACC ACH ACHC ACI ACIA ACIW ACLS ACM
Date
2021-03-03 41.31 41.40 37.13 43.28 48.66 72.22 58.04 61.93 NaN 38.36 53.12 56.42
2021-03-04 40.43 43.74 34.71 46.34 42.25 63.13 54.95 63.81 NaN 35.40 45.50 52.65
2021-03-05 47.50 50.12 37.63 53.07 48.07 56.73 57.21 61.03 NaN 43.74 49.61 58.43
2021-03-08 42.77 43.02 31.65 48.42 50.97 58.45 62.58 52.44 NaN 46.20 43.42 59.54
2021-03-09 50.78 51.60 41.08 49.40 49.57 56.63 64.01 53.00 NaN 50.19 51.21 62.00

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

y_waiwai

2021/03/10 07:30

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
ryou4r0

2021/03/10 07:47

ご指摘ありがとうございます。 補足情報内のプログラムを'''で囲みましたのでお知らせいたします。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。