Цикл по всем тикерам NASDAQ по yfinance для получения дивидендной доходности
Все еще новичок в Python. Я скачал все тикеры с Nasdaq.
import ftplib
import os
import re
# Connect to ftp.nasdaqtrader.com
ftp = ftplib.FTP('ftp.nasdaqtrader.com', 'anonymous', 'anonymous@debian.org')
# Download files nasdaqlisted.txt and otherlisted.txt from ftp.nasdaqtrader.com
for ficheiro in ["nasdaqlisted.txt", "otherlisted.txt"]:
ftp.cwd("/SymbolDirectory")
localfile = open(ficheiro, 'wb')
ftp.retrbinary('RETR ' + ficheiro, localfile.write)
localfile.close()
ftp.quit()
# Grep for common stock in nasdaqlisted.txt and otherlisted.txt
for ficheiro in ["nasdaqlisted.txt", "otherlisted.txt"]:
localfile = open(ficheiro, 'r')
for line in localfile:
if re.search("Common Stock", line):
ticker = line.split("|")[0]
# Append tickers to file tickers.txt
open("tickers.txt","a+").write(ticker + "\n")
Я хочу использовать этот файл ticker.txt и просмотреть его в yfinance, чтобы найти дивидендную доходность и коэффициент PE, если это возможно. Я получаю следующее: IndexError: индекс списка вне допустимого диапазона. Я бы хотел это исправить. Как я могу это исправить и создать вывод со всеми акциями Nasdaq с дивидендной доходностью и коэффициентом PE? Ниже мой второй сценарий.
import bs4
import requests
from bs4 import BeautifulSoup
import yfinance as yf
dictionary = {}
with open("tickers.txt") as f:
stocks = f.read().splitlines()
for t in stocks:
ticker = yf.Ticker(t)
#dictionary[t] = ticker.info["priceToBook"]
dictionary[t] = ticker.info["dividendYield"]
#dictionary[t] = get_pe_ratio(t)
print(dictionary)
f = open("DivYield.txt", "w+")
f.write( (t+1))