Python для финансовых расчетов
Python стал языком выбора для разработки финансовых приложений, управляемых данными, и систем искусственного интеллекта. Крупные инвестиционные банки и хедж-фонды все активнее реализуют свои базовые платформы трейдинга и управления рисками с использованием экосистемы Python. В новом издании книги разработчики и финансовые аналитики узнают, как применять различные инструменты Python для создания финансовых приложений и систем алгоритмической торговли.
Все примеры книги написаны на Python 3 и доступны в виде интерактивных блокнотов Jupyter. Готовые программные решения помогут понять, как экосистема Python формирует технологический фундамент для финансовой индустрии.
Основные темы книги:
- Python и финансовые вычисления. Применение Python для интерактивного финансового анализа и разработки финансовых приложений.
- Основы Python. Типы данных и структуры Python, библиотеки NumPy и pandas, объектно-ориентированное программирование.
- Обработка и анализ финансовых данных. Обработка финансовых временных рядов, опера- ции ввода-вывода, стохастические методы и алгоритмы машинного обучения.
- Алгоритмическая торговля. Применение Python для внедрения автоматизированных систем алгоритмической торговли.
- Анализ деривативов. Разработка гибкого и производительного программного пакета, пред- назначенного для оценки опционов, включая управление рисками.
«Понятный синтаксис, простота интеграции с С/С++ и наличие большого количества математических пакетов делают Python основным инструментом финансовых аналитиков.
Он стремительно становится стандартом де-факто в данной области, вытесняя большинство других языков программирования.»
Кират Сингх,
Beacon Platform, Inc.
Книга обсуждается в отдельном сообщении в блоге Виктора Штонда.
Об авторе
Ив Хилпиш — основатель проекта The Python Quants, ориентированного на применение программных продуктов с открытым исходным кодом в финансовом анализе, искусственном интеллекте и алгоритмической торговле. Он также возглавляет компанию The AI Machine, которая занимается разработкой стандартизированных систем алгоритмической торговли на базе искусственного интеллекта, и руководит первой обучающей онлайн-программой, нацеленной на получение университетского сертификата по алгоритмической торговле на Python.
формат 70×100/16; серия O’Reilly (Animals) ; 09.12.2021; Вильямс.
Понравилась книга? Порекомендуйте её друзьям и коллегам:
Введение 19
Часть I. Python и финансовые вычисления
Глава 1. Python как инструмент финансовых расчетов 27
Глава 2. Инфраструктура Python 63
Часть II. Основы Python
Глава 3. Типы данных и структуры Python 93
Глава 4. Работа с массивами NumPy 121
Глава 5. Анализ данных с помощью библиотеки pandas 153
Глава 6. Объектно-ориентированное программирование 191
Часть III. Обработка и анализ финансовых данных
Глава 7. Визуализация данных 215
Глава 8. Финансовые временные ряды 255
Глава 9. Операции ввода-вывода 283
Глава 10. Производительность Python 333
Глава 11. Математические инструменты 373
Глава 12. Стохастические методы 409
Глава 13. Статистический анализ 465
Часть IV. Алгоритмическая торговля
Глава 14. Торговая платформа FXCM 545
Глава 15. Торговые стратегии 561
Глава 16. Автоматизированная торговля 607
Часть V. Анализ деривативов
Глава 17. Принципы оценки опционов 649
Глава 18. Финансовое моделирование 665
Глава 19. Оценка деривативов 691
Глава 20. Оценка портфеля 717
Глава 21. Оценка на основе рыночных данных 739
Часть VI. Приложения
Приложение А. Обработка значений даты и времени 765
Приложение Б. Класс опционов в модели Блэка — Шоулза — Мертона 781
Предметный указатель 787
Python как инструмент финансовых расчетов
Ну я завтра сам хотел загрузить
Эй, обновлять версию своевременно будешь?
Рейтинг: 0 ( 0 за, 0 против).
самый мирный народа, ага
Рейтинг: +3 ( 4 за, 1 против).
Посеяли ветер, придется пожинать бурю.
Цитата:
«в надежде . что в ближайшее время в наших любимейших СМИ появится новость об окончании СВО, и, честно говорю, уже неважно, в чью пользу.»
Рейтинг: -1 ( 0 за, 1 против).
2medicus:– Ты – морской пехотинец, тебе и карты в руки, – сказал Садлер. – Как вас тогда дразнили? «Не солдат и не матрос и не кошка и не пес. Ты, морпех, курям на смех». (Кук Глен «Зловещие латунные тени»). Тоже перечисление =)
А «чёрным бушлатам» — респект и уважуха!
Рейтинг: +1 ( 1 за, 0 против).
Капитан Очевидность напоминает, что в этом случае идёт перечисление по образцу «у тебя НИ стыда, НИ совести» — «ты НИ герой-спецназовец, НИ крутой бизнесмен». Так что грамматически конструкция правильная. Книжка дерьмо — это уже другой вопрос.
2desertrat: а в «ни рыба ни мясо» у вас где частица «не» или слова «нельзя» и «нет»? В «ни тот, ни другой», к которому авторская фраза сводится? Позаменяют чутьё языка правилами, kurwa, а оно так,
внезапно, не работает.
Рейтинг: -1 ( 0 за, 1 против).
Автором добавлены ещё два эпилога
Рейтинг: +3 ( 3 за, 0 против).
2medicus У вас там совсм гугл заблочили и учебники правописания отменили ? » Основная функция частицы ни — усиление отрицания. Поэтому она употребляется в предложениях с отрицательным сказуемым, т. е. сказуемым, включающим частицу не или выраженным словами «нельзя», «нет». «
2medicus Читайте учебник полностью. Там не только про основные функции но и про второстепенные и про исключения. А мы разбираем конкретный момент, в котором «ни» не
Рейтинг: 0 ( 1 за, 1 против).
Python для финансов, и как его правильно применять?

