Цикл по всем тикерам 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))

0 ответов

Другие вопросы по тегам