Акции с высокой дивидендной доходностью часто являются отличной инвестиционной стратегией для инвесторов, стремящихся получать приток денежных средств каждый год. В данной статье буден создан скрипт на Python для отбора их на бирже NASDAQ.
Что такое дивидендная доходность?
Возьму определение из Википедии. Дивидендная доходность (англ. dividend yield) — это отношение величины годового дивиденда на акцию к цене акции. Данная величина выражается чаще всего в процентах.
Пример
При цене акции ОАО «Лукойл» 1124,37 рублей и дивиденде 28 рублей на акцию дивидендная доходность будет равна:
Так же необходимо обратить внимание, что многие растущие компании, такие как для примера Amazon и Yandex, не выплачивают дивиденды, поскольку они реинвестируют всю прибыль в развитие бизнеса. Поэтому дивидендная доходность для этих фирм будет равна нулю.
Расчет дивидендной доходности с помощью Python
Расчет дивидендной доходности является простой задачей, которую можно выполнить с помощью финансового API под названием fmpcloud и Python. Этот API предлагает несколько бесплатных запросов в день после регистрации.
Первым делом нужно извлечь список тикеров для всех акций, торгующихся на Nasdaq, по которым собираемся рассчитать дивидендную доходность.
import requests
demo = 'Ваш API CODE'
tickers = requests.get(f'https://fmpcloud.io/api/v3/symbol/available-nasdaq?apikey={demo}')
tickers = tickers.json()
symbols = []
for ticker in tickers:
symbols.append(ticker['symbol'])
После необходимо пройтись по полученному списку акций и получить финансовую информацию по компании. Так же необходимо понимать, что получаем только последние данные, а не за все время существование компании.
DivYield = {}
for company in symbols:
try:
companydata = requests.get(f'https://fmpcloud.io/api/v3/profile/{company}?apikey={demo}')
companydata = companydata.json()
latest_Annual_Dividend = companydata[0]['lastDiv']
price = companydata[0]['price']
market_Capitalization = companydata[0]['mktCap']
name = companydata[0]['companyName']
exchange = companydata[0]['exchange']
dividend_Yield= latest_Annual_Dividend/price
DivYield[company] = {}
DivYield[company]['Dividend_Yield'] = dividend_Yield
DivYield[company]['latest_Price'] = price
DivYield[company]['latest_Dividend'] = latest_Annual_Dividend
DivYield[company]['market_Capit_in_M'] = market_Capitalization/1000000
DivYield[company]['company_Name'] = name
DivYield[company]['exchange'] = exchange
except:
pass
Сбор данных может занять значительное по продолжительности время. После их можно представить в виде отсортированного DataFrame, где сверху будут акций с высокой дивидендной доходностью.
import pandas as pd
DivYield_dataframe = pd.DataFrame.from_dict(DivYield, orient='index')
DivYield_dataframe = DivYield_dataframe.sort_values(['Dividend_Yield'], ascending=[False])
DivYield_dataframe.head(15)
**Анализ полученного результата и заключение**
Предварительно проведем расчет средней дивидендной доходности по акциям которые платят дивиденды:
meanDivNasdaq = DivYield_dataframe[DivYield_dataframe['Dividend_Yield']>0]['Dividend_Yield'].mean()
print("Средняя дивидендная доходность по рынку Nasdaq равна ", "{:.2%}".format(meanDivNasdaq))
Средняя дивидендная доходность по рынку Nasdaq равна 2.80%
Самой высокой дивидендной доходностью в полученных результатах у акций компании Triumph Bancorp Inc — 21,57%. Но необходимо быть осторожным при выборе компаний по данному показателю, так как он может являться результатом падения цены акций и как следствия ростом дивидендной доходности. Правда не в этом случае. Так же выплата высоких дивидендов может не сохраниться в будущем, тем более если у компании возникнут финансовые проблемы.
Основной смысл в следующем — анализ дивидендной доходности не должен быть единственным критерием. Я для одного из своих портфелей так же смотрю: EPS, EBITDA, FCF, срок выплаты дивидендов, капитализация компании, чистая рентабельность (отношение выручки к прибыли) и коэффициент Net Debt/EBITDA.
Но как говориться — все вышеприведенное не является инвестиционной рекомендацией и выбор остается за каждым самостоятельно.