Python является одним из самых популярных языков для анализа данных машинного обучения что делает его идеальным для работы в этой сфере. У него достаточно преимуществ, например: мощная экосистема.
Давайте узнаем подробнее о работе Python с финансами, и как его правильно в них применять.
Превосходство Python в сфере финансов
Python действительно показал себя как универсальный язык. У него самая большая аудитория и простой синтаксис, который освоит даже новичок в сфере IT, т.к. он очень напоминает принципы английского языка с долей математических алгоритмов. Совокупность этих особенностей позволяет сделать процессы финансовой аналитики простыми и понятными. Примерно это будет выглядеть так – производим сбор данных, проводим математические вычисления и визуализируем результат.

В целом, Python является очень гибким и эффективным языком программирования, который позволяет анализировать и использовать финансовые данные с высокой скоростью и эффективностью. В нем достаточно много библиотек, чтобы каждый смог найти для себя оптимальный модуль.
Курс изучения Python
Можете пройти наш бесплатный курс по изучению Python
Финансовый анализ вместе с Python
Примеры задач, которые можно решить с помощью Python для финансового анализа, включают:
- Анализ цен акций и определение трендов.
- Оптимизация портфеля на основе риска и доходности.
- Прогнозирование цен на акции на основе индивидуальных данных.
- Анализ финансовых отчетов компаний.
- Идентификация аномалий финансовых данных.
- Учет принятого времени покупки и продажи акций.
- Решение задач по управлению рисками в портфеле.
Все эти данные крайне важны при управлении рисками, оценке потенциальных возможностей финансового рынка и других операций.
Получаем данные акций для анализа вместе с Python
Сегодня очень стало популярно инвестировать в какие-то акции. Но чтобы “какие-то” не выгорели, а вы не потеряли деньги – требуется сначала проанализировать во что лучше вкладывать. Никогда не руководствуйтесь одной лишь интуицией, советами соседа или волей случая.
При использовании Python можно проанализировать рынок и принять более основательное решение об инвестициях. Для этого потребуется скачать финансовые данные за конкретный период времени. Но это недоступно без использования расширения Pandas. Оно позволит связать эти данные из любой удобной для вас базы (yfinance, Google Finance, Alpha Vantage и пр.).
Чтобы получилось визуализировать данные, достаточно использовать одну из библиотек. Например, Matplotlib. С ее помощью можно провести иллюстрирование информации удобным образов, сделав все достаточно быстро и без усердной работы. Также доступны инструменты фильтрации для более комфортной работы.
Финансовый анализ вместе с машинным обучением
Машинное обучение (Machine Learning, ML) широко используется в финансовом анализе для прогнозирования финансовых результатов, проверки аномалий и создания автоматических торговых систем. Ведь все, что связано с акциями имеет огромное количество факторов, которые влияют на них.
Python позволяет обучить Machine Learning различным фишкам тех самых факторов. Например, прогнозированию цен на акции на основании частных данных, созданию автоматических торговых систем, которые принимают решения о покупке и т.д. Все это крайне важно для развития компании. Но любое звено может дать трещину, а это значит потерю инвестиций.

