Ahh! Too many options, help for noob.

Discussion in 'Automated Trading' started by skellington, Jan 29, 2008.

  1. Hi everyone,

    Love this site. I've been lurking on/off for a while now and now am reading to jump into the automated trading arena.

    The main problem I'm facing at the moment is not having a great picture on the pros/cons of all the various trading programs/brokers/etc. There seem to be so many options and just as many pos/neg opinions on many of them.

    So what I want to do is:

    - Write an automated trading app that can backtest programs against all equities (and etfs), where I can use built in indicators but also author my own by having access to the raw trade histories. I want NO limitations to how I can interpret the historical data and then how I can turn that into a trading program.
    - Automate and trade on a broker that is stable and trustworthy.

    I guess at this point I just don't know if wealth-lab(fidelity), strategy desk(ameritrade), openquant, ninjatrader will do what I'm looking for.

    I am considering just writing an app from the ground up that uses the Ameritrade API (access to trading, history, etc.) but I wouldn't mind having access to great graphing and prebuilt indicators.

    I'd like to trade on Ameritrade through their API but I would be open to moving to IB or another broker (using FIX or whatever).

    Thanks for any help,

  2. bespoke


    The only way to have no limitations is to write it from the ground up. I wrote my own and find myself making revisions everyday as I want to add new features. It's great.

    But writing from the ground up is very time consuming but I feel its well worth the effort in the end. I originally wrote the program in VB as it's the language I'm most used to, then wrote it in C++ because I thought it could increase speed but had too many headaches with 'access violations' with the large array sizes I had (ie. 20 million in multi-dimensional arrays) and other stuff. Also took longer than VB to load historical tick data from files into memory for some reason and that's the most time consuming part when I'm backtesting as I generally read about in about 10 gigs of tick data per test per year. But I'm sure it's all due to my lack of C++ knowledge. Then I completed it in VB and it's been smooth sailing from here. Don't know why I'm telling you all this.

    I guess my point is, if you've got the time to spare then write your own. Else, buy one of the many programs out there and save yourself the hundreds of hours. I hear openquant/smartquant seems to be the best.

    Also, the mainstream indicators are beyond easy to program. The equations are available anywhere on the net. I like drawing my own graphs cause you can customize it anyway you want.
  3. Hi bespoke,

    I am a professional programmer so I can write this sort of thing from the ground up, but like you say, is it worth the time?

    From what I've been able to learn so far Wealth-Lab, Amibroker, OpenQuant, etc. all kind of do the same thing - act as a framework where you can use the build in stuff or write script (or call external code) to do custom strategy stuff.

    I want to have access to all historical data and do lots of intensive computation across all of it while developing my own strategy (not based on simple indicators). Is this sort of thing possible within something like Amibroker?

    I guess that's my main problem at this time. I don't know what the limitations are of the various strategy programs or even things like: why do people use eQuotes instead of opentick or other data vendors? I know a lot of this knowledge will come the hard way but it would be nice to at least be pointed in the right general direction.

    Thanks for your help!

  4. You said in your original post that you want to be able to backtest against "all equities" do you mean all at one time or just a smaller list? If you really do mean all then that is a VERY big limitation. I do my backtesting on all US equities and there are not many platforms that support it. Amibroker is the only one that I have used or evaluated that really does it. Many applications make you run your backtest on each symbol individualy. A drawback of Amibroker is actually trading the strategy you have developed. There is an auto trading plugin but it is still considered beta and has not been updated in over a year. After a couple years of working with and evaluating different platforms I finally decided to write my own from scratch. I tried to avoid it for a long time because I wanted to spend my time working on trading systems not writing a backtesting and execution program (even though my background is in development). I just could never find a program that would support what I wanted to do so I finally decided I had no other choice.
  5. maxpi


    I've often thought that one way to go would be to get a Tradestation account and use the Easy Language as a wrapper for dll calls. You can do backtests using the radarscreen and global variables on a thousand issues at a time with just Easy Language, been there done that with TS2000 and TS8. What I have no way to know is what the limitations might be compared to writing an app from the ground up... Radarscreen would get you all the data you needed and the charting is beautiful and user friendly. data handling and charting seem pretty basic to me, I can't see what a custom app could do that TS can't other than change the units of the x and y axes maybe...
  6. bespoke


    Like someone mentioned, a lot of these systems can only test 1 stock at a time. What use is that? And since you are doing a basket of stocks, its important to get an idea of your max drawdowns at any given moment in the past on your basket. I like knowing what my drawdowns (or favorable excursions) are down to the second. I don't know of any software that will do that.

    Since you're a professional programmer I would definitely suggest you spend the time writing one. Although I would try out some of the free trails of these programs so you can get a flavor of what things you can writing. I'm an amateur programmer and I could do it quite easily so I'm sure it'll be a breeze for you.

    I only have experience using wealth-lab and from what I gather you can only run 1 strategy real time with approx 15 stocks before it begins to lag. I run 5 strategies on 500 stocks and only lag a bit during extremely high volume moments (though I believe its my API feed thats lagging me).
  7. tradesystem: Yes, I'd like to test against everything in NASDAQ, NYSE, AMEX (but after being filtered down somewhat probably)

    Wayne: I'll definitely look into IB and its API.

    Bespoke: Do you mind saying what broker/api your using and where you're getting your historical/real-time data from? Also, are you drawing your charts in your app by hand (directly to a surface) or are you using a 3rd party charting library?

    Also, how did you get all of the tick resolution historical data? Did you just download it from opentick and store it locally? That sounds like it would take forever to pull down even a years worth of data. :)

    Thanks for all the help guys, I'm definitely leaning towards writing my own. In c++ and possibly using the IB api, maybe FIX, maybe ameritrade API (I'm not sure how important pricing will be to my strategy yet).
  8. bespoke


    I'm using the Sterling API because that's the platform I use at the office. I would rate it just okay. I think the last time they revised the API was in 2004 =/

    I download my historical data from opentick. It takes.... forever. The worst part is that it only downloads at about 30 kb/s per stock (I guess its a cap). Its best to make a few accounts and set them to download all at the same time. It took me about 3 weeks to download a years worth of 100 stocks for 2007. The other years take less time because theres a lot less prints. Also, you have to download all exchanges seperately and then combine them together (each TS print has a sequence number, so you can sort them in order). I've only focused on NYSE and I find the only exchanges worth downloading are N, T, D, and P. The rest will give you weird out of the money prints and out of sequence prints.

    For the charts, I draw them myself within my program but I don't use them real-time because I don't chart trade. I just use my the charts from my platform.
  9. With some programming you can do this with SAS. It's what most academic finance researchers use, and they do a lot of studies where they backtest trading strategies for the entire universe of stocks over long periods of time.
    #10     Jan 31, 2008