Coding Tools

To set up the coding environment for a new AlgoQuant project, please follow the following steps. JDK SuanShu and AlgoQuant are Java based code. Before we can code using the libraries, we need to install the latest Java Development Kit (JDK). If you skip this step, you can download it together with NetBeans in the next step. NetBeans NetBeans is our preferred IDE for Java programming. You may download and install JDK and then NetBeans. Or you can download “NetBeans with JDK” directly.   NetBeans can be downloaded from this link. If you have no Java programming experience, choose the one labeled “Java SE”. Run the installer. TortoiseSVN Download TortoiseSVN. Run the installer. More information on svn can be found in this wiki. After installing TortoiseSVN, right click in Explorer in the empty space in the folder you want to put your project in. Click “SVN checkout” to check out project. The following example checks out AlgoQuant. You will use the URL given to you instead. In most cases, you do NOT need to check out AlgoQuant as it will be automatically downloaded by Maven when you build your project. Coding in NetBeans Launch NetBeans. Open your project. You can right click on a package/folder to create a new Java class to start coding. If you are asked to modify AlgoQuant code, copy and paste the code in your project and do the editing there. Do NOT modify source code in AlgoQuant directly. To build your project, right click on the project and hit “Clean and Build”. Alternatively, you can hit this button on the top bar. To run your project, you need to...

AlgoQuant

AlgoQuant is a collection of trading-bot building tools. It is an actively developed and ever more comprehensive library of code for building systems for algorithmic trading in all aspects. You can use it to build systems for backtesting, trading strategy generation, data analysis, research, and actual order execution. Out of the box, AlgoQuant supports data import, data filtering and cleaning, in-samples calibration, out-samples simulation and performance analysis. Beyond these, the main competitive advantage that AlgoQuant has over other software is the incorporation of SuanShu, a powerful modern library of mathematics, statistics, optimization and data mining. Unified Mathematical Analysis and Modeling Library AlgoQuant has a large collection of mathematical models, many from top academic journal publications, which a trader can use as building blocks to create his own trading models. For example, to build a mean reversion model, the trader can combine (D’Aspremont, 2011) to construct a maximally mean reverting portfolio of two assets and then trade the pair using (Elliott, van der Hoek, & Malcolm, 2005) pair trading strategy. Both mathematical modules are available in the library. In addition, AlgoQuant has a large number of algorithms that the trader can apply. For example, in the area of portfolio optimization, AlgoQuant covers Quadratic Programming (Markowitz or Modern Portfolio Theory), Second Order Conic Programming as well as Differential Evolution. In other words, using AlgoQuant, the trader does not need external math software like Excel, R, or MATLAB, and there are many readily available modules and algorithms to use. He can quickly build up very complicated mathematical strategies by combining together the components from the library. Uniqueness Numerical Method Inc. has a unique way...

Quantitative Trading

Quantitative trading is when traders design mathematical models to describe and predict market movements. Often these models are implemented on computer systems for automatic execution. Traders start with a vague trading intuition. Using mathematics, they turn the idea into a quantitative model for analysis, back testing and refinement. When this quantitative model proves to be likely profitable by passing the rigorous statistical tests, the traders implement them on computer systems for execution. Algorithmic trading is the process where ideas are turned into mathematical models and then coded into computer programs for systematic trading. It is a science where mathematics and computer sciences meet. Here is a collection of resources.   Tools AlgoQuant Quantitative Trading Strategies AlgoQuant Quantitative Models mean reversion trend following? NTU 2011 group projects NUS 2011 group projects Research ​Introduction to Algorithmic Trading Strategies literature historical data...

Demo

After the initial setup, you can run demo programs included in the sub-project algoquant-demo. Source files that end in “…Demo.java” (e.g, RunAllDemo.java), are executable programs for demonstration. To run a demo program, you right click on it and hit Run File (or...

FAQs

Installation On your web site I can read, suanshu.net-2.0.0.zip and algoquant-0.5.0.zip. Should we download both, or does AlgoQuant suffice and we get SuanShu with the algoquant-0.x.x.zip? You just need to download algoquant-0.5.0.zip. It comes with the latest version of SuanShu as well. SuanShu.net is our experimental C# library and is free to download and use. Which version of Java do you recommend? We in house test all our code using a few thousands unit tests daily with 4 versions of jvm from Sun/Oracle: 1.6.x 32 and 64 bits, 1.7.x 32 and 64 bit. Your choice of jvm version is a personal decision. Although some of our developers use the IBM clone with eclipse, it is not part of our routine testing procedure. My personal preference is the Oracle 1.6.x 64 bit. We need 64 bit to process a large amount of data. We prefer 1.6.x because it is a much more mature product with history esp. amid-st the infamous security patches and testing/release policy from Oracle lately. mvn compile does not work! Please do mvn clean install before compile. When building AlgoQuant with Maven, I got errors with the plugin Surefire. E.g., Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.14:test (default-test) on project algoquant-core: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.14:test failed This problem seems to happen mostly on a Mac. Please try to use Surefire version 2.14.1 or above. You may try to run the maven build with option “-e”. You may try to skip the unit testing by option “-skipTests”. (In NetBeans, there is such an option under “Maven”.) If none of the above works, our wild guess is that your VM...