This was a post that I wanted to save until after the results had been posted. On March 16, last week, I got this email from IB:
"Dear IB Olympiad Participant:
Our internal records show that some of your orders may have been submitted through a non-API method. Do you have an explanation for this?
We need to receive your reply by 10 am ET on Wednesday March 18, 2009.
Sincerely,
Interactive Brokers"
My response was:
"Dear IB,
I am certain that no orders were submitted besides those by my program via the API. I was very careful with the TWS to make sure that I did not accidentally click on the GUI for anything besides the "account" button and the "trades" button. I definitely monitored the pages for API and portfolio but never clicked on anything within the page. One issue might be that I have a personal account with IB that I frequently use throughout the day and I only do manual trades with my personal account. That being said, I am fairly certain that there was never an instance where I accidentally did a manual trade in the IB account thinking it was the Olympiad account. I closely monitored the many positions that my program held in the IB account so I would have known. Furthermore, I did not trade any of the same securities that I can recall in my personal account except DXO and maybe STT.
Perhaps if you told me which trades you think were manual I might be able to help? My program executed many, many trades and there were glitches, so perhaps one of the trades that appears manual was submitted via the API but because of the nature of it, appears manual. For example, in some cases trades were submitted by my program when it closed. Maybe the API connection closed before the actual execution of a trade submitted just before the connection closed. I might be able to help more with more details.
Anyways, I hope we can sort this out because this is my third year in the Olympiad and I am very much aware of how serious you guys are about the rules. You guys sent me a similar email after the end of the competition my first year, and I think my response was pretty much the same then as it is now (and I was not disqualified). It would be very disappointing to get disqualified this year when I am certain that I did not violate any of the rules. Thanks for doing the competition again this year, I hope you will do it again.
Cheers,
Hunter"
To which they responded:
"Dear Hunter,
It appears one manual trade was placed on January 12, and the other one was on January 29."
Then I responded:
"IB,
This is the record I have of Jan 12th (the first day):
http://pythagoruz.blogspot.com/2009/01/ib-olympiad-2009-day-one.html
My guess would be that the trade in question on that day was in DXO in the first few minutes of the day. I still am not entirely sure what happened with that trade but my program bought twice as much DXO in the first few minutes of the day. Then it sold it all, then bought it all back. I'm not entirely sure why this happened other than that there may have been a delay between when the trade executed and when my program received a report of the execution. I also think that I might have shut the program off when I saw this happen, realizing there was an error. I don't recall if I did actually restart the program or not but it seems like something that I would have done. Assuming I am correct about it being this DXO trade, I think you could see that it wouldn't make sense for me to do this manually. This glitch actually cost me about 10k$ due to the bid/ask spread and commissions. If I had been doing a manual trade I would have just bought the DXO and that's it. With DXO my strategy was to use 50% of available "extra" cash to hold the leveraged oil ETF. My program checked periodically throughout the day and when it closed, if the time of day was appropriate, for this condition. So if I exited the program in those first few minutes, then it might have placed an order when i clicked the close button in my program gui. Also, you can see that there were many DXO trades throughout the competition that aren't showing up as manual, so there would be no reason for me to do this manually because my program was trading DXO on its own.
On the Jan 29th, I don't have much in my records:
http://pythagoruz.blogspot.com/2009/01/ib-olympiad-2009-day-eleven.html
From that record it would seem like the trade in question was to open a naked option position, but that seems unlikely since my program entered many naked option positions but no other days are popping up as "manual." If it was a DXO trade then I would it could be a similar issue with a trade submitted as the program exited. Otherwise, I guess it could be another order that executed just after my program closed. I know that all of the stock trades my program submitted had trailing stops (except DXO), so I suppose a trailing stop could execute while the API connection was not live (but then many more "manual" trades would be showing up). My SSO strategy always canceled trailing stops in SSO when the program was turned on and similarly placed a trailing stop in SSO when it closed. These trades would be right on the connection opening and closing as well. The option trades however, should be well within the time the API connection was live unless it took a long time for an order to get filled completely (which often happened with option orders due to illiquidity of those equities).
What comes to mind is that both of these apparent "manual" trades happened near the beginning of the competition when I was working out bugs and spending more time on the code. So I definitely was starting and stopping my code more frequently as problems arose. Later on, in Feb and March, I made fewer changes to my code and mostly left my code running for longer periods of time.
Hope this helps, if you're inclined I would very much be interested in knowing what it was that happened when this gets resolved.
Thanks,
Hunter"
Did anyone else get a message from IB like this? I guess my response was sufficient because I ended up placing.
Monday, March 23, 2009
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment