Alpha Vantage asyncio股票代码

问题描述

from alpha_vantage.async_support.techindicators import Techindicators
import asyncio

symbols = ['ADI','ADMA','ADMP','ADMS','ADNC','ADP','ADRA','ADRD','ADRE','ADRU','ADSK','ADTN','ADUS','ADVS','ADXS','ADXSW','AEGN','AEGR','AEHR','AEIS','AEPI','AERI','AETI','AEY','AEZS']
key = open('alphavantageAPI').read()

async def get_data(symbol):
ti = Techindicators(key,output_format='pandas')
data,_ = await ti.get_sma(symbol=symbol,interval='daily',series_type='close')
await ti.close()
return data

if __name__ == '__main__':
loop = asyncio.get_event_loop()
tasks = [get_data(symbol) for symbol in symbols]
group1 = asyncio.gather(*tasks)
results = loop.run_until_complete(group1)
loop.close()
print(results)

我有 25 个符号(股票代码)。在 Alpha Vantage 中,您每分钟可以收到 5 个代码

我需要收到 5 个股票代码并等待 1 分钟,然后是接下来的 5 个股票代码。也许有人可以告诉我我需要在这代码添加或更改什么。谢谢,

P.S 我知道 Premium ,但这是我需要解决的任务。

解决方法

您可以使用 sleep 函数为每个请求等待 12 到 15 秒。

这是伪代码:

import numpy as np
from time import sleep

symbols = ['ADI','ADMA','ADMP','ADMS','ADNC',...]

...
for symbol in symbols:
   data = getDataFrom(symbol)
   sleep(np.random.randint(12,15))
...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...