We’re rewarding the question askers & reputations are being recalculated! Read more.
36

I'll just add that with Interactive Brokers you have to be aware of their cancel fees. Remember, Interactive Brokers owns Timber Hill, a very large and active market maker. They will discourage you from competing with Timber Hill through monetary disincentives, among other things. For example, if you send a directed order (i.e., you don't allow IB to SMART ...


19

For linear algebra etc, I am partial to Armadillo with Eigen as an alternative. Both are modern (eg templated), actively developed and fairly high-performance. I like my C++ together with R and stand behind a few projects like Rcpp and RInside which facilitate that integration; RcppArmadillo then brings Armadillo to R. For quant stuff, there is of course ...


17

As of April 2014, the 32-bit version of kdb+ is now free to try. This free version may not be used in production systems. The only technical limitation vs. the 64-bit version is that you can only address up to 4GB of memory per process.


16

At discretelogics we just released a file format to store time series in flat files called "TeaFiles". In addition to raw data they can store the binary item layout and a description of the contents. C#, C++, Python APIs are available open source, licensed under the GPL, see discretelogics.com/teafiles/ Using memory mapping, read performance reaches that ...


15

I help organize the F#unctional Londoners Meetup group. A good number of our 450+ members work in London's finance sector. Over the past 2 years we have hosted a number of talks related to F# in trading: Simon Cousins on F# in the Enterprise - F# at E.ON Energy Trading Daniel Egloff - F# on the GPU with Alea.CUDA - developed for derivative pricing Adam ...


14

You could look into Pandas, a Python library that integrates with PyTables. It was created by someone at AQR and has some similar features as KDB.


14

I took a quick look at Matlab's Financial Toolbox and attempted to map the features to corresponding Python packages – For asset allocation, portfolio optimization, and risk analytics: Standard packages such as scipy provide a large number of optimizers that should suit your needs. There are also pre-canned packages that do portfolio optimizations more ...


13

I don't like KDB+/q. For KDB+ experts, I am not picking a fight. The following is just my own understanding on KDB+ and TimeSeries Database. You're warmly welcome to correct me if anything wrong in your eyes :). First of all, during my near one year's KDB+/q development experience, I never ever find a paper based benchmark result indicating KDB+/q ...


13

Of course it is fast enough. But what is fast enough? I know guys who trade off Excel sheets and they make millions, but those guys are clearly not active in high frequency space. So, it entirely depends on your trading frequency and average holding period. I also know of shops that run live trading systems by calling R functions, so, obviously Matlab ...


12

Black Scholes in java? This guy, Christian Fries http://www.christian-fries.de/, has some impressive codes and a book on these topics. You can find http://www.christian-fries.de/finmath/book/index.html the contents as well as the library itself http://www.finmath.net/java/. As well as your request, you'll see LIBOR model, HJM model, binomial model, etc. ...


12

Except in highly unusual cases, financial PDEs lack analytic solutions. The mathematical tools used are Monte Carlo, plus the usual ones for solving PDEs on grids, almost always one of the following: Trees, for very simple cases Explicit finite differencing, for throwaway projects or very specific cases Implicit or Crank-Nicolson finite differencing for ...


11

People use C++ because it offers a balance between performance and convenience. It is true that you can get Java to be (almost) as fast as C++, but you need to put a lot of effort into it. On the other hand, an average-quality C++ code will be much faster than average-quality Java code. I know this from personal experience.


11

The only way to find out is to try it! It shouldn't take very long to write some simple code to simulate the computations you plan to do, and run it in a loop. With current versions of Visual Basic (VB.net), performance should be comparable to Java in most cases because the basic technology (compiling to intermediate code and then running a just-in-time ...


11

KDB is useful for two reasons: - Storage of data; and easy access to the data (i.e. querying ticks..etc) - Rich query language that supports many Quant functions however; what KDB does not do well; is the quant query language. I have evaluated KDB, Matlab, and R. So far R is the winner. I have not found any fast solution for storing and retrieving data; ...


11

A popular open-source option for the numerics in .NET is Math.NET (https://github.com/mathnet/mathnet-numerics). It has both managed implementations and allows you to use the optimized MKL native libraries. This use of .NET as a front-end to an optimized native library is quite common. Meta.Numerics (http://www.meta-numerics.net) is an alternative open-...


11

We use Node for reporting but not as part of our main signal generating trading system. To be honest the answer will almost certainly be yes for every common programming technology as it just takes one person to use it somewhere to make the answer yes. Just look at OCaml, before Jane street, most techno logiest on the street had never heard of it and now ...


11

People get this problem wrong because they always end up discussing the theoretical advantages of these languages rather than the practical uses of these languages. Theoretically speaking: Haskell is elegant and has many of the theoretical advantages (language conciseness, orthogonality, parametric polymorphism, ADTs, higher-order functions, smart compiler)...


10

What I use in my job: boost (the mathematical part) Eigen gsl glpk and some scary legacy code ;-)


10

All .NET languages are perfectly able to compete with the speed of C and even FORTRAN. It all depends on if they are used the correct way. 1) Both Java and .NET have considerable longer startup times than most native app. Therefore, you will have to have the application running and not starting it over and over on request. 2) Memory management is crucial ...


10

Try OpenFIGI (formerly the Bloomberg Global Identifier - BBGID)


9

Yes, there are. For pure technical indicator libraries I would first check out: http://www.ta-lib.org/ Its open source and they provide APIs for both C# and Java among others. Let me know if you look for commercial ones but this one is definitely the most comprehensive in terms of open source code.


9

SciChart I used SciChart and was happy with it. This is extremely rich charting library ($500 per licence; \$1000 with source code). Infragistics A premium UI library. I haven't tried Infragistics charts particularly, but I'm sure they are as much perfect as their other controls (grids, ribbons etc). MS Chart Extended WPF Toolkit SciChart vs ...


9

You don't just simply grab some random open source order book implementation and expect it to work. Every market is different. For example, markets have different rules for how you should handle priority in the order book (some are price-time, some are price-size-time, etc). Grabbing Joe Blow's code and expecting it to just work is only going to lead to pain ...


8

The optimization possibilities offered by C++ templates can make code potentially very fast; faster than C, and faster than Java could ever hope to be. (A C programmer will typically use a function pointer and a compiler cannot inline that; a C++ functor can and will be inlined.) I know C# has templates that look like C++'s but I cannot personally comment ...


8

Not all will agree that "the maintenance cost of the program [is] lower than the C++ one." For just one thing, when we use C# or similar, we have to wrestle with the C# "framework," which aims, but often fails, to deliver a "richer," "more powerful" development environment. But "richer, more powerful" is in the eye of the language designer or design ...


8

I know you mentioned that you already know about Yahoo's ability to do this. However, I thought I'd add the following snippet on how to do this with Yahoo. It's a trivial HTTP Get, and is likely the quickest and easiest way to get the information you're after: > curl "http://download.finance.yahoo.com/d/quotes.csv?s=CSCO&f=j1" 86.991B That will ...


8

I have only seen one framework that works in a research oriented development environment which is the spiral model. Using try agile methodologies is impossible because the frontier of tasks is not known. Agile is very useful for building/maintaining known applications with known functionality and problem spaces. It is not useful for research oriented ...


8

The "Component ES" section of ?ES says: For the decomposition of Gaussian ES, the estimated mean and covariance matrix are needed. For the decomposition of modified ES, also estimates of the coskewness and cokurtosis matrices are needed. The estimate of the coskewness and cokurtosis matrices are what take such a long time. You can calculate them ...


8

I believe this is a nice paper for you to start with. Check out what references it cited and who cited it. Markov Chain Monte Carlo Analysis of Option Pricing Models "Use the Markov Chain Monte Carlo (MCMC) method to investigate a large class of continuous-time option pricing models. These include: constant-volatility, stochastic volatility, price jump-...


8

The NAG library is quite commonly used


Only top voted, non community-wiki answers of a minimum length are eligible