,我有一个5只股票的列表,我想用Alpha的TechIndicators获取数据。下面是我导入和定义的内容:
from alpha_vantage.timeseries import TimeSeries
from alpha_vantage.foreignexchange import ForeignExchange
from alpha_vantage.cryptocurrencies import CryptoCurrencies
from alpha_vantage.techindicators import TechIndicators
from alpha_vantage.sectorperformance import SectorPerformances
import datetime
import numpy as np
import pandas as pd
top5 = ['CELH', 'MAXR', 'CD', 'WDC', 'IMAB']查询技术指标的返回数据(数据)和字典(meta_data)
data, meta_data = ti.get_sma(symbol=ticker, interval='weekly')如何运行对top5列表的查询?我首先认为它应该是这样的:
for ticker in top5:
ticker_sma[ticker], ticker_meta_sma[ticker] =
ti.get_sma(symbol=ticker, interval='weekly')或像这样:
sma = {}
for ticker in top5gainers:
gainers_sma[ticker], gainers_sma_data[ticker] =
ti.get_sma(symbol=ticker, interval='weekly')
gainers_sma.keys()
gainers_sma.values(),但我对这种方法没有任何运气。我得到了一个名字错误.
NameError: name 'ticker_sma' is not defined...which对我来说很奇怪,因为我成功地获得了一只股票的数据,例如微软,下面是:
msft_sma, msft_meta_sma = ti.get_sma(symbol='msft', interval='weekly')如果我删除了,然后运行这个get请求.
for ticker in top5:
data_sma, meta_sma = ti.get_sma(symbol=ticker, interval='weekly')...then根据meta_sma中的元数据,我只获得了5个代码中的第4个代码的数据:
{“1:符号”:“IMAB”,“2:指示器”:“简单移动平均线(SMA)”,“3:最后刷新”:“2020-12-31”,“4:间隔”:“每周”,“5:时间段”:20,“6:序列类型”:“关闭”,“7:时区”:“US/ Last”}
谢谢你阅读这个问题和你的答案!
发布于 2021-01-02 22:47:54
您正在尝试动态创建变量,这并不是非常简单。下面向您展示了如何做到这一点,但您可能还需要考虑将每个符号读入其自己的dataframe中,或者将它们连接在一起,或者单独保存。这实际上取决于您对数据所做的操作(使用活的还是为以后保存的)。
这将创建循环中的每个变量,并将文本分配给它,这样您就可以知道发生了什么。
top5 = ['CELH', 'MAXR', 'CD', 'WDC', 'IMAB']
for ticker in top5:
globals()['{}_sma'.format(ticker)] = ticker + 'sma_value'
globals()['{}_meta_sma'.format(ticker)] = ticker + 'sma_meta_value'然后打印一些作为证据:
In [6]: print(CELH_sma)
...: print(WDC_sma)
...: print(IMAB_meta_sma)
CELHsma_value
WDCsma_value
IMABsma_meta_value我无法测试,但我认为对你有用的是:
for ticker in top5:
globals()['{}_sma'.format(ticker)], globals()['{}_meta_sma'.format(ticker)] =
ti.get_sma(symbol=ticker, interval='weekly')https://stackoverflow.com/questions/65525347
复制相似问题