Блог им. Zmey56
Акции с высокой дивидендной доходностью часто являются отличной инвестиционной стратегией для инвесторов, стремящихся получать приток денежных средств каждый год. В данной статье буден создан скрипт на Python для отбора их на бирже NASDAQ.
Что такое дивидендная доходность?Пример
При цене акции ОАО «Лукойл» 1124,37 рублей и дивиденде 28 рублей на акцию дивидендная доходность будет равна:
Расчет дивидендной доходности является простой задачей, которую можно выполнить с помощью финансового 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.
Но как говориться — все вышеприведенное не является инвестиционной рекомендацией и выбор остается за каждым самостоятельно.
Только начинаю знакомство с американским рынком и как раз подумывал выбрать дивидендные компании, а тут еще и с Питоном интересное упражнение.
Это означает, что в формуле про дивы Лукойла не хватает коэффициента приведения к году, а точнее — к периоду получения денег.
Правильный расчет покажет, что, если указанная в формуле цена продержится до дня, скажем, отстоящего 1 месяц до даты выплаты, а фактическое поступление денег Вам на счет — через 1 месяц от начала выплат, то процентная ставка дивидендной доходности равна 2,49%/2*12 = 14,94% годовых.
Вот что считать нужно! Тогда будет понятно, какая цена должна быть в какой день до даты выплаты. Отсюда легко будет понятно, покупать ли бумагу или продавать.
Хочу, например, купить акцию Черкизово для дивидендов. Как мне определить, брать ее или нет?
Для акций Черкизова, в частности (хотя это справедливо для всех купонов, дивидендов, дисконтных доходов и т.п. без учета НДФЛ), нужно посчитать так:
Д, %% годовых = (ЦенаПродажи — ЦенаПокупки + ОценкаДивиденда)/ЦенаПокупки*12мес/СрокИнвестиции*100%
Отсюда можно посчитать дивгэп, кстати.
Если продажа не предусмотрена, то из числителя убираем (ЦенаПродажи — ЦенаПокупки).
Я не слежу за этим эмитентом и поэтому не знаю ни текущей цены, ни сумму предполагаемых дивидендов, ни порядка (даты отсечки под дивы, сроки выплат), поэтому не могу посчитать, извините.
Если Вы считаете, что текущая доходность Вашего портфеля составляет ХХХ% годовых, и это — очень хорошо, то берете её, подставляете в формулу доходности и получаете соотношение цен «покупки/продажи». Дело в том, что большинство желает хапнуть с рынка всё и поэтому не получает ничего. Вы же можете определить комфортную разницу между покупкой и продажей, дающую удовлетворительную доходность. Ну, а всё, что сверх того, — Ваша премия.
Распространенный расчет дивгэпа (цена — дивиденд) — это самая грубая оценка. В реальности на рынке крупные игроки забирают годовую доходность. Ведь именно её можно сравнить и с доходностью депозитов, и с доходностью госбумаг.