« How to Use Matlab for Trading | Main | Apple versus Amazon.com »
Tuesday
Oct112011

Why should I learn a programming language?

Guest post written by Jev Kuznetsov. Kuznetsov runs a quantitative volatility strategy for Bigger Capital. You can find his blog right here.
 
People are bad at math. Some are better than others, but who can calculate ln(sqrt(345)*34)^3.4 in less than 1/1000th of a second? Even the simplest computer can calculate at a rate million times faster than a human, in fact this is the main reason computers have been invented. To use the full capacity of a computer the user should learn how to progam it.
 
People are quickly bored. Imagine you'd have to download around 1500 excel sheets of stock data and then combine them together? Unless you have an autistic disorder you would probably get bored to death. A computer would not mind doing the task, but you'd have to program it.
 
Another example is reaction speed.  It takes ages measured in computer time, for a human to see a price change in a stock and then just press a button.Curious about how fast you can react? Take a test here. Your reaction speed should be around 0.2s,  while even a simple microcontroller (the ones you’ll find almost in any electronic gadget)  will do the same task in 0.0000001s.  Want to compete? If you know what action should be taken in a certain sitiuation, a computer can do the job for you a couple of million times faster, but still you need to tell it what to do by means of programming.
 
Still, even with all that raw computer power nowadays, measured in gigahertz and terabytes, the 'heart' of computers haven't changed much since their invention: they are still not much more than 'calculators'. Yes, we've come a long way in terms of size factor, power consumption, user friendliness and price, but still, computers are incapable of creative thinking, adaptation to new environments and unpredictable situations. A cockroach is more intelligent measured by these standards than the most advanced computer. By combining the human power of creative thinking with the raw processing power of a computer a trader can become supertrader, achieving a consistent return.Financial markets are just like nature, the smartest ones with the best skills for the current (and ever changing) environment survive. The ones that do not adapt get extinct at some point.
Using computers for trading today is a fact of life, and a trader has got no choice but to adapt. Who does not use some form of charting tool to find entry and exit points or an excel sheet to keep track of performance? Not much algorithm here, but it is already a form of computer-assisted trading. Another level is to purchase special purpose software, like spread trading tools. Often it includes some form of 'black box' logic, so you can only hope that it works and continues to work in the future. But why not move to the top of the food chain and learn how to process incredible amounts of data, design own algorithms, backtest strategies, automatically place hundreds of orders and analyze trading performance? By writing your own tools and programs, you'll be able to quickly adapt to every new market environment.
 
Your time invested in learning programming techniques will have a ten-fold return in time saved from doing boring daily trading tasks.
 
Coming next: which programming language to choose?
 
Jev
 

PrintView Printer Friendly Version

EmailEmail Article to Friend

References (4)

References allow you to track sources for this article, as well as articles that were written in response to this article.
  • Response
    Response: www.cx-tec.com
    ??????? ???????? some times its a pain in the ass to read what blog owners wrote but this web site is really user pleasant! .
  • Response
    Response: malariathai.org
    ? ?????? ????????????!
  • Response
    This is usually a article that gies straight for the point , no fluff here . You should publish some far more about this !! Thank you and bookmarked!
  • Response
    - Trading - Why should I learn a programming language?

Reader Comments (10)

Something that I have been interested in doing but have no idea where to start. I am looking forward to reading more!

October 11, 2011 | Unregistered CommenterEric Gong

Eric,

There will be follow up to this post with some videos. Should be interesting.

October 11, 2011 | Registered CommenterMichael Bigger

Trying to learn a little VBA myself.

October 11, 2011 | Registered CommenterNorman Winer

@Norman: VBA? maybe you should reconsider. If you value your time, invest it in something that is scalable. This will be the topic of my coming post. To make a long story short, Matlab and Python are the two languages that you could choose from, based on your available time and budget. Both will give you 10x the power you get with VBA, with comparable learning curve.

October 11, 2011 | Unregistered CommenterJev

Jev,

Your answer is very valu added. Love it.

October 11, 2011 | Registered CommenterMichael Bigger

For rapid development and prototyping of strategies Matlab, Amibroker seems decent. Python is ok, but it's trickier to set-up. Time.

October 12, 2011 | Unregistered CommenterAris

Python and Resolver System is pretty good for rapid proto typing of trading strategies. http://www.resolversystems.com/landing/fp-quant.php

October 12, 2011 | Unregistered CommenterEd

Jev, thanks for the feedback.

October 12, 2011 | Registered CommenterNorman Winer

Learning any Object Oriented language is a good idea.. Once you learn one, you'll easy pickup on the other (if needed) ..

October 18, 2011 | Unregistered CommenterJB

As technology is ever evolving, so will the problems that plague our operational systems. Learning how to handle the day to day operations of a system while knowing how to properly troubleshoot errors are a typical function of an IT specialist. Having the knowledge of a programming language could allow a specialist the abilities edit, create, or bypass troubled code in their systems.

July 25, 2012 | Unregistered Commenternon geographic numbers

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>