Discussion in 'Professional Trading' started by lukek, May 27, 2008.

  1. lukek


    I noticed some employers require you have experience in programming. What do you think is a general programming language useful for a trader?
  2. C++ seems to be in demand. I remember that because that's what my GPA was in school. :cool:
  3. C# and dot-net are now "de rigeur". The Ninja Trader platform is just one example. Powerful and flexible....good for intraday swing trading systems.

    However, for high frequency scalping type of systems, and any systems using Level II data, C++ is the only way to go IMHO.
  4. There are several families of programming languages, where each have their strengths and weaknesses. There are also followers and "camps" for the languages where emotions and discussions sometimes overflows with activity.

    One thread of languages is the C, C++ and then a a lot of variations like D, Objective-C etc.

    The modern object-oriented languages are Java, C# and C++. The strength of Java is that it has a fantastic standardized library of highly integrating "parts you can assemble", and can run on most platforms. C# is really good for the Microsoft Windows platform (and only there), it has taken an eclectic approach and has a lot of nice features. C++ can make your programs run very fast if needed, lacks some standardized library, but is widely available.

    Then there are functional languages which sometimes are superbly fitted to handling long lists of data. Sometimes they can outperform the object-oriented languages, but mostly not. They tend to generate much shorter and more intricate programs.

    There are also vector oriented programming languages which prevail in speed tests, like K from Kx Systems and it's descendants.

    And there are heaps of other languages catering to every fancy that a programmer have gotten over the years. Some are more inclined to fast prototyping. Then there is also the task of getting a programming environment that suits your creative development needs. After that - some build and deployment environment that suits your needs ... e.g like "continuous integration" with maybe a Hudson server ( ). This can save you precious time in fixing errors if working in a team, or wanting automated testing.

    Lastly, there are lots of third-party libraries that can help you get some edge. Examples are fuzzy logic libraries, rules/expert system libraries, neural network libraries for training artificial intelligence, scripting languages that can be embedded so that you can experiment with changes "live" ... and so on.

    I wrote all of this just to give you some starting seeds for the vast possibilities that are available - and lastly I would say that any of the major programming languages or specialized languages for trading will do for you. The important thing is that you learn how to think for programming, and see how to solve things algorithmically. Efficient problem solving is the most important thing you'll learn. You will also appreciate having some knowledge of discrete mathematics, logic and automatas/grammars etc.

    I am inclined to say that Java is a good language for starting out. The reason for this is that you learn all the basics of most programming languages, there are tons of good books for introduction, lots of Internet activity with interest groups and so on, it is also an evolving language that will teach you a lot as you progress, as well as there being a plethora of examples of whatever you would want to do. Fixing errors is also pretty easy with Java compared to C++.
  5. lukek


    I decided I am going to attempt C++, any good books to read?
  6. RedRat


    I recommend you to learn C#. It is easier to learn and modern. I am a C++ programmer myself.

    If you know C++ it will be easy to study new languages like C# or java, but you have to use it for two years at least. With C# you will learn also .Net platform.

    As for books, read any book by Richter, but may be complex for newbies. Richter
  7. rosy2


    for a trader useful programming would be SQL, a scripting language (perl, python, ruby), and understand java, c# or c++ but you dont have to be good.
  8. Yes, it is easier to get started with both C# and Java - or scripting languages like pointed out too.

    However - one thing I think we can all agree on - knowing several languages is something we all appreciate, and it makes us adapt better approaches to various problems - as long as we can keep an open mind. The various programming languages front many different paradigms and problem-solving techniques or modelling.

    Starting out with C++ will not be bad, and there are a lot of great classic textbooks with regards to programming techniques in C++. However, it is a bit "dead in the water" as a programming language for the future. Most of us have "moved on", and thus C++ does not get all the focus it used to have around one decade ago and a bit earlier.

    The best thing when choosing something to learn is having something practical that interests you as well. So if you are interfacing with some trading software, then you will absolutely love learning about whatever programming language. That should be the most important factor, because like others said too - you can easily learn another programming language that uses a somewhat similar paradigm.
  9. kmkkra


    If perhaps you are interested in an online tutorial then I suppose "" is a pretty good place for a begginer. On the main paige, just click the "C++ Language Tutorial" reference.

    Also, the website's search engine usually will find a lot of specific info on many of the words associated with C++.

    You will also need a compiler, and I suppose a good and free compiler would be "Dev-C++". As a begginer, this compiler may suffice.
    #10     May 29, 2008