Сегодня Python нашел себя в криптовалюте, где постоянно происходит изменение значений. Язык отлично приспособлен для отслеживания и прогнозирования данных изменений, а также эффективно анализирует данные. Если вы или ваша компания занимаетесь криптовалютой, вам точно стоит использовать его. Так, существует инструмент Anaconda, он эффективен именно в работе и анализе цифровых валют.
Банковская структура вместе с Python
Финансы и Python это не только анализ и прогнозы. Язык часто применяют в банках для выполнения более оптимизированных операций. А их владельцы поощряют своих сотрудников за изучение и использование языка в работе. Python также хорошо ужился в качестве способа улучшения процессов принятия банковских решений. Производится это при помощи алгоритмов.
Курс изучения Python
Можете пройти наш бесплатный курс по изучению Python
Заключение
В целом, Python представляет собой мощный инструмент для проведения финансового анализа, который может быть использован для решения различных задач в области финансов. Он эффективен как для работы с классическими операциями и прогнозированием, так и с виртуальными типами валют и машинным обучением. Python значительно повышает эффективность, позволяя выполнять расчеты, на которые без него уходит несколько недель, всего за несколько часов.
Больше интересных новостей

Подборка материалов для изучения Android

9 классических ОС, которые можно запустить в браузере

Безопасность веб-приложений: лучшие практики и уязвимости

7 бессмертных языков программирования
Книга «Python для финансистов»

Как дела, Хаброжители?
Программирование, математика и финансы неразрывно связаны между собой. Ив Хилпиш, автор бестселлера «Python для финансовых расчетов», объясняет базовые концепции и дает в ваши руки все необходимые инструменты для работы в мире финансовой инженерии.
В этой книге вы:
• изучите основы программирования на Python и познакомитесь с теорией финансов через математику;
• узнаете о моделировании данных и использовании Python в финансовой инженерии;
• научитесь статическому и динамическому моделированию финансовых задач: ценообразование, принятие решений и распределение активов;
• получите общее представление о необходимый библиотеках Python: NumPy, SciPy, Matplotlib и SymPy.
Почему именно эта книга?
Эта книга обучает финансам и языку программирования Python (http://python.org/) с нуля. Сейчас финансы и программирование — тесно переплетенные дисциплины, а Python — один из наиболее часто используемых в финансовой отрасли языков программирования. Здесь комплексно изложены основы математики, финансов и программирования в понятном для обычных людей виде. Долгое время теория финансов и финансовая инженерия были отдельными дисциплинами. Однако то, что программирование (например, на Python и C++) стало неотъемлемой частью магистратуры по финансовой инженерии и подобных университетских программ, доказывает, насколько важным стал этот навык в данной области.
Платформы для онлайн-торговли, программное обеспечение с открытым исходным кодом и финансовая информация, находящаяся в свободном доступе, значительно понизили, а то и полностью ликвидировали порог входа на мировые финансовые рынки. Теперь всего за несколько часов обычный человек с ограниченным бюджетом может начать заниматься алгоритмической торговлей. Студенты и преподаватели финансовых дисциплин, немного знающие программирование, могут применить последние инновации в области машинного и глубокого обучения к финансовым данным, пользуясь только ноутбуками, которые у них всегда с собой. Что касается технических средств, то облачные провайдеры с почасовой оплатой и практически неограниченной масштабируемостью за очень небольшую цену предоставляют возможность быстро и качественно вычислять и обрабатывать данные. Сегодня профессиональное финансовое образование лишь частично соответствует этим технологическим тенденциям.
Тем не менее все еще довольно часто основы математики, теория финансов и основы программирования преподаются независимо друг от друга и только в самом конце обучения — в комплексе с финансовой инженерией. В этой книге используется другой подход: финансовые концепции и методы программирования представлены во взаимосвязи с математическими понятиями (например, из линейной алгебры и теории вероятностей). Таким образом, абстрактные математические понятия объясняются с двух различных точек зрения — финансов и программирования. Вдобавок такой подход позволяет получить новый полезный опыт, поскольку и математические, и финансовые понятия могут быть переведены непосредственно в исполняемый код и исследованы в интерактивном режиме.
Несколько человек, прочитавших одну из моих предыдущих книг, «Python для финансовых расчетов», справедливо отметили, что она не подходит тем, кто только начинает знакомство с теорией финансов и программированием на Python. Действительно, предполагается, что читатель той книги имеет хотя бы небольшой опыт в данных сферах. Книга «Python для финансистов» восполняет этот пробел, поскольку фокусируется на основах и тем самым естественным образом подготавливает к прочтению «Python для финансовых расчетов», что в дальнейшем позволит развиваться и совершенствовать навыки работы с Python применительно к финансовым расчетам. Более подробно об этом рассказано в последней главе.
Целевая аудитория
Об использовании Python в финансовой сфере я написал несколько книг, а моя компания, The Python Quants, предлагает соответствующее онлайн-обучение. И книги, и курсы предполагают, что читатель или слушатель уже обладает определенными знаниями в области финансов и программирования на Python или аналогичном ему языке.
Эта же книга знакомит читателя с данными темами с нуля, и ему нужны лишь базовые знания в области математики, в частности математического анализа, линейной алгебры и теории вероятностей. Материал содержит практически полную информацию обо всех описанных в нем математических понятиях. Тем не менее может пригодиться вводный учебник математики, например учебник Пембертона и Рау.
Книга предназначена для студентов, ученых и специалистов, которые хотят получить знания по теории финансов, финансовому моделированию и использованию Python в финансовой инженерии. Она также может послужить систематически выстроенной основой для создания более сложных книг и курсов по этим темам.
Даже если читатель не собирается переходить к более сложным темам финансовой инженерии, вычислительных финансов, алгоритмической торговли или управления активами, знания по Python и финансам, которые он почерпнет из этой книги, можно использовать при выполнении стандартных финансовых задач, например, при составлении инвестиционных портфелей в соответствии с современной портфельной теорией (modern portfolio theory, MPT). Книга также рассказывает об оценке опционов и других деривативов с помощью стандартных методов, таких как портфельная репликация или риск-нейтральный подход к ценообразованию.
Эта книга подойдет руководителям, которые хотят узнать о применении Python в области финансов. В то же время она будет полезна тем, кто уже владеет Python или другим языком программирования и хочет узнать, как их можно использовать в данной сфере.
Логарифмическая полезность
В этом разделе представлена функция, которая хорошо подходит для финансового анализа, основанного на максимизирующем полезность агенте, — натуральный логарифм u(x) = ln x. Она удовлетворяет трем условиям, приведенным в предыдущем подразделе, и регулярно используется в финансах для моделирования пользы, которую агент получает от денег (или потребления). При условии, что x ∈ R>0, получается следующее.

Python позволяет графически изобразить три рассмотренные нами функции посредством библиотеки NumPy в сочетании с векторными вычислениями. На рис. 4.2 показан график, сгенерированный следующим кодом:
In [15]: x = np.linspace(0.5, 10, 50) ➊ In [16]: x[:5] ➋ Out[16]: array([0.5 , 0.69388, 0.88776, 1.08163, 1.27551]) In [17]: u = np.log(x) ➌ In [18]: u1 = 1 / x ➍ In [19]: u2 = -1 / x ** 2 ➎ In [20]: plt.figure(figsize=(10, 6)) ➏ plt.plot(x, u, label='$u$') ➐ plt.plot(x, u1, '--', label='$du/dx$') ➑ plt.plot(x, u2, '-.', label='$d^2u/dx^2$') ➑ plt.legend(loc=0); ➓
❶ Создание объекта ndarray с числами с плавающей запятой от 0,5 до 10 и равномерным интервалом для получения 50 значений.
❷ Вывод выборки из полученных чисел.
❸ Вычисление значений для функции полезности.
❹ И для ее первой производной, а также…
❺ …Для второй производной.
❻ Создание нового холста для построения графика и задание параметров размера.
❼ Нанесение на график функции полезности.
❽ Нанесение на график первой производной.
❾ Нанесение на график второй производной.
❿ Размещение условных обозначений в оптимальном месте (loc=0).

Аддитивная полезность относительно времени
С учетом натурального логарифма, использованного в качестве функции для моделирования полезности денег для агента, предпочтения агента относительно планов экономии c = (c0, c1) могут быть описаны как аддитивная функция полезности относительно времени следующего вида:

При наличии у агента первоначального капитала w задача на условный экстремум имеет следующий вид:



Необходимыми условиями оптимальности первого порядка в таком случае являются:

результатом которых становится:

Оптимальный план экономии теперь отражает временные предпочтения в том, что потребление через год c1 — это κ · c0. Также верны равенства:

Обязательным условием является бюджетное ограничение:

Следующий код решает задачу на оптимизацию в числовом виде при w = 10. Полученный оптимальный план отражает временные предпочтения агента:
In [21]: import math In [22]: from scipy.optimize import minimize In [23]: kappa = 10 / 11 In [24]: def U(c): return -(math.log(c[0]) + kappa * math.log(c[1])) ❶ In [25]: w = 10 In [26]: cons = ()❷ In [27]: opt = minimize(U, (1, 1), constraints=cons) In [28]: opt Out[28]: fun: -3.0747286083026886 jac: array([-0.19091, -0.19091]) message: 'Optimization terminated successfully' nfev: 18 nit: 6 njev: 6 status: 0 success: True x: array([5.23811, 4.76189]) In [29]: opt['x'] ❸ Out[29]: array([5.23811, 4.76189]) In [30]: -opt['fun'] ❹ Out[30]: 3.0747286083026886
❶ Функция полезности со знаком минус для достижения максимизации через минимизацию.
❷ Бюджетное ограничение в виде ограничения типа равенства для выполнения функции minimize.
❸ Оптимальный план экономии, отражающий временные предпочтения, при котором c0 больше c1 ровно на 10 %.
❹ Максимальная полезность, получаемая по оптимальному плану.
Ожидаемая полезность
Перейдем к статической экономике с двумя состояниями и неопределенностью. Предположим, что у агента есть некоторый первоначальный капитал w ∈ R>0, пользу от которого он получит только за счет денег, доступных через год. Полезность этих денег разнится в зависимости от того, какое из двух возможных состояний материализуется. Данная ситуация представляет собой задачу на чистую инвестицию, где весь имеющийся первоначальный капитал должен быть вложен в оптимальные торгуемые финансовые активы.
Допустим, что торгуются два финансовых актива: безрисковая облигация с процессом ценообразования:

и рисковая акция с процессом ценообразования:

Финансовые активы являются средством переноса первоначального капитала с сегодняшнего дня на более поздний момент времени. Основная проблема агента при принятии решения заключается в том, чтобы определиться, какая часть денежных средств должна быть расходована в любом из будущих состояний.
Модель инвестиционной задачи, с которой сталкивается агент в условиях неопределенности, задается ожидаемой полезностью для агента, которая должна быть максимизирована с учетом значения w. Функция ожидаемой полезности имеет вид:

С вектором цен агент может распределить свой первоначальный капитал, исходя из следующего условия:

где вторая часть — составленный агентом портфель, содержащий безрисковую облигацию и рисковую акцию. Данное бюджетное ограничение всегда будет обязательным условием из-за бесконечности спроса агента. Помимо этого, запрещены продажи без покрытия («короткие» продажи).
Матрица рыночных выплат представлена как:

Сколько денег будет у агента в любом из состояний через год? Сумма определяется составленным им портфелем:

который можно преобразовать в:


Полная задача принятия агентом решений касательно выбора оптимального портфеля может быть представлена в виде задачи условного экстремума:
которую можно упростить до:

Согласно теореме Лагранжа эту задачу можно преобразовать в задачу безусловного экстремума:

где агент выбирает b и s для максимизации ожидаемой полезности с учетом бюджетного ограничения.
Спустя десятилетия после разработки и внедрения теория ожидаемой полезности (Expected Utility Theory, EUT) все еще остается доминирующей парадигмой принятия финансовых решений, несмотря на то что одно из ее основных допущений — агенты имеют полное представление о возможных будущих состояниях и вероятности их реализации — практически никогда не выполняется в реальности. Тем не менее для многих EUT является интеллектуально привлекательной теоремой с приятными результатами, которые часто легко понять и интерпретировать. Подробнее о проблемах данной парадигмы в финансах можно узнать у Хилпиша (2020, главы 3 и 4).
Более подробно с книгой можно ознакомиться на сайте издательства:
По факту оплаты бумажной версии книги на e-mail высылается электронная книга.
Для Хаброжителей скидка 25% по купону — Python
- Блог компании Издательский дом «Питер»
- Python
- Профессиональная литература
- Финансы в IT