У меня есть список биржевых тикеров. Информация взята из Yahoo финансов. Мой код Python вычисляет ежедневный процентный доход / убыток каждого из тикеров и показывает пять самых высоких тикеров.
Проблемы, с которыми я сталкиваюсь:
- Когда заканчивается дневной процент тикера с 0%,
- Когда Yahoo представляет пустой (черный) график.
В обоих случаях программа прекращает печать с помощью try / кроме: «Ошибка, один из тикеров равен 0 % ".
Можно ли завершить программу или обойти ошибку и напечатать имя тикера, вызвавшего ошибку?
Большое спасибо,
Даниэль
Вот код:
! Pip install ffn
import ffn
import pandas as pd
import numpy as np
import time
import traceback
from matplotlib import pyplot as plt
plt.style.use('fivethirtyeight')
#from scipy.stats import norm
%matplotlib inline
start = time.perf_counter()
tickers = ['A','AA','AACG','AAL','AAME','AAN','AAON','AAP','AAPL','AAT','AAWW','AAXN','AB','ABBV','ABC','ABCB','ABEV','ABG','ABEO','ABIO',]
try:
df = ffn.get(tickers, start='04/30/2020',end='12/31/2020').to_returns().dropna()
#ticker_error = tickers.pop()
#print(ticker_error)
sums = df.select_dtypes(pd.np.number).sum()
sort_sums = sums.sort_values(ascending = False)
print(df.shape)
finish = time.perf_counter()
print(f'Finished in {round(finish - start,2)}second(s)')
print('---------------')
print('% RETURN')
print('---------------')
print(sort_sums.as_format('.2%').head(40))
except:
ticker_error = tickers.pop()
print(ticker_error)
print('One of the tickers is ZERO %')
pass