## BASIC

The BASIC package of SuanShu has the following list of features. calculus functions linear algebra basic optimization pseudo random number generators basic statistics stochastic differential equation curve fitting & interpolation geometry a parallelization framework...

## Calculus

finite difference differentiation using Ridders’ method derivaties of functions for: Beta Beta Regularized Erf Gamma Gaussian multivariate differentiation: (bordered) Hessian gradient Jacobian Riemann integration Riemann integration using substitution rules: Double-Exponential rule Exponential rule Power law singularity Map to the Standard interval integration using Romberg’s method integration using Newton-Cotes formula Simpson’s rule Trapezoidal rule Midpoint rule integration using Gaussian quadrature Legendre polynomials Chebyshev polynomials Laguerre polynomials Hermite...

## Coding an AlgoQuant Strategy

There have been a number of questions on how to create a quantitative trading strategy using AlgoQuant. This is a brief introduction to the process, which will hopefully answer all questions you my have. Basic knowledge of the Java programming language is required, although you do not need to be an expert to follow this tutorial. Sources of Inspiration Of course you will need an idea of the type of strategy you want to develop. There are a number of popular (such as Moving Averages and Pairs Trading) and some more exotic strategies already included in AlgoQuant. You can use them as a template and build your own ideas on top of them for rapid prototyping. If you don’t want to use any of the built in strategies you can of course develop your own from scratch, in which case you may still find existing strategies useful as a code base or as examples if you are ever unsure about how something is done. Implementing a Strategy Once you have an idea for a strategy, coding it up is very straightforward. During a simulation in AlgoQuant a strategy object gets notified if an event (such as a price update) occurs, so that it can then carry out an action if desired. The strategy only has to deal with the type of event it has subscribed to and hence the amount of boilerplate code you have to write is minimal. We define a strategy by implementing the Strategy interface. To handle updates of a certain kind, all you need to do is to process that kind of updates in onEvent()...