- English
- ePUB (mobile friendly)
- Available on iOS & Android
C# for Financial Markets
About This Book
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 isboth 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.
Frequently asked questions
- C# is relatively easy to learn (certainly when we compare it to C++). This means that it can be learned by traders, quants and other finance professionals who do not necessarily spend all their waking hours designing and implementing software systems. For example, people with a background in VBA will find the transition to C# much easier than the transition from VBA to C++. Furthermore, in many cases developer productivity levels in C# can be four times as high as with C++.
- The .NET framework and C# offer the developer a range of functionality that he or she can use in financial applications. This is realised by the features in the language itself and by the libraries in the framework. We shall discuss these libraries and we shall also see in the rest of this book how they are used to create robust and flexible applications.
- It is possible to create interoperable applications that consist of a mixture of C#, C++ and VBA code and that communicate with Excel and real-time data servers. In other words, it is possible to create .NET applications that can communicate with non .NET code and it is also possible to create non .NET applications that can communicate with .NET code.
- Usability levels are high. Furthermore, developers do not have to worry about manual memory management as this is taken care of by garbage collection mechanisms resident in the .NET framework.
- C# and the .NET framework contain libraries that allow developers to create multi-threaded applications that run on shared memory multi-core processors.
- Many .NET libraries have been designed in such a way that they can be used and adapted to suit new developer needs. In particular, it is easy to use and apply design patterns in C# applications.
- P1: The skills and knowledge of those engineers developing applications.
- P2: The type of application and related customer wishes.
- P3: The technical and organisational risks involved in choosing a given language.
using System; // Use the System namespace (Console etc.) // HelloWorld class. Every C# program has at least one class public class HelloWorld { // Each Main method must be enclosed in a class // C# programs start in this Main() method public static void Main() { // Write string to console Console.WriteLine("Hello world!"); } }
Table of contents
- Cover
- Title Page
- Copyright
- About the Authors
- Series
- List of Figures
- List of Tables
- Dedication
- Introduction
- Chapter 1: Global Overview of the Book
- Chapter 2: C# Fundamentals
- Chapter 3: Classes in C#
- Chapter 4: Classes and C# Advanced Features
- Chapter 5: Data Structures and Collections
- Chapter 6: Creating User-defined Data Structures
- Chapter 7: An Introduction to Bonds and Bond Pricing
- Chapter 8: Data Management and Data Lifecycle
- Chapter 9: Binomial Method, Design Patterns and Excel Output
- Chapter 10: Advanced Lattices and Finite Difference Methods
- Chapter 11: Interoperability: Namespaces, Assemblies and C++/CLI
- Chapter 12: Bond Pricing: Design, Implementation and Excel Interfacing
- Chapter 13: Interpolation Methods in Interest Rate Applications
- Chapter 14: Short Term Interest Rate (STIR) Futures and Options
- Chapter 15: Single-curve Building
- Chapter 16: Multi-curve Building
- Chapter 17: Swaption, Cap and Floor
- Chapter 18: Software Architectures and Patterns for Pricing Applications
- Chapter 19: LINQ (Language Integrated Query) and Fixed Income Applications
- Chapter 20: Introduction to C# and Excel Integration
- Chapter 21: Excel Automation Add-ins
- Chapter 22: C# and Excel Integration COM Add-ins
- Chapter 23: Real-time Data (RTD) Server
- Chapter 24: Introduction to Multi-threading in C#
- Chapter 25: Advanced Multi-threading in C#
- Chapter 26: Creating Multi-threaded and Parallel Applications for Computational Finance
- Appendix 1: Object-oriented Fundamentals
- Appendix 2: Nonlinear Least-squares Minimisation
- Appendix 3: The Mathematical Background to the Alternating Direction Explicit (ADE) Method
- Appendix 4: Cap, Floor and Swaption Using Excel-DNA
- Bibliography
- Web References
- Index
- End User License Agreement