簡體   English   中英

股票數據下載python沒有庫

[英]Stock data download python no library

我正在為學校(A-Level)編寫一個項目,需要能夠下載股票數據並繪制圖表。 我能夠使用 matplotlib 繪制數據圖表。 但是我只被允許使用一定數量的庫。

我需要在不導入庫的情況下獲取數據,但無法做到。 我試過從https://query1.finance.yahoo.com/v7/finance/download/ticker下載,但 crumb 值不斷變化,所以我不斷從錯誤的 cookie 中獲取錯誤。

我怎樣才能解決這個問題? 或者有更簡單的數據站點嗎?

我的代碼:

import requests

r = requests.get("query1.finance.yahoo.com/v7/finance/download/…)

file = open(r"MSFT.csv", 'w')

file.write(r.text) file.close()

https://datahub.io下載數據,或者您可以訂閱來自不同交易所的第三方供應商的實時數據饋送。

你說:“我只被允許使用一定數量的圖書館。” 這意味着什么? 您應該能夠使用您需要使用的任何庫,對吧。 運行下面的腳本。 它將從雅虎下載股票數據並繪制時間序列。

import pandas as pd  
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import scipy.optimize as sco
import datetime as dt
import math
from datetime import datetime, timedelta
from pandas_datareader import data as wb
from sklearn.cluster import KMeans
np.random.seed(777)


start = '2019-4-30'
end = '2019-10-31'
# N = 90
# start = datetime.now() - timedelta(days=N)
# end = dt.datetime.today()



tickers = ['MMM',
'ABT',
'ABBV',
'ABMD',
'AAPL',
'XEL',
'XRX',
'XLNX',
'XYL',
'YUM',
'ZBH',
'ZION',
'ZTS'] 

thelen = len(tickers)

price_data = []
for ticker in tickers:
    prices = wb.DataReader(ticker, start = start, end = end, data_source='yahoo')[['Adj Close']]
    price_data.append(prices.assign(ticker=ticker)[['ticker', 'Adj Close']])

df = pd.concat(price_data)
df.dtypes
df.head()
df.shape

pd.set_option('display.max_columns', 500)

df = df.reset_index()
df = df.set_index('Date')
table = df.pivot(columns='ticker')
# By specifying col[1] in below list comprehension
# You can select the stock names under multi-level column
table.columns = [col[1] for col in table.columns]
table.head()

plt.figure(figsize=(14, 7))
for c in table.columns.values:
    plt.plot(table.index, table[c], lw=3, alpha=0.8,label=c)
plt.legend(loc='upper left', fontsize=12)
plt.ylabel('price in $')

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM