首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alpha :遍历股票列表以获得技术指标

Alpha :遍历股票列表以获得技术指标
EN

Stack Overflow用户
提问于 2020-12-31 20:33:16
回答 1查看 656关注 0票数 1

,我有一个5只股票的列表,我想用Alpha的TechIndicators获取数据。下面是我导入和定义的内容:

代码语言:javascript
复制
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)

代码语言:javascript
复制
data, meta_data = ti.get_sma(symbol=ticker, interval='weekly')

如何运行对top5列表的查询?我首先认为它应该是这样的:

代码语言:javascript
复制
for ticker in top5:
    ticker_sma[ticker], ticker_meta_sma[ticker] = 
    ti.get_sma(symbol=ticker, interval='weekly')

或像这样:

代码语言:javascript
复制
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()

,但我对这种方法没有任何运气。我得到了一个名字错误.

代码语言:javascript
复制
NameError: name 'ticker_sma' is not defined

...which对我来说很奇怪,因为我成功地获得了一只股票的数据,例如微软,下面是:

代码语言:javascript
复制
msft_sma, msft_meta_sma = ti.get_sma(symbol='msft', interval='weekly')

如果我删除了,然后运行这个get请求.

代码语言:javascript
复制
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”}

谢谢你阅读这个问题和你的答案!

EN

回答 1

Stack Overflow用户

发布于 2021-01-02 22:47:54

您正在尝试动态创建变量,这并不是非常简单。下面向您展示了如何做到这一点,但您可能还需要考虑将每个符号读入其自己的dataframe中,或者将它们连接在一起,或者单独保存。这实际上取决于您对数据所做的操作(使用活的还是为以后保存的)。

这将创建循环中的每个变量,并将文本分配给它,这样您就可以知道发生了什么。

代码语言:javascript
复制
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'

然后打印一些作为证据:

代码语言:javascript
复制
In [6]: print(CELH_sma)
   ...: print(WDC_sma)
   ...: print(IMAB_meta_sma)
CELHsma_value
WDCsma_value
IMABsma_meta_value

我无法测试,但我认为对你有用的是:

代码语言:javascript
复制
for ticker in top5:
    globals()['{}_sma'.format(ticker)], globals()['{}_meta_sma'.format(ticker)] =
    ti.get_sma(symbol=ticker, interval='weekly')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65525347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档