# Certificate in Quantitative Investment

Numerical Method Inc. has the vision to promote rational investment and trading. We offer the best value continuous training and education for capital market professionals.

### Our Vision

We have chosen to do wealth management, investment or trading, among many alternatives like value investing or technical analysis, in a mathematical way. The very reason is our passion for seeking the truth. Scientist Joseph Needham concluded that it was the zeal for truth that sparked and fueled the European advancement of science. Professors Chincarini and Kim argued that truth triumphs Gordon Gekko’s greed in the financial world. “Mathematics is the language with which God wrote the universe,” wrote Galileo Galilei. It is the supreme scientific truth that our civilization has achieved so far (or so we thought until the mid of 20th century). In fact, as many philosophers such as Plato believe, it is the only scientific truth. For example, the laws of natural numbers or the value of π are fundamentally true or unchangeable and do not require any specific context. Newton’s laws are not like that. They do not apply to very big or very small worlds. Therefore, we want to use exactly the same language that describes the physical Universe so amazingly well to discover the truths in the financial world. On the other hand, if mathematics did not work, what would?

During our journey to learn about mathematical wealth management, we created a simple four step process to generate a trading strategy (see Haksun’s course lecture 1). This process requires three essential skills: (1) mathematics, (2) programming and (3) creativity. Mathematics is what translates a trading idea or intuition into well-defined meaningful symbols. Starting from the assumptions, we can derive the properties of the made-concrete trading strategy. Before betting our first \$1, we can compute the expected return (or P&L distribution) and the expected holding time of a trade. Programming is what translates the mathematical symbols into lines of code for trading research and execution. An effective programming skill is like an effective communication skill. We collaborate with our research tools by “talking” to them. An effective usage of the tools increases the probability of generating effective trading strategies. At the very least, it reduces in the execution systems the number of bugs that could cause millions of dollars of losses. It is easy to hire good mathematicians; you look for them in New York City. It is easy to hire good programmers; you look for them in the Silicon Valley. However, it is extremely difficult to hire someone who can come up and code up complex mathematical trading strategy. Our education program focuses on teaching these two skills.

### Our Uniqueness

We differentiate ourselves from the traditional master’s degrees in financial mathematics or financial engineering. Firstly, these programs take too long a time (e.g., 3 months for a semester) to touch only the surface of the subjects. For instance, the standard topics are: options pricing, stochastic calculus and data analysis. However, you do not really need to do a degree program to learn them. Reading the right books is more efficient and effective. I (namely, Haksun here) literally picked up the knowledge from my bedtime reading: Financial Calculus: An Introduction to Derivative Pricing, Baxter and Rennie; Introduction To Stochastic Calculus With Applications, Klebaner; Statistical Analysis of Financial Data in S-Plus, Carmona. (I know they are not the standard textbooks used in universities.) The point is that the knowledge is easy and does not require a teacher. On the other hand, some topics are very useful in mathematical trading and yet very hard to self-learn them. If you would like to challenge yourself, try to study cointegration (the theory not just the R package “urca) by reading Likelihood-Based Inference in Cointegrated Vector Autoregressive Models, Johansen, or try to solve an optimal asset allocation problem with jumps by reading Applied Stochastic Control of Jump Diffusions, Oksendal, Sulem. Our courses are designed to make these more useful yet rather inaccessible mathematics concepts easy to understand and thus accessible to you when designing your trading strategy. More importantly, the focus of our mathematics courses is on teaching mathematical thinking, namely translating a trading intuition into solid equations, rather than on formulas or mechanical computational rules.

Secondly, most graduates from these university programs cannot code professionally even though they may have gone through a year-long programming training. For example, if these students think that they can code in C++, think again after you read Scott Meyers’ books. From our interviewing experience, most junior programmers have not read the three books, hence not being able to code. Learning a (natural) language is not about learning words and grammars. Similarly, learning a programming language (Java/C#/C++/etc.) is not about learning the constructs and syntax. A professional programmer writes not only functional code that machines can read but elegant code that humans can read too. Writing elegant code is an art like painting or composing. The problem with bad spaghetti code is that there is no way to tell whether the code works or not maybe other than on a few toy examples. The consequence in trading could mean losses of millions of dollars. There are

some basic skills to elegant coding like debugging, testing, software design, design patterns, algorithm design and analysis. All these essential programming knowledge, especially the most important programming skill, hitting F7/F8 in NetBeans or F5/F6 in Eclipse (debugging), is completely absent in school curriculums. The reason is simple: even computer science students are not trained to do programming; PhDs write for their research the code that no one reads or uses; professors write papers and ask students to code for them. Our courses are designed to teach professional programming from the basic to the advanced techniques. The focus is on writing code that is solidly objected-oriented, unified/consistent, and testable.