前提・実現したいこと
python3.5でリスト形式の株価データを使って、比率の計算をしたいのですが、
上手くいきません。
ここに質問の内容を詳しく書いてください。(説明があまりにも不十分だったので修正しました)
IDLE(Python3.5 64-bit)を使って、Pythonのjsmモジュールで日本の証券取引所に上場している次のように、株価を取得。
株価のデータ取得(銘柄コード, 開始日, 終了日)
def get_stock(code, start_date, end_date):
# 期間設定
year, month, day = start_date.split("/")
start = datetime.date(int(year), int(month), int(day))
year, month, day = end_date.split("/")
end = datetime.date(int(year), int(month), int(day))
# 株価データ取得
q = jsm.Quotes()
target = q.get_historical_prices(code, jsm.DAILY, start_date = start, end_date = end)
# 項目ごとにリストに格納して返す
date = [data.date for data in target]
open = [data.open for data in target]
close = [data.close for data in target]
high = [data.high for data in target]
low = [data.low for data in target]
return [date, open, close, high, low]
これを使って、
date に取得したい年月日を指定し、その日の株コード、株価データを得る。
data = get_stock(code, date,date)
この株価データ(リスト構造)を使って、次のような比率を計算したいのです。
hDd = (data[3] - data[4])/data[2] #発表日の(高値―安値)/終値
株価データがリスト構造で、エラーが出ました。
エラーメッセージ ``` hDd = (data[3] - data[4])/data[2] #発表日の(高値―安値)/終値 TypeError: unsupported operand type(s) for -: 'list' and 'list' 解決策として、あまり良い方法とは思いませんが、appendを見つけ、これを 利用して、appendでリストの0番目だけ取り上げたら、解決しました dd1 = data[2] dd2 = data[3] dd3 = data[4] h = []#リストの初期化 for i in range(1): h.append((dd1[i] - dd2[i])/dd3[i])
回答1件
あなたの回答
tips
プレビュー