8

我正在使用 python 及其框架烧瓶来构建前端后端项目。该项目需要库存数据。在它停止工作之前我使用了 Yahoo 的 Api,现在我使用的是 Alpha Vantage API。它运行得很好,但我在纳斯达克、道琼斯等股票市场指数方面遇到了困难。我在雅虎使用他们的股票代码(如符号)(^IXIC、^DJI...)但它似乎不起作用具有阿尔法优势。有人用过 alpha vantage 吗?

获取 Microsoft 数据的 url 示例:
https ://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&outputsize=full&apikey=CN3J

Python代码:

@app.route('/pfa/medaf/IndAct', methods = ['POST'])
def donnee():
Action1 = request.form['code1']
Action2 = request.form['code2']
Indice = request.form['Ind']

url="https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol="
urlInd=url+Indice+"&apikey=CN3J"
urlAct1=url+Action1+"&apikey=CN3J"
urlAct2=url+Action2+"&apikey=CN3J"

respInd = urlopen(urlInd)
dataInd = json.loads(respInd.read().decode(respInd.info().get_param('charset') or 'utf-8'))

coursIndice=[]
listInd=[]
for elt in dataInd['Time Series (Daily)'].keys():
    listInd.append(elt)
listInd.sort(reverse=True)
for e in listInd:
    coursIndice.append(float(dataInd['Time Series (Daily)'][e]['4. close']))

lenIndice = len(coursIndice)

rentabIndice=[]
for j in range(lenIndice-1):
    rentabIndice.append(100*(coursIndice[j+1]/coursIndice[j] -1 ))

moyenneMarche=sum(rentabIndice)/len(rentabIndice)

HTML 代码:

<section class="cols pad_left1">
    <form action = "http://localhost:5000/pfa/medaf/IndAct" method = "post">
    Tickers:
    <input type = "text" name = "code1" placeholder="Ticker here"><br>
    <input type = "text" name = "code2" placeholder="Ticker here"><br><br>
    Indice:<br>
    <select name="Ind" size="1" >
    <option   value="^IXIC" > NASDAQ Composite    </option>
    <option   value="^FCHI" > CAC40    </option>
    <option   value="^DJI" > Dow Jones</option>
    </select><br><br>
    <input type = "submit" value = "submit" />
    </form>
</section>
4

3 回答 3

11

我有一个用于 alphavantage 的 python 库(MIT 许可)https://github.com/RomelTorres/alpha_vantage你可以看看它。我在那里分享了一些关于如何使用该库的示例。

于 2017-07-06T11:19:10.100 回答
3

我能够使用您问题中的示例 URL 和我的密钥获取索引数据,并进行了以下更改:

使用 IXIC 而不是 ^IXIC。使用 DJI 而不是 ^DJI。使用 FCHI 而不是 FCHI。

例如 https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=FCHI&outputsize=full&apikey=

基本上,只需从符号中删除 carat(^) 前缀。

于 2017-08-01T11:09:44.833 回答
-1

您可以通过导入连接到时间序列

import pandas as pd
from alpha_vantage.timeseries import TimeSeries
import time
ts = TimeSeries (key=api_key, output_format = "pandas")
daily_results = ts.get_daily_adjusted(symbol="MSFT")
print(daily_results)

或者对于资产负债表等其他东西

 base_url = 'https://www.alphavantage.co/query?'
 params = {'function': 'INCOME_STATEMENT',
     'symbol': stock_ticker,
     'apikey': keys}
 response_data_income = requests.get(base_url, params=params)

 data_income_annual_last_fiscalDateEnding = 
 response_data_income.json()['annualReports'][0]['fiscalDateEnding']
于 2020-09-07T20:02:59.547 回答