CHF57.00
Download steht sofort bereit
A practice-oriented guide to using C# to design and program pricing and trading models
In this step-by-step guide to software development for financial analysts, traders, developers and quants, the authors show both novice and experienced practitioners how to develop robust and accurate pricing models and employ them in real environments. Traders will learn how to design and implement applications for curve and surface modeling, fixed income products, hedging strategies, plain and exotic option modeling, interest rate options, structured bonds, unfunded structured products, and more. A unique mix of modern software technology and quantitative finance, this book is both timely and practical. The approach is thorough and comprehensive and the authors use a combination of C# language features, design patterns, mathematics and finance to produce efficient and maintainable software.
Designed for quant developers, traders and MSc/MFE students, each chapter has numerous exercises and the book is accompanied by a dedicated companion website, www.datasimfinancial.com/forum/viewforum.php?f=196&sid=f30022095850dee48c7db5ff62192b34, providing all source code, alongside audio, support and discussion forums for readers to comment on the code and obtain new versions of the software.
Autorentext
DANIEL J. DUFFY has been working with numerical methods in finance, industry and engineering since 1979. He has written four books on financial models and numerical methods and C++ for computational finance and he has also developed a number of new schemes for this field. He is the founder of Datasim Education and has a PhD in Numerical Analysis from Trinity College, Dublin.
ANDREA GERMANI was born in Lodi, Italy in 1975, where he currently lives. After graduating from Bocconi University in Milano, he obtained the Certificate in Quantitative Finance in London under the supervision of Paul Wilmott. Since then he has been working as a trader in some of the major Italian banks, where he gained a deep knowledge of financial markets. He also worked on valuation and pricing of equity and interest-derivatives, with a focus on the practical use of models on the trading floor. His teaching experience includes finance training courses for university students and practitioners. He is the Head of Interest Rate Derivatives Trading and Treasury in a bank.
Klappentext
C# for Financial Markets Duffy and Germani C# is a modern object-oriented programming language that runs under the Microsoft .NET Framework and it is suitable for the development of pricing and trading applications in quantitative finance. It has functionality to support the needs of quants and traders who develop fixed income and computational finance applications. It is more accessible than C++ and has interfaces with other tools such as Excel, C++, F# and database systems. C# for Financial Markets is a practice-oriented book that shows how to design and program pricing models using the C# programming language. It is a step-by-step account of how to develop software programs that can be used by traders in real-life situations. The reader will discover how to design and implement real finance applications including new methodologies that were developed after the crash of 2007. The approach is thorough and comprehensive and the authors use a combination of C# language features, design patterns, mathematics and finance to produce efficient and maintainable software. Some key features in the book are:
Inhalt
List of Figures xix
List of Tables xxiii
Introduction 1
0.1 What is This Book? 1
0.2 Special Features in This Book 1
0.3 Who is This Book for and What Do You Learn? 2
0.4 Structure of This Book 2
0.5 C# Source Code 3
1 Global Overview of the Book 5
1.1 Introduction and Objectives 5
1.2 Comparing C# and C++ 5
1.3 Using This Book 6
2 C# Fundamentals 9
2.1 Introduction and Objectives 9
2.2 Background to C# 9
2.3 Value Types, Reference Types and Memory Management 10
2.4 Built-in Data Types in C# 10
2.5 Character and String Types 12
2.6 Operators 13
2.7 Console Input and Output 14
2.8 User-defined Structs 15
2.9 Mini Application: Option Pricing 16
2.10 Summary and Conclusions 21
2.11 Exercises and Projects 22
3 Classes in C# 25
3.1 Introduction and Objectives 25
3.2 The Structure of a Class: Methods and Data 25
3.3 The Keyword 'this' 28
3.4 Properties 28
3.5 Class Variables and Class Methods 30
3.6 Creating and Using Objects in C# 33
3.7 Example: European Option Price and Sensitivities 33
3.7.1 Supporting Mathematical Functions 34
3.7.2 Black-Scholes Formula 35
3.7.3 C# Implementation 36
3.7.4 Examples and Applications 39
3.8 Enumeration Types 40
3.9 Extension Methods 42
3.10 An Introduction to Inheritance in C# 44
3.11 Example: Two-factor Payoff Hierarchies and Interfaces 46
3.12 Exception Handling 50
3.13 Summary and Conclusions 50
3.14 Exercises and Projects 51
4 Classes and C# Advanced Features 53
4.1 Introduction and Objectives 53
4.2 Interfaces 53
4.3 Using Interfaces: Vasicek and Cox-Ingersoll-Ross (CIR) Bond and Option Pricing 54
4.3.1 Defining Standard Interfaces 55
4.3.2 Bond Models and Stochastic Differential Equations 55
4.3.3 Option Pricing and the Visitor Pattern 58
4.4 Interfaces in .NET and Some Advanced Features 61
4.4.1 Copying Objects 62
4.4.2 Interfaces and Properties 63
4.4.3 Comparing Abstract Classes and Interfaces 64
4.4.4 Explicit Interfaces 65
4.4.5 Casting an Object to an Interface 65
4.5 Combining Interfaces, Inheritance and Composition 67
4.5.1 Design Philosophy: Modular Programming 67
4.5.2 A Model Problem and Interfacing 68
4.5.3 Implementing the Interfaces 69
4.5.4 Examples and Testing 72
4.6 Introduction to Delegates and Lambda Functions 72
4.6.1 Comparing Delegates and Interfaces 74
4.7 Lambda Functions and Anonymous Methods 76
4.8 Other Features in C# 77
4.8.1 Static Constructors 77
4.8.2 Finalisers 78
4.8.3 Casting 79
4.8.4 The var Keyword 80
4.9 Advanced .NET Delegates 80
4.9.1 Provides and Requires Interfaces: Creating Plug-in Methods with Delegates 82
4.9.2 Multicast Delegates 85
4.9.3 Generic Delegate Types 86
4.9.4 Delegates versus Interfaces, Again 87
4.10 The Standard Event Pattern in .NET and the Observer Pattern 87
4.11 Summary and Conclusions 91
4.12 Exercises and Projects 92
5 Data Structures and Collections 97
5.1 Introduction and Objectives 97
5.2 Arrays 97
5.2.1 Rectangular and Jagged Arrays 98
5.2.2 Bounds Checking 101
5.3 Dates, Ti…