问题描述
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))
...