Open Source Black Box Trade Platform in C#?

Discussion in 'Automated Trading' started by greaterreturn, Dec 9, 2008.

Thread Status:
Not open for further replies.
  1. Equalizer, interesting post.

    I can't find prices on their sites. But first impression is they market to "institutions" and so are probably prohibitively expensive. And certainly not open source.

    What's your opinion? Do you feel an open source and affordable solution is needed in the market?

    I hear frequently of "black box" traders writing their own trading platforms since they can't find anything affordable to use that had the features needed.

    I had the same problem.

    It seems the industry could greatly benefit from an open source system that all these genius trader collaborate on to grow over time.

    That's my question. Is it worth it?

    Sincerely,
    Wayne
     
    #11     Dec 9, 2008
  2. Just FYI, you can get a free 32-bit version here:

    http://kx.com/developers/software.php

    Does your platform come with a complete frontend/GUI to develop tradingmodels or is it a collection of classes with which i can build my own application?

    Anyways, it would be a very interesting project. I'm using openquant just now, but keep hitting brickwalls with it in certain areas (and if you ask for additional functionality, the standard answer is "You sound like a Quanthouse customer" - which is their institutional branch, with institutional level pricing). An open source solution would be much welcome.

    Id be interested in beta-testing and have a closer look (i am fluid in C# and have a collection of FX tick data myself). Could you upload some documentation of your project somewhere?
     
    #12     Dec 9, 2008
  3. DaveN

    DaveN

    Wayne,

    Your project does sound interesting. I'll echo the joys of a full-featured debugger as well as code folding for ease of editing. I use VS2k8 Pro, and haven't used SharpDevelop, but I've seen some very positive user comments.

    I'd like to take a look at the project and help once you are ready for some user testing.
     
    #13     Dec 9, 2008


  4. Right. Still, they say you have to pay to run it in "production". So I need to find out how much that is. Anyone know?

    If it's affordable, I'd like to try it out. It could easily be made as an option to the platform. So a user could use the built in tick format or flip a switch and connect to a kdb system.

    One nice feature they have is the SQL selection of data. I was considering adding something like that when the number of ticks reaches the billions.

    Right now, I just load all the ticks and just filter the time frames or dates when running. It's quick that way until the size of ticks and number of instruments gets large. Kdb might be that solution. It depends on the price as to whether it's worth it.

    Interestingly, it seems less important that the data storage of tick be open source. So that's another reason a commercial tick storage/retrieval solution might work.

    Wayne
     
    #14     Dec 9, 2008


  5. Both. Let me discuss the GUI design and features.

    One important irritation with some of the commercial trading platforms I found was that they were tightly integrated with the GUI. In other words, I could not run their system unless the GUI was visible.

    That made it impossible to run as some kind of service or program that operates 24 hours a day as a black box.

    So this system does have a GUI for charting, etc. but it's "loosely coupled" with the trading engine.

    That means that the exact same trading rules you use to test your strategy can be run directly on the TickZoom black box server without modification. It simply ignores all the draw commands for the GUI. You can optionally make it write an image out to disk at intervals so you "see" what's happening while running in the black box.

    Or you can run it live on the development server with real time updating charts to monitor what's happening when you're first testing it out in a live environment.

    For the charting, it currently uses the FREE open source ZedGraph project as the back end charting engine. It's nice because it's SO well optimized for speed. It has most of the niceties like scrolling and zoom, etc.

    I've simply added a thin layer to map the different time frames into the drawing commands for ZedGraph and add features like seeing bar data when you hover the mouse.

    But due to the "disconnectability" of the GUI part from the trading engine, it would be easy to connect your own or incorporate this into your own application. I hope you'll instead contribute application features back to the community project.

    Further, let me point out the difference in philosophy relating to charting and time frames.

    In many systems, you first set the time frame for your chart like 5 minute bars, 10 minute, or daily and then apply strategies or indicators to that chart. And they use the same time frame as the chart.

    In TickZoom, that's separated. In that way you set inside your strategy/trading rules themselves which time frames it wants to use. So they can run without any chart engine.

    For the charts, you can set multiple timeframes as your view into the strategies, indicators. Specifically, the following.

    PeriodForChart : This setting says how to physically space the bars on the chart.

    PeriodForDisplay: This setting tells which bars to display. Notice these can be different and you can display multiple bar periods.

    PeriodForUpdate: This setting tell how often to update the values on the chart. At this interval, it samples all the bars and indicators to get the most recent information.

    Ordinarily this is the same as the PeriodForChart but you can make it update faster. This is especially useful if you're watching real time data live.

    In other words, it can draw a 30 minute chart and mix bars on the chart for 15 minutes, Range bars, 5 minutes, tick bars, etc. All on the same chart.

    Remember, all these setting have nothing to do with your strategy settings. These simply define your "view" into the strategies.

    For you programmer types, this is a very good MVC (model/view/controller) design as you can see.

    Additionally, when you run tests, you can have a portfolio of strategies running simultaneously.

    For each one it pops up a separate resulting chart for each strategy.

    Of course, when you run optimization of strategy parameters, it doesn't show charts--only the statistics you want to analyze.

    Sincerely,
    Wayne
     
    #15     Dec 9, 2008
  6. Exactly my feeling. The critical component, it seems to get a good open source product off the ground is, first of all, a solid, we designed "core" or central engine that allows for people to add on features or plugins.

    I feel I have that but would LOVE you and a few other C# programmer/trader types to try it and give feedback on perhaps how to make it easier, etc.

    One thing I'm changing is how the engine interacts with the strategies and indicators.

    Previously it was using an object graph. But I want to switch it to use the PONO concept. (Plain old .Net Objects) rather than enforcing interfaces on the classes.

    That way you can have more freedom in building any class hierarchy or object graph you like in testing.

    BTW, tickzoom has built-in profiling that runs in debug mode so can enable to spot quickly any performance issues.

    Wayne
     
    #16     Dec 9, 2008
  7. Good question. For documentation, I want to imitate the ZedGraph project documentation.

    It has been very quick and easy to learn.

    It uses two powerful features.

    1. all the classes and methods are carefully and clearly documented so that "auto-complete" in the code gives full explanation of each method, what it does.

    That's so convenient because you don't have to open a website reference or a book to figure out what to do.

    2. The documentation it does have are all in the form of working examples on a web site. You can simply copy and paste the code and it works.

    I want to do the same thing. Does that sound good?

    I have already started adding documentation for the auto complete features to methods. I hope to finish that soon.

    So for beta testing, I want to provide some working examples to get you started.

    And then as you ask questions of "how do I ..."?

    I'll make a working example and post it on the website for others to learn.

    Frankly, the beta testing will mostly help me flush out what needs to be done as examples.

    Sincerely,
    Wayne
     
    #17     Dec 9, 2008
  8. For documentation. It'll use the same wiki website that ZedGraph uses. Give me a few days to setup the wiki at tickzoom.org.

    I can create some initial examples, installation instructions, etc. to get it started.

    Then beta testers can post questions and comments there so the documentation grows.

    That works well since the wiki software already has text search and features for you to add questions or correct information yourself.

    Sincerely,
    Wayne
     
    #18     Dec 9, 2008
  9. You should be able to use VS2K8 pro to do this without a problem. Code folding is certainly nice.

    I think I can get stuff setup for beta testing sometime after the new year.

    Sincerely,
    Wayne
     
    #19     Dec 9, 2008
  10. Looking forward to that.

    That whole project sounds quite monumental. How long have you been working on it?
     
    #20     Dec 9, 2008
Thread Status:
Not open for further replies.