Open Source Automated Trading Platform

nickelsberry

Newbie
Messages
1
Likes
0
I am a professional programmer and have just recently begun building applications for an automated futures trader. After investigating a lot of the commercial systems available we decided to build one from scratch to get the most control and the best performance we could.

Then we discovered an open source project in the works called TickZoom. It seems very promising with a heavy focus on speed and performance for live and simulated trading. As a programmer new to trading I am extremely interested in getting into the source to start tinkering and see if it will meet my client's needs. Anyone familiar with the project? Any insight would be appreciated.

Thanks!
 
Yeah. Details are at tickzoom.org but just to save people time, it only runs off of tick data and charting and all features are driven by your trading rule models. So this is a platform for people who want to to historical testing and automate their trading using tick data. It does have a black box server for rolling out your strategies.

It won't be useful for discretionary traders at all or those who want to use bar data only.

Of course, it's free and full source to make it easier to code your strategies.

I'm the author if anyone wants to ask questions. Originally built it for myself but people urged me to share it.

Wayne
 
is it any better than ninjatrader or tradestation?

Well, that depends on what you want to do. On both counts people like the fact it's open source. But there's tons of open source trading tools.

Where TickZOOM really shines is when processing tick data. Neither one of those can do a decent job because they overload PC memory or take to doggone long to process ticks.

TickZOOM can process 10,000,000 ticks for 5 years of data in 40 seconds. You can watch a video demo at tickzoom.org

Now for writing your trading rules, TickZOOM uses C# but it has added in all the "easy" parts of easy language and fixed the not easy parts. So it handles data series the same way as easy language. Index 0 is now, 1 is previous, etc. And it also gives you data arrays that work the same way (unlike EL) plus ordinary data arrays.

Compared to writing strategies in Ninja it's much easier since you have EasyLanguage like data series. Plus TickZOOM invisibly and magically checks the bounds of your arrays like EL. In Ninja it gets messy checking CurrentBar to avoid causing an exception. Plus, it's cool in TickZOOM that you can run the entire system in the debugger, set a break point on a specific bar and step through your strategy. It makes finding bugs much faster.

NOTE: TickZOOM has nice looking charts but ZERO manual control for drawing lines, etc. In TickZOOM you do all the drawing in your trading rules. Why? It's because TickZOOM is built to automate your trading system and even comes with a black box server so you can roll it out to live trading, hands free.

NinjaTrader in theory can handle black box trading but there' no way to turn off the charting and so it's difficult. TickZOOM runs in black box mode without a GUI. In that case it writes stats to a file system in HTML so you can look at them.

Now comparing data, TickZOOM supports any combination of bar intervals in the same strategies. It supports mixing bar and time series with range, volume, tick, point & figure, and other types of bars.

In other words, TickZOOM is comparable to those but very different. It's primarily for professional black box traders or those who want to become one.

Hey, the major down side to TickZOOM right now is that it's new so it doesn't have tons of indicators already available.

Any specific questions?

Wayne
 
Last edited:
TickZOOM is built to automate your trading system and even comes with a black box server so you can roll it out to live trading, hands free.

NinjaTrader in theory can handle black box trading but there' no way to turn off the charting and so it's difficult. TickZOOM runs in black box mode without a GUI. In that case it writes stats to a file system in HTML so you can look at them.

I think I know what you mean - but to my mind, a black box was always something where you have no idea or control over what goes on inside.

Rather you mean that you can set this core part of TickZOOM to run your own TickZOOM system that you scripted, and execute your trades, without it displaying an interface or requiring any user input?
 
I think I know what you mean - but to my mind, a black box was always something where you have no idea or control over what goes on inside.

Rather you mean that you can set this core part of TickZOOM to run your own TickZOOM system that you scripted, and execute your trades, without it displaying an interface or requiring any user input?

It can run in both modes. I often run it in "real time" mode which means it's running with live on my local PC with a Chart that I can watch. And it also has overrides so I can go "flat" if I don't like what the strategy is doing, etc.

But once you're happy with the strategy, if you want it to run hands free, then you can deploy it (without code change) to the black box which will run it as a windows service and output performance stats and chart in HTML format at whatever interval you wish. I do it after each trade whether entering or exiting.

That way I can log in to the server and see what's going on. Eventually, you could set up an web server to serve up those pages and hit it from anywhere, more conveniently.

Does that answer your question?

Wayne
 
I think I know what you mean - but to my mind, a black box was always something where you have no idea or control over what goes on inside.

Rather you mean that you can set this core part of TickZOOM to run your own TickZOOM system that you scripted, and execute your trades, without it displaying an interface or requiring any user input?

Hey, maybe you're right about "black box" I found this definition online and it doesn't really fit TickZOOM. What's a better term? I used to call it the "order server" but it doesn't quit fit.

Black Box, Definition

A proprietary computerized trading system whose formulas and calculations are not disclosed or readily accessible. Users enter information and the system utilizes pre-programmed logic to return output to the user, which may include trading signals and other data.

Let me specify and you can help with a name for it.

TickZOOM has an "Execution Server" which gets quotes from a broker (MB Trading for example) sends them to the "order/black box server". It then responds with a trading signal. The execution server converts the trading signal into buy/sell orders, tracks, and reconciles orders, etc.

So this order/black box server only is responsible for turning quote data (tick data) into bars and exercising your trading rules.

The idea behind this architecture is that it's relatively easy to create other execution server (for other brokers) or quote servers (for data only providers) and connect them to the order/black box server.

Maybe we can call it the "Trading Server" instead of order server or black box server.

I don't know. Ideas are welcome. But the trading server will become the central brain when you have many different strategies running perhaps on many different markets or exchanges.

That's because you often want a "portfolio" view and control over the whole thing. So it will be centralized but run with multiprocessors or even clustered, etc.

Wayne
 
I should write this privately but I found there is no way.

I would like to build the really minimum trading system for academic research purposes using Java. Any resources that might be helpful? UMI kind of?

What is your advice for me to start with?
Thanks in advance ~
 
You probably wanna look at tradable, its an open trading platform where traders have complete freedom in the way they want their platform to look, feel and behave. a few london firms are offering it like tradenext
 
If you are looking for a trading platform using Java, I suggest you check out algotrader.ch
The platform is based on CEP and ESP and allows for rapid implementation and backtesting of simple as well as complex strategies. There is both an open-source and a commercial version.
At our firm we are using the commercial version (trading mainly volatility strategies), but for academic purposes the open-source version should do the trick. There is a bit of a learning curve, yet once you are familiar with the instruments the development/testing of new trading ideas is very straight forward.
 
Top