Building Automated Trading Systems: With an Introduction to Visual C++.NET 2005
Over the next few years, the proprietary trading and hedge fund industries will migrate largely to automated trade selection and execution systems. Indeed, this is already happening. While several finance books provide C++ code for pricing derivatives and performing numerical calculations, none approaches the topic from a system design perspective. This book will be divided into two sections—programming techniques and automated trading system ( ATS ) technology—and teach financial system design and development from the absolute ground up using Microsoft Visual C++.NET 2005. MS Visual C++.NET 2005 has been chosen as the implementation language primarily because most trading firms and large banks have developed and continue to develop their proprietary algorithms in ISO C++ and Visual C++.NET provides the greatest flexibility for incorporating these legacy algorithms into working systems. Furthermore, the .NET Framework and development environment provide the best libraries and tools for rapid development of trading systems.
The first section of the book explains Visual C++.NET 2005 in detail and focuses on the required programming knowledge for automated trading system development, including object oriented design, delegates and events, enumerations, random number generation, timing and timer objects, and data management with STL.NET and .NET collections. Furthermore, since most legacy code and modeling code in the financial markets is done in ISO C++, this book looks in depth at several advanced topics relating to managed/unmanaged/COM memory management and interoperability. Further, this book provides dozens of examples illustrating the use of database connectivity with ADO.NET and an extensive treatment of SQL and FIX and XML/FIXML. Advanced programming topics such as threading, sockets, as well as using C++.NET to connect to Excel are also discussed at length and supported by examples.
The second section of the book explains technological concerns and design concepts for automated trading systems. Specifically, chapters are devoted to handling real-time data feeds, managing orders in the exchange order book, position selection, and risk management. A .dll is included in the book that will emulate connection to a widely used industry API ( Trading Technologies, Inc.’s XTAPI ) and provide ways to test position and order management algorithms. Design patterns are presented for market taking systems based upon technical analysis as well as for market making systems using intermarket spreads.
As all of the chapters revolve around computer programming for financial engineering and trading system development, this book will educate traders, financial engineers, quantitative analysts, students of quantitative finance and even experienced programmers on technological issues that revolve around development of financial applications in a Microsoft environment and the construction and implementation of real-time trading systems and tools.
* Teaches financial system design and development from the ground up using Microsoft Visual C++.NET 2005.
* Provides dozens of examples illustrating the programming approaches in the book
* Chapters are supported by screenshots, equations, sample Excel spreadsheets, and programming code
What people are saying - Write a review
We haven't found any reviews in the usual places.
Other editions - View all
ADO.NET algorithms application args array automated trading system bool build C++/CLI column common language runtime Component Object Model connection contains create database DataSet DataTable delegate Delegates.h delete double event example FIX engine Form1 garbage collection gcnew Hashtable implementation include MyClass.h include stdafx.h inherit InstrObjClass int main(array<System::String interface m_Qty m_Value main thread managed class managed heap managed object method Missing::Value multithreading Mutex MyClass.cpp include StdAfx.h MyClass.h pragma once namespace System namespace System::Collections namespace System::Threading namespace System::Windows::Forms NET Framework nullptr once using namespace operator OptionContracts order management order management system performance pointer pragma once pragma once include ref class MyClass reference type Sample Code SELECT SortedList SQL statement static statistical arbitrage Step StockTrades String synchronous System::EventArgs System::Void SystemManager Tick TraderAPI trading system development unmanaged types updates value type VC++ VC++.NET Visual C++ Visual C++.NET void window XML Schema XTAPI
Page 13 - Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the...
Page 5 - CLI, refers to the Common Language Infrastructure, a multitiered architecture supporting a dynamic component programming model. In many ways, this represents a complete reversal of the C++ object model. A runtime software layer, the virtual execution system, runs between the program and the underlying operating system. Access to the underlying machine is fairly constrained. Access to the types active in the executing program and the associated program infrastructure — both as discovery and construction...
Page 5 - ... supported. The slash (/) represents a binding between C++ and the CLI... So, a first approximation of an answer to what is C++/CLI is that it is a binding of the static C++ object model to the dynamic component object model of the CLI. In short, it is how you do .NET programming using C++ rather than C# or Visual Basic. Like C# and the CLI itself, C++/CLI is undergoing standardization under the European Computer Manufacturers Association (ECMA) and eventually under ISO.