• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

2008 Interactive Brokers Collegiate Trading Olympiad

I'm able to now connect, which is a milestone, with the C++ files from IB.

This is encouraging. I hope to trim this code down and make it suitable for my alg.

Getting my alg. parameters into the right functions in the API is going to be my next hurdle. It would be so easy if I could just plug it into a spreadsheet...

Charles,
Look at the yahoo group that Gus posted, there should be lot of ready solutions for us. The remaining piece would be to backtest and enter order into a text file to send it in.
 
I'm able to now connect, which is a milestone, with the C++ files from IB.

This is encouraging. I hope to trim this code down and make it suitable for my alg.

Getting my alg. parameters into the right functions in the API is going to be my next hurdle. It would be so easy if I could just plug it into a spreadsheet...

Charles, if your algo uses Technical Analysis indicators, you can download the TA-Lib which is free

Technical Analysis Library and Software

It has a C++ implementation so you don't have to reinvent the wheel.
 
Folks:
Sorry for the late reply on this. Better late than never I suppose.
Regarding intra-day data, Subotnick Center has about 3 years worth of
NYSE TAQ data that covers all NMS equities. (including NYSE and NASDAQ).
We also have 2+ years of Equity Options data. A bit of heavy lifting would
be required if you want/need this data. You will find nothing else more
comprehensive however.

You can also get intra-day and end of day data from Reuters, Bloomberg
and TradeStation. Let me know (via my Baruch e-mail is best) if you need
assistance with any of this.

Regarding the IB API, I am developing a set of tutorials (C++ console, Visual C++
and Visual Basic) for my CIS 4620 Financial Information Technologies class. These
could be used to get a basic familiarity with accessing real-time data, submitting
orders, etc.

As I am still tweaking the tutorials I would not want to post them at this time.
However if you have a specific question or want to take a quick look let me know.

Cheers,

Prof. H.
 
Hi,

This is a question for Gus and/or Alain. Correct me if I am wrong, but from what I understand Gus said that you pretty much do scans (using whatever pleases you) and then enter orders through the API using Excel for example to be filled the next day. Now my question is...isn't that almost like entering orders manually through TWS? Also, I am using AmiBroker and I believe that it has a plugin that allows you to enter orders through the IB API...can you do that for this Olympiad? I have used AmiBroker quite a bit before and it would be nice to focus on strategies and worry less about the programming part.

Thanks in advance,

Emad
 
I use the API for order entry and position management but depending on the system, not necessarily for pre-trade qualification.

In addition to submitting a trade for execution through the API there are stops to attach based on the fill price, adding or reducing position size during the day and exiting based on the market price, time or some other filter. The idea is for the students to use the API to pass the instrument being traded, price, size, get quote info such as bid, ask, account information….. The instrument selection is only one area of trading and there are many more facets to a successful system.

As far as I know, Interactive Brokers rating criteria is who makes the most money and whether the trades are entered through the API. While they ask what software was used for the API interface, I don’t know if a pre-canned connection package violates the spirit of the rules or not considering the work that goes into the strategy development…..

The calls to the API are not that difficult to master but I still feel that students do not spend sufficient time in back testing strategies and expect to win on the fly during the contest…..
 
Hi,

This is a question for Gus and/or Alain. Correct me if I am wrong, but from what I understand Gus said that you pretty much do scans (using whatever pleases you) and then enter orders through the API using Excel for example to be filled the next day. Now my question is...isn't that almost like entering orders manually through TWS? Also, I am using AmiBroker and I believe that it has a plugin that allows you to enter orders through the IB API...can you do that for this Olympiad? I have used AmiBroker quite a bit before and it would be nice to focus on strategies and worry less about the programming part.

Thanks in advance,

Emad

I used Amibroker last year as well... I know couple of other students used it as well. We used the IB connector and it worked without problems. The plug-in was developed in C++ so, AFAIK, it doesn't violate the terms of the competition.

I was able to scan prices given different timeframes using Amibroker. I concentrated in 5 minutes and up timeframes.

As Gus said, concentrate on your strategy. My strategy worked w ellwith the mini SP but it was horrible with Oil and Gas. I didn't try it on the latter products so I went in kind of in the dark.
 
Thanks Gus. Thanks Alain.

Yes, from reading this thread I noticed that you guys stress the importance of focusing on a good strategy. This is why I wanted to use Amirbroker...I find it easy to use and I can focus more on the strategy and less on the coding part (my coding is not too strong... I am also a grad student and time is very scarce).

thanks again guys,

Emad
 
I have a question how specific does our trading plan have to be?

Can I put "planning to trade XYZ using fundamental and technical data"


Also, can I use the Excel DDE spreadsheet? I will create an algorithm that will tell it when to place trades, but it still uses the spreadsheet to do that.
 
I have a question how specific does our trading plan have to be?

Can I put "planning to trade XYZ using fundamental and technical data"


Also, can I use the Excel DDE spreadsheet? I will create an algorithm that will tell it when to place trades, but it still uses the spreadsheet to do that.


general trading plan is enough.
 
I'm in as usual... but I don't have as much time as I had last year (school, work and Trevor :) )
 
I am going to be participating in it and using the DDE. I was wondering if anyone else was able to get the correct FX quotes through it.

Also does anyone know how to calculate a moving average? Im finding the coding extremely tough
 
I would look to get pricing data for any instrument on you sheet and then worry about forex in particular. Can you see ES (S&P500 emini) futures data on your sheet?? You need to get the naming of the instrument correct (ESH8 for the emini futures) or for the Euro contract on Globex 6EH8. On TWS the euro cash FX is "EUR.USD" but I use futures and not the cash market for my systems.

All this assumes the software works and you have enabled the TWS "configure, API" tabs correctly.
 
Yeah I have everything working perfectly in my program and the dde. I found out that it some wierd detail with the DDE.
 
Friends:

As I understand it, an existing order is modified by simply sending a new order with the same ID. However, when I do this, I get the "duplicate order" error.

Does anyone have any idea why? (I've also posted this question to the IB Bulletin Board.)

Also, it appears that there is no provision for active position monitoring with the API. Do I understand this correctly?

Thanks in advance.

cdw
 
CDW,

Best place to post TWS API interface questions and to do a search since it is a very active forum is TWSAPI@yahoogroups.com

In short, orders can be modified and current position info is routed through the API.

Cheers, Gus
 
Back
Top