Recuerdo haber visto eso en algún lugar, ya no puedo encontrarlo. ¿Alguien sabe cómo puedo obtener toda la lista de acciones en Yahoo finance?
O incluso todas las acciones estadounidenses, tal vez Russell 1000/2000/3000...
Recuerdo haber visto eso en algún lugar, ya no puedo encontrarlo. ¿Alguien sabe cómo puedo obtener toda la lista de acciones en Yahoo finance?
O incluso todas las acciones estadounidenses, tal vez Russell 1000/2000/3000...
Puedes intentar esto - baja 400000 tickers. https://github.com/mlapenna7/yh_symbol_universe
YQL parece fallar en consultas con algo como '%AM%' y tampoco hay otra forma de obtener la lista de todos los símbolos de acciones. pero creo que esto puede hacer el truco..
select * from yahoo.finance.industry where id in (1,2,3....260)
esto te dará una lista de empresas y sus símbolos. empieza con select * from yahoo.finance.industry where id in (112) y ve si funciona.
Para acciones comunes, puedes encontrar la lista aquí.
Hay 69k acciones de 49 intercambios.
Además, estos tickers cumplen con el estándar de Yahoo Finance.
Aquí está el código para extraer todos los símbolos presentes en ese filtro de yahoo-finance. Puedes simplemente crear un filtro aquí
He modificado un poco el código porque yahoo-finance devolvía una respuesta 404 vacía al trabajar con el módulo de solicitudes de python. Similar a este problema / solución
Aquí está el código completo funcionando.
import requests
import json
import time
# Modificar BASE_URL según corresponda
BASE_URL = "https://finance.yahoo.com/screener/unsaved/79fce2f7-82fe-49ec-8098-88add84138ec?dependentField=sector&dependentValues=&offset=OFFSET&count=COUNT"
cnt = 100
offset = 0
flag = 1
tempo = 10
name_to_symbol = []
total = 0
while flag > 0:
url = BASE_URL.replace("OFFSET", str(offset))
url = url.replace("COUNT",str(cnt))
offset += cnt
response = requests.get(url, headers={'User-Agent': 'Custom'})
s = str(response.text)
jsonArrayStart = s.find('"results":{"rows"') + 18
jsonArrayEnd = jsonArrayStart + 1
while s[jsonArrayEnd] != ']':
jsonArrayEnd += 1
jsonArrayString = s[jsonArrayStart: jsonArrayEnd+1]
jsonArray = json.loads(jsonArrayString)
if len(jsonArray) != cnt:
flag = 0
total += len(jsonArray)
for obj in jsonArray:
if 'longName' in obj:
name_to_symbol.append([obj['symbol'], obj['longName']])
elif 'shortName' in obj:
name_to_symbol.append([obj['symbol'], obj['shortName']])
else:
name_to_symbol.append([obj['symbol'], obj['symbol']])
time.sleep(10)
name_to_symbol
P.D - Disculpa por la tardanza en responder. Además, he rechazado todas las ediciones ya que eran irrelevantes y he arreglado el código ahora. En el futuro te recomendaría comentar en la publicación en lugar de sugerir una edición incorrecta
Espero que esto ayude
FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.
2 votos
Posible duplicado de ¿Dónde descargar la lista de todas las acciones comunes negociadas en NYSE, NASDAQ y AMEX?
0 votos
Si deseas datos actualizados diariamente, puede que quieras revisar esta API rapidapi.com/logicione/api/…