Financial Modelling in Python, Fletcher S., Gardner C., 2009.
Фрагмент из книги.
We contend that the Python programming language is particularly suited to quantitative analysts/programmers working in the fiel of financia engineering. This assertion centres on two axes: the first Python’s expressiveness and high-level nature; the second, Python’s extensibility and interoperability with other programming languages. Other (arguably not so,) minor arguments to be made for Python programming in general, are the benefit to be had from the use of Python’s wealth of standard libraries (‘Python comes with batteries included’) and Python’s support for functional programming idioms.
NUMPY ARRAYS.
Despite the efforts of the preceding section regarding reflectio of C++ Boost. Multi Array types into Python, in practice, when working in Python, the authors have found the facilities of NumPy arrays to be far more convenient (NumPy was mentioned brietl in section 1.2). Specificall , their notational conveniences and the large body of functionality provided by the NumPy library motivates their use in Python beyond the argument of C++ interoperability. Indeed, when working in C++, a library dedicated to scientifi manipulation of arrays such as Blitz++2 wins the authors’ favour for such work over ‘lower-level’ container types like native С arrays or Boost.Multi Array types. But now to the crux of the matter. If we haven’t made this point earlier then we’ll make it for the firs time now. One of the great strengths of Python is the ability to drop into С or C++ code ‘when performance counts’. That is, the ability to factor out that characteristic operation that must be done as efficientl as possible and pull it down into a compiled component is essential. Now, in the fiel of numerical programming, doesn’t that characteristic operation almost always involve operating on arrays of data?
So, can we have it all? Can we have the convenience of NumPy in Python combined with the convenience and efficien у of Blitz++ in C++ where the data is shared between these array types? The short answer is ‘yes we can’, as we will demonstrate in the next subsection.
Contents.
1 Welcome to Python.
1.1 Why Python?.
1.1.1 Python is a general-purpose high-level programming language.
1.1.2 Python integrates well with data analysis, visualisation and GUI toolkits.
1.1.3 Python ‘plays well with others’.
1.2 Common misconceptions about Python.
1.3 Roadmap for this book.
2 The PPF Package.
2.1 PPF topology.
2.2 Unit testing.
2.2.1 doctest.
2.2.2 PyUnit.
2.3 Building and installing PPF.
2.3.1 Prerequisites and dependencies.
2.3.2 Building the C++ extension modules.
2.3.3 Installing the PPF package.
2.3.4 Testing a PPF installation.
3 Extending Python from C++.
3.1 Boost.Date Time types.
3.1.1 Examples.
3.2 Boost.MultiArray and special functions.
3.3 NumPy arrays.
3.3.1 Accessing array data in C++.
3.3.2 Examples.
4 Basic Mathematical Tools.
4.1 Random number generation.
4.2 N (.).
4.3 Interpolation.
4.3.1 Linear interpolation.
4.3.2 Loglinear interpolation.
4.3.3 Linear on zero interpolation.
4.3.4 Cubic spline interpolation.
4.4 Root findin.
4.4.1 Bisection method.
4.4.2 Newton-Raphson method.
4.5 Linear algebra.
4.5.1 Matrix multiplication.
4.5.2 Matrix inversion.
4.5.3 Matrix pseudo-inverse.
4.5.4 Solving linear systems.
4.5.5 Solving tndiagonal systems.
4.5.6 Solving upper diagonal systems.
4.5.7 Singular value decomposition.
4.6 Generalised linear least squares.
4.7 Quadratic and cubic roots.
4.8 Integration.
4.8.1 Piecewise constant polynomial fittin.
4.8.2 Piecewise polynomial integration.
4.8.3 Semi-analytic conditional expectations.
5 Market: Curves and Surfaces.
5.1 Curves.
5.2 Surfaces.
5.3 Environment.
6 Data Model.
6.1 Observables.
6.1.1 LIBOR.
6.1.2 Swap rate.
6.2 Flows.
6.3 Adjuvants.
6.4 Legs.
6.5 Exercises.
6.6 Trades.
6.7 Trade utilities.
7 Timeline: Events and Controller.
7.1 Events.
7.2 Timeline.
7.3 Controller.
8 The Hull-White Model.
8.1 A component-based design.
8.1.1 Requestor.
8.1.2 State.
8.1.3 Filler.
8.1.4 Rollback.
8.1.5 Evolve.
8.1.6 Exercise.
8.2 The model and model factories.
8.3 Concluding remarks.
9 Pricing using Numerical Methods.
9.1 A lattice pricing framework.
9.2 A Monte-Carlo pricing framework.
9.2.1 Pricing non-callable trades.
9.2.2 Pricing callable trades.
9.3 Concluding remarks.
10 Pricing Financial Structures in Hull-White.
10.1 Pricing a Bermudan.
10.2 Pricing a TARN.
10.3 Concluding remarks.
11 Hybrid Pytlion/C++ Pricing Systems.
11.1 nth _imm_of_year revisited.
11.2 Exercising nth_imm_of_year from C++.
12 Python Excel Integration.
12.1 Black-scholes COM server.
12.1.1 VBS client.
12.1.2 VBA client.
12.2 Numerical pricing with PPF in Excel.
12.2.1 Common utilities.
12.2.2 Market server.
12.2.3 Trade server.
12.2.4 Pricer server.
Appendices.
A Python.
A.l Python interpreter modes.
A.1.1 Interactive mode.
A.1.2 Batch mode.
A.2 Basic Python.
A.2.1 Simple expressions.
A.2.2 Built-in data types.
A.2.3 Control fl w statements.
A.2.4 Functions.
A.2.5 Classes.
A.2.6 Modules and packages.
A.3 Conclusion.
В Boost.Python.
B.l Hello world.
B.2 Classes, constructors and methods.
B.3 Inheritance.
B.4 Python operators.
B.5 Functions.
B.6 Enums.
B.7 Embedding.
B.8 Conclusion.
С Hull-White Model Mathematics.
D Pickup Value Regression.
Bibliography.
Index.
Купить .
По кнопкам выше и ниже «Купить бумажную книгу» и по ссылке «Купить» можно купить эту книгу с доставкой по всей России и похожие книги по самой лучшей цене в бумажном виде на сайтах официальных интернет магазинов Лабиринт, Озон, Буквоед, Читай-город, Литрес, My-shop, Book24, Books.ru.
По кнопке «Купить и скачать электронную книгу» можно купить эту книгу в электронном виде в официальном интернет магазине «ЛитРес», и потом ее скачать на сайте Литреса.
По кнопке «Найти похожие материалы на других сайтах» можно найти похожие материалы на других сайтах.
On the buttons above and below you can buy the book in official online stores Labirint, Ozon and others. Also you can search related and similar materials on other sites.
Теги: учебник по программированию :: программирование :: Fletcher :: Gardner
Смотрите также учебники, книги и учебные материалы:
- UNIX, Программное окружение, Керниган Б., Пайк Р., 2003
- PC Assembly Language, Carter P.A., 2006
- Object-Oriented Programming in C++, Lafore R., 2002
- Физика для разработчиков компьютерных игр, Конгер Д., 2007
- Программирование на Visual Fortran, Алгазин С.Д., Кондратьев В.В., 2008
- Программирование под Android, Для профессионалов, Харди Б., Филлипс Б., 2014
- Learning Python, Lutz M., 2013
- Паскаль для школьников, Ушаков Д., Юркова Т., 2011