Tag Info

Hot answers tagged

30

A choice of C, C++, or Java is practically required somewhere in the stack since most data vendors only supply bindings for one of those languages. Once the data arrives, though, the trading desk can use whatever it wants. In addition to the above three, I've seen these used in production: Visual Basic / Excel q / kdb+ R Python MATLAB OCaml I've also ...


29

The other posters have already noted that the prevalent use of C++ appears to be due to historical reasons and unwillingness to change. Those reasons aren't the ones that people should be applying. If you want real reasons to use C++, how about the following: Powerful infrastructure. Take a look at Intel Parallel Studio for an example. Performance compared ...


18

Credit Suisse has publicly stated that they use F# for some valuation tasks (which tend to be very parallelizable). Here's a link to a talk abstract from a Commercial Users of Functional Programming workshop: http://cufp.org/archive/2008/abstracts.html#MansellHoward I'm not sure if there's a video of the talk floating around or not. Since F# targets the ...


15

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 ...


14

Look at Genesis Trading. Most of the sales guys there are kinda like used car salesmen but they will work with you. Starting up with 50K should not be a problem for them. The offer full depth of book feeds if you are colocated with them. They do offer DMA and you can specify all routing instructions for your orders rather than getting stuck on IBs router. ...


14

There are tons of languages used in this field. As for Java-based trading platforms, Marketcetera is popular with customers. To justify switching languages, you'd need to show that there is a bottleneck preventing your team from collecting more P&L. Have you run a profiler and compared the results with tcpdump? You must show that your existing platform ...


14

The main reason is traders/quants currently in business often learned C++ in their formation rather than C#, they naturally used this language when starting new projects. It will gradually evolve, I guess you could have asked "what's the reason cobol is still the most popular language in Finance" 20 years ago. Also most projects in production use C++ but I ...


13

I believe that C++ is the most common quantitative infrastructure language. I don't know of a single hedge fund or investment bank that doesn't use it extensively or completely (and I spoke to a lot of them at some point in the past). In some cases, as the former Lehman brothers-now-Barclays, C++ was the only language of choice, which is a bit extreme, given ...


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

Oracle hosted a Trading Applications Developer Workshop in New York on March 15th, 2011. The slides from each of the presentations are here. One of them covers java for Trading Applications, and it seemed to me that the biggest issue raised by the audience was garbage collection. The presentation talks about some configuration parameters that can limit ...


12

I don't know if it the most popular but it is popular for sure - I think there are several reasons for that, which not only apply to QF: It is a mature language with many years of development behind it There are many people who are able to program it Many books, tutorials, websites, communities are available (network effect!) It is fast There are many ...


11

Regarding your order management issue, every order should have a unique identifier that the user can reference; in FIX, this is the ClOrdID. The parameters of every order the user requests should be stored in a table keyed by this identifier. If your goal is to prevent duplicate orders from going out, consider having a trade volume limit per each symbol. ...


11

This is off-topic and maybe belongs to StackOverflow, but here goes. 1. Compile QuantLib The best way is to open the Visual Studio Command Prompt using a shortcut under Programs→Microsoft Visual Studio→Visual Studio Tools. Now, you need to navigate to the QuantLib folder inside the folder where you have QuantLib (there are other folders such as ...


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 ...


10

In a typical HFT scenario (process incoming UDP quotes and send TCP order entry responses) well written Java can compete with C++ for pure speed. If you need more speed, look to improve the following: Your code (setup a good benchmark and then profile and tune) Your networking environment (low-latency switches, DMA NICs) Your architecture (are you doing ...


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 ...


9

I am implementing a method in Java to calculate the variance, covariance, and value at risk for a portfolio, which should be flexible for use with any number of assets in a portfolio. I am struggling with how to calculate the covariance of the assets as I can only find formulae to do so for two or three sets of values. Are you sure you ...


9

I have these posts favorited from stackoverflow. They might help you. High Frequency Trading What programming language(s) is algorithmic trading software written in? Why does a derivative trading position always require C++ knowledge? Jane Street Capital, a high-frequency market making firm, uses OCaml. Here are videos from the head programmer where he ...


9

I haven't had the time to try them personally, but if I were you I'd try The Solver Foundation or maybe you can find something useful within these libraries. What I did was to compile a MATLAB algorithm and used the produced DLL. UPDATE: I read yesterday in the Wilmott Magazine that the NAG Library is also available for .Net now. Again, I haven't used it ...


8

The problem is that you are creating a new random number generator for each iteration. Move new MersenneTwister() out of the loop: MersenneTwister mtsign = new MersenneTwister(); MersenneTwister mt = new MersenneTwister(); for(int i = 0; i<= NumberOfTrials-1; i++ ) { // use mtsign and mt here ... } Furthermore, you don't need two generators, you ...


8

Let me quote a few excerpts from Paul & Dominics Guide to Quant Careers (version 2.0): Most quant jobs ask for C++, with much smaller demand for C# and Excel VBA and Java. Although Excel is the second most common skill, alas Excel VBA is regarded as “trivial” so few employers will be impressed by mastering it. This attitude is responsible for major ...


8

If you're looking for Java or C/C++/C#, then you will have a much harder time with this than if you looked at R, Matlab, or Python (with Scipy). For those other languages, I recommend: Java: Weka is one of the most complete data mining libraries out there. Fortunately, it also comes with a very good book -- "Data Mining: Practical Machine Learning ...


8

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 ...


8

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 ...


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 ...


8

The Pagès-Wilbertz paper is a very good one. To answer more directly to you underlying question that is: "in which quant finance area to use hardware acceleration?"; the points to take into account are: GPU is very good for parallel computations (already underlined in remarks) but bad for memory sharing between the master software and the GPU-hosted ...


7

I worked for a big investment bank a few years ago that announced it was moving all quant models to F#. The goal behind the switch was that F# is a functional programming language and available on .NET, both of which were desirable qualities for this particular company. I left before they got started on the transition, so I don't know what came of it. As ...


7

You can use https://projects.coin-or.org/Clp Other options: http://sourceforge.net/projects/lpsolve/ and in R http://cran.r-project.org/web/packages/lpSolve/index.html They all solve pure linear, integer and mixed problems


7

Whichever treasury system the banks implements it will have pieces in C/C++ and/or Java. So C++ is just easier to interface. Also, as little as the difference of performance is, it does matter if you need to plug that model in a Montecarlo simulation running hundreds of scenarios - for value at risk computation.


7

"Extreme programming" is a buzzword that has received a lot of hype in the past few years. However it's important to note that it's only one item in the long list of SW development philosophies and that it's not - contrary to its proponents' claims - a panacea. On the other side it's very beneficial to follow a few simple rules while writing even small ...



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