While this book addresses dozens of important technological issues that you will face
when building real-world automated trading systems in .NET, it does not show you how to
build a profitable trading system. (It is important nevertheless to recognize that technologi-
cal superiority can be a major competitive advantage.) There are four disciplines that go
into automated trading system development—computer science, quantitative finance, trad-
ing strategy, and quality management—and this is a computer science book. Development
and testing of trade selection and risk management methods are topics for other books.
This book covers the basics of what a financial engineer should know about program-
ming in .NET—objects, SQL, multithreading, interoperability, messaging, order selection
algorithms, and order management techniques.
In this text, I have tried to include market-driven, job-relevant information. Today’s
employers in the financial markets demand job readiness. If you want to get a job in the
trading and money management industry, which more and more every day is driven by
automated systems, you will have to have a competitive level of knowledge of program-
ming. You should realize that this book is an overview, however. It will not teach you every-
thing. Technology as a topic is obviously far too vast to cover in one book. Even narrowing
it down to VC++.NET for trading system development is still far too vast. Over the pages,
I will present several important ideas, try to point you in the right direction, and hopefully
in the end inspire you to do additional research on the topic of automated trading system
development. From there, the diligent financial engineer must investigate further on his or
her own.
1.1. ISO C++
This book covers the programming aspects of trading system development and assumes
that you are familiar with ISO C++ programming concepts, including pointers, functions,
objects, and the Standard Template Library.
1.2. Structure of This Book
Automated trading systems find their purest form in high-frequency strategies where speed
of calculation and execution are the competitive advantage. Other systems, where milli-
seconds are not necessarily of the essence, may be fully automated or partially automated.
This text will focus on introducing programming and design concepts for higher frequency
systems.
Discussion of all the alternative technological concepts of trading system design and
presentation of a complete trading system are beyond the scope of a book. The trading
systems presented in this book are drastically simplified in order to illustrate common
programming and design concepts.
This book is divided into four sections. The first section focuses purely on an introduc-
tion to Visual C++.NET types and programming techniques. The second section focuses
on multithreading. The third focuses on interoperability and connectivity and the fourth on
objects, design patterns, and architectural concepts for automated trading system develop-
ment.
In the end, simply reading this book will not make you an expert. To really learn the
material in this book, you should also work through the code samples presented. Only by
involving yourself in the process, and furthermore going beyond it, will you gain under-
standing and intuition. It’s hard work, but it will pay off.
2 CHAPTER
◆
1 Introduction