I really need your advice

Quote from TigerBalm:

Giddyup,

Initially learn a scripting language : python or R. Initially avoid Java, C++ and C#. Why : for the sheer pleasure of being able to produce things that work in the real world quickly instead of wasting time on build management. If you get serious about it, you can always jump to one of the more serious languages / environments.

If you want me to pick just one thing to learn : go for R, because it straddles the worlds of both programming and finance quite well (@see www.quantmod.com). Trust me on this piece of advice. You'll thank me lots later. All the very best! :-)
Good advice, but to really get launched quickly, go to ASL's (Application-Specific Languages). The two I am aware of: Easy Language (Traderstation) and PowerLanguage (Multicharts). ASL's provide a rich framework for you to build systems and strategies very quickly. Without this, you're stuck building that framework yourself.
For some real experts, this complex endeavor provides an advantage, because they can customize their platform for very specific needs (hedging, scalping, exotic options, basket trading, etc).
As a non-expert, you might find yourself constantly reworking and debugging your platform and therefore have no time left to build and test automated and algorithmic strategies which alone is an EXTREMELY TIME-CONSUMING set of tasks. And more importantly, the latter is something that takes creative thought and persistence. These qualities are not found in the armies of the outsourcing firms.
 
Quote from Giddiyup:

I have ALWAYS wanted to program, and infact in my younger years did some basic stuff with the commodore 64. Ive sometimes regretted not going into that line of work long ago , although trading has been good to me (until recently).

I am prepared to take 2 years out of my life (possibly 4)to learn programming , go to school, whatever it takes, to get into this field and have a chance at this career. I would really like to apply programming skills to get a job with some firm creating trading algos.

There's a lot more than having a desire/passion to do programming in the quant/algo trading space. Take a look at some of the requirements for the jobs listed here so that you have a better understanding of where you fit in:

http://www.wilmott.com/categories.cfm?catid=5

If you meet the educational requirements, more power to you. If not, but you're still interested, you should target one or more of the popular open source projects that are out there and try to get involved. Your goal should be getting development access to a few of them and getting your name known as a contributor of non-trivial changes.

More than anything, you need to build a track record if you're going to have any hope of building a career for yourself.

Here's a decent project off the top of my head:
http://quantlib.org/index.shtml

Here's a collection of investment related open source projects that you should also take a look at:
http://sourceforge.net/softwaremap/...7&sortdir=desc&limit=25&sort=latest_file_date
 
Quote from braincell:

Also, once you learn C#, and get very good at it, it will take you maybe a month or two to become just as good in C++.

I do not agree with this statement unless you are sticking with Managed C++ in .NET.

The concept of memory management (no garbage collection) is very important in regular C++ programming and it takes quite some care to write non-trivial code that does not leak memory.

If C++ is on your radar, I suggest going this route:

1. learn programming concepts using C# (or Java)
2. learn data structures and algorithms in C++
3. become proficient in C# (or Java)

then, you will find switching to/from C++ much easier.

It is good learning data structures using C++ because it forces you to understand how memory is allocated and managed.

2-4 years is completely realistic. Programming is not that hard.
 
Don't waste years of time on the above. Instead, become proficient at designing and specifying money-making algos and strategies. You'll be handsomely rewarded. Otherwise, in the programming world of today, you'll find yourself in competition with the "mud men" (remember Lord of the Ring ?).
 
Even if you use a framework like TradeLink you will still need to learn at least a .NET language. Any strategy will need some coding. It is helpful to understand programming.

A lot of software development still happen here. It is a highly cultural and creative occupation. Outsourcing can only go so far.
 
Quote from syswizard:

Giddyup -
I think you are making a HUGE MISTAKE. I've been in IT and programming for over 25 years. I'm now at 40% of my income of 20 years ago. Why ? There is NO MONEY in this business....it's all gone overseas, and thanks to the lobbiests, there are now literally millions of Indians in this country competing for jobs and contracts. If the Indians don't take your money, there are these places called "agencies" who will gladly take a huge chunk of your income for the "privilege" of placing you at a client site.
Just look at the growth of Tata, WiPro, HCL, Cognizant, Info Sys and you'll see what I mean. These companies didn't exist 20 years ago.
There is a good reason they are all prospering.

I second that. Been there and had the same cut :(
But if the guy wants really a career in programming then the advice given about c# is really a very good one. Not to land a job at a hedge fund, cause 90% of them require C++, and not basic stuff but almost wizard level (everybody now is requiring proficiency in design patterns (not trading patterns, something else)).
C# is easy, can be a bridge to C++, and you can find a good job in a software company with it and design your own trading systems (for 1 minute up I would say).

Just my 2c
Momony
 
Going with C# is a good idea....again, as a starting point into programming logic and coding. Both Tradelink and Ninja Trader offer the necessary and important "Framework" that he could use to build his strategies. To do that effectively, he'll have to take some courses in statistics.
Spending the time and money to become a phD "Quant" ala Wilmot is a risky endeavor IMHO. There are plenty of examples of successful quant hedge funds that haven't really needed that kind of expertise. Much of that stuff is geared towards Neural Networks anyway which has really gotten a bad reputation in the automated trading world.
 
I used to make demos on the c64. =)

I'm sorry to say that it will be difficult. I started programming when I was 8, started in basic then went to assembly, learned C++, learned C#. Programming well is a performance activity. It requires a lot. It could take up to 10 years to become an expert programming, although it is possible to become strong in as little as 2 years and maybe less if you are specialized.

However, the firms aren't really looking for programmer/traders. They are looking for quants. Minimum requirement would typically be a Phd or heavy math/science degree. You'd need serious math skill.

I personally wouldn't like it, and I enjoy programming. I think you want to get into programming you can do that-- maybe making IPhone apps or custom web apps. If you're creative then it could be fun. But, as far as becoming a quant, would be difficult and probably not rewarding unless you have a love of math and a extreme ability. There are some higher paying jobs for programming at Investment Banks that are "normal" non quant jobs. These look very attractive in terms of salary. However, they would only be interested in somebody with years of experience.

Sure, you can program your own strategies. ETA about 6 months to 1.5 year. That's pretty fun.

PS: I second going with C#. C++ is a most difficult language that is much lower level and only required for performance critical apps. One reason C++ is difficult is that even the people who think they got it screw up.
 
Quote from syswizard:

As a non-expert, you might find yourself constantly reworking and debugging your platform and therefore have no time left to build and test automated and algorithmic strategies which alone is an EXTREMELY TIME-CONSUMING set of tasks.

+1 for the solid productivity-friendly advice!
 
It is NOT necessary to learn C++ to become a competent programmer.

However, if you ever want to use C++ in the future, I suggest getting to know a few lower-level concepts like stack vs heap allocation and memory management. It is important to keep in mind those things or you will never develop a sense for them. C# is too good in handling such details behind the scene.

If time is tight at least spend a week hating it. Then come back and love C# more and more. :-)
 
Back
Top