Sunday, January 4, 2009

Technologies

I use Interactive Brokers to do my trading because of their rock bottom commissions and speed of execution. Another plus with IB is that they make their proprietary application programming interface (API) available for free. These APIs are available in Excel DDE, Java, ActiveX, C++. Since I had done some work in Java a long time ago, I was interested in the Java API. Well, after looking at Java programming again, I'm not too enthusiastic about doing anything in Java. It's just too syntax intensive and complicated for a part time project.

Last year, I was introduced to Ruby as a programming language and was able to develop a couple of applications using one of its web application frameworks called Ruby On Rails. These small applications that I developed made me appreciate the beauty, simplicity, and power of Ruby language. So this is my programming language of choice for this project.

Having settled on a language, the next question is: Would it be possible to develop my trading robot in Ruby while calling IB's Java API? Well, anything in programming is possible, but would it be feasible? That is the better question. I've found JRuby, which is essentially Ruby implemented in Java. This will make it easy for my Ruby program to access IB's Java API. It will allow me to do my development in Ruby while accessing any Java classes and libraries. Theoretically this should work.

Note that the technologies I've mentioned are all open source. This is important, since the idea behind this project is to be able to develop and deploy it with no cost. Another advantage of using Java and Ruby is that it is supported on many platforms. While I'm working exclusively on MS Windows at this time, I would like to have the flexibility to deploy it on Linux in the future. When I incorporate a database system in the future, it will also be open source.

No comments: