Login
Login

Welcome to our Knowledge Base

FAQs

You are here:
< last topic

FAQs

Solutions to program running error

Build Error(NetBeans)

  1. Notification of Error 
  2. Solution
    1. On the top left corner: File – Close All Projects
    2. Re-Open the SVN Updated AlgoQuant 
      • On the top left corner: File – Open Project – AlgoQuant
    3. Re-Build and run the program

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Build Error(IntelliJ IDEA)

  1. Notification of Error
  2. Solution
    1. Open the file “trunk” under AlgoQuant; Not directly open AlgoQuant.
    2. Select the option you need, then right click “Run project”.
  1.  
  •  

Comment on this FAQ

Your email address will not be published. Required fields are marked *

File reading path error(IntelliJ IDEA)

  1. Notification of Error
  2. Solution
    1. In the table of contents, find the right path of the file you need, then “Copy Path”.
    2. Paste the path to the reference in the code, and replace the original path in the code with the full path.

  1.  

⬇️

 

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Installation​

You just need to download algoquant-0.5.0.zip. It comes with the latest version of NM Dev as well. NM Dev is our experimental C# library and is free to download and use.

Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

We in house test all our code using a few thousands unit tests daily with multiple versions of jvm from Sun/Oracle: Java 6 32 and 64 bits, Java 7 32 and 64 bit, Java 8 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 Java 8 64 bit. We need 64 bit to process a large amount of data. We prefer Java 8 because it is a much more mature product with history esp. amid-st the infamous security patches and testing/release policy from Oracle lately.

Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Please do mvn clean install before compile.

Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

  • 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 crash is due to insufficient memory.
Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

This javadoc issue was caused by non-compatible changes in new versions of JDK. To skip the Javadoc phase, you may add the option maven.javadoc.skip=true in maven command.

Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

  • The error is caused by the unreliable Yahoo! server which provides the data source for the test. For example, Yahoo changes the price values frequently. To remedy this situation, you may skip the test phase by putting the option –DskipTests=true in your maven command; or
  • Alternatively, skip that particular test by putting @Ignore JUnit annotation in the test cases.
Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

You may rename your license file to whatever you like, and define “NM Dev.license” property as the file name when you run your program. E.g., java -jar app.jar -NM Dev.license=numericalmethod_mymachine.lic

Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

  • SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J:See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
  • This is probably due to this Eclipse bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=387064
  • One workaround is to use an external Maven installation (instead of the embedded one). Go to Window > Preferences > Maven > Installations, then Add and select a local installation of Maven (say, 3.0.5).
Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

You may skip running the test cases in Maven: http://stackoverflow.com/questions/6074752/in-netbeans-7-how-do-i-skip-testing-and-add-maven-additional-parameters-when-bui

Category: Installation​

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Licensing

Yes, it is valid for both NM Dev (2.x.y) and AlgoQuant (0.5.z), for example.

Category: Licensing

Comment on this FAQ

Your email address will not be published. Required fields are marked *

The basic AlgoQuant library purchase comes with the source code for, well, the AlgoQuant. You can browse the source code. Therefore, AlgoQuant is “source-available” but is not in any sense open source as defined by The Open Source Initiative. AlgoQuant comes with also three packages in NM Dev: basic, stats and optimization. Optional modules are available for additional charges.

Category: Licensing

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Yes, one license file can contain multiple MAC addresses so you can deploy/copy the same file to multiple machines.

Category: Licensing

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Coding

AlgoQuant is a library of financial analytics. At its foundation is an event-processing architecture. You can feed historical, simulated data to the loop to back testing strategy. You can also feed live data to it for trading. The latter requires you to call the brokerage’s API to get live feed and to submit orders for execution. We currently have some support for Interactive Brokers options trading. You can also contract us to add support for your favorite broker’s API.

Our algorithms come with source code. If you use our language-independent trading platform, you can use our algos out-of-box. You can also call Java code from Python, C++ and most modern languages. You can also translate from our code to your favorite language, if really needed.

AlgoQuant is not an application out of box. It is a programming library that you can use to build your own application. You can use it to build your own trading system or research system for stocks, crypto, futures, options, bonds and etc.

Category: Coding

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Only the computer scientists count from 0. Everyone else on the planet earth, including the mathematicians, counts from 1. One reason for the computer scientists to count from 0 is indexing to an array element by adding an offset to a starting address. Back in the old C generation, suppose we do, double[] arr = new double[10]; , arr is also a reference to an address of a double or an array of doubles. The address of the 2nd element in the array is computed by adding 8 bytes to arr, i.e., arr + (2 – 1)* 8. In other words, the 2nd object is 1 unit (8 bytes) offset from the starting address. Therefore, an array index in C, C++, Java, C# is the number of offsets from a starting address. It is not the index of the object. NM Dev philosophy is to match symbolically the math equations as much as possible. Most math equations count from 1. All matrices and vectors count from 1. We think that this matching is important for code readability and verification against publications. When we compare our code to the papers, we need not mentally compute this +/-1. Otherwise, the code is very prone to errors, especially when there is a lot of indexing in a complex equation. To avoid doing the +/-1 in coding to some extend, I suggest that the users skip using [0], and count from 1. For example,

double[] v1 = new double[]{Double.NaN, 1., 2., 3., 4., 5.};
Vector v2 = new DenseVector(1., 2., 3., 4., 5.);
Vector v3 = new DenseVector(3);
for (int i = 1; i < = v1.length; ++i) { v3.set(i, v1[i] + v2.get(i)); }

Category: Coding

Comment on this FAQ

Your email address will not be published. Required fields are marked *

There are two ways you could do to let your strategy get extra information:

  • For information updated with depth, for example, moving average of price, depth volume, etc. You could simply extend the class Depth to include those information, and add your own SequentialCache to the DepthCaches which is passed to the simulator, like:

SequentialCache myDepthCache = generateMyOwnDepthCache();

DepthCaches depthCaches = new DepthCaches();

depthCaches.add(product, myDepthCache);

Simulator simulator = new SimpleSimulator.Builder(depthCaches).build();

  • For non-depth updates, you can pass the cache of the updates to the simulator directly. Let’s take SimulationTimer as an example. SimulationTimer is a SequentialCache and is passed to the simulator like:

Simulator simulator = new SimpleSimulator.Builder(depthCaches).withNonDepthUpdates(timerUpdates).build();

  • Then, we add a simple handler instance in the enum ChannelMessageHandlerFactories for the simulator (e.g., ChannelMessageHandlerFactories.TIMER) to call back your strategy upon updates. Please also see DemoTimer in algoquant-demo for a complete example.
Category: Coding

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Misc

Please note that AlgoQuant is a quantitative trading *research* platform, which is a large collection of trading algorithms and models, as well as a utilities for simulation and backtesting. In order to trade live using AlgoQuant, you will need to replace the simulator, e.g., broker, with a real broker. Our users have reported they connect AlgoQuant with Interactive Brokers API. We can also help you connect to your brokerage.

Category: Misc

Comment on this FAQ

Your email address will not be published. Required fields are marked *

Load More

Was this article helpful?
0 out of 5 stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
How can we improve this article?
Table of Contents

Leave a Reply

Your email address will not be published. Required fields are marked *