JSystemTrader (Java/IB)

Discussion in 'Automated Trading' started by nonlinear5, Sep 26, 2006.

  1. If you are developing your own Java app based on Interactive Brokers' API, you may be interested in JSystemTrader, which is an open source framework for developing the automated trading system.

    JSystemTrader is a fully automated system that can trade various types of market securities during the trading day without user monitoring. All aspects of trading, such as obtaining quotes, analyzing price patterns, making trading decisions, placing orders, monitoring order executions, and controlling the risk are automated according to the user preferences which are coded in the strategy class.

    The reason I publish JSystemTrader in its entire form is to have the code reviewed for potential problems, as well as to give Java developers a start in autotrading using IB's API.

    http://www.interactivebrokers.com/discus/messages/2/37888.html
     
  2. mwahal

    mwahal

  3. mwahal

    mwahal

    Its not about the battle of the system, but the problems associated with a platform which is tied directly to money. Losers will look for blame everyone else and you will be first escapegoat !

    Read about thethreats of litigations and lawsuits. There are some very good posts EARLIER in that thread which warn about litigations and other possibilites. But, unfortunately, the posters were shunned away.
     
  4. One big difference between JSystemTrader and frostengine is JSystemTrader distributes his Java source code and others are starting to contribute. It seems to be headed in the direction of an open source project on SourceForge along with their license/disclaimers. That should offer the protection he needs.

    I've looked at his code and it is a pretty good framework tailored to how IB does things. If this project does become a collaborative effort I could see this really catching on. Using a framework that has had many more eyeballs looking for bugs than a single person project is pretty compelling.
     
  5. elit

    elit



    An open source type of thing is what automated trading needs, don't you think?

    I have come to the conclusion that everything that has been free before, will eventually start costing money if it gets popular.

    These kinds of software are not that hard to write, i THINK. If you know a little programming and put some effort into it you can get your own piece of software. But most often traders don't know how to program or don't have time to or something.






    Question for nonlinear5, how can a user of the software program his own indicators/system rules? Is this done in java directly in the software code? I wouldn't have the time or know-how to write my software from scratch to operate with IB or anything like that, although I suppose I would be able to write my system rules and indicators in Java, since I'm able to in metastock/amibroker. And I have some java experience from university courses.
     
  6. The user implements his strategy in a new class that extends the base Strategy class. No other changes to the system are required. I've included a few sample strategy implementations in the package.
     
  7. I agree with your first sentence and disagree with the second. A few years ago Window 95 and Microsoft Office cost a few hundred dollars. Now Ubuntu (Linux) is free and I think anyone who has used it would agree that Ubuntu has at least matched the Windows 95/Office era software in features and reliability. I think what we are seeing here in the trading world is partly a backlash from users who are tired of high priced & buggy software that is too complicated and still does not do what they want. Those of us who resorted to writing our own software are now plentiful as a result. An Open Source core of reliable, well tested and well designed software (ala Linux) could very well result.

    I think you have to make a distinction between the code that executes the trading strategy and the code that does everything else. The code that executes strategies can be very simple. The code underneath that does everything else must be very complex. That needs to be open source and well designed & debugged. Ideally a programing environment can be set up so people with little programming knowledge can write their strategies and it somehow becomes compiled Java code. This would be possible starting with an open source framework such as NetBeans or Eclipse. Those frameworks are well suited to modular designs where a quote module talks to a trading module (or simulator module) which talks to a chart module, etc. A project like that would really be interesting. What nonlinear5 has done here is a good start, lets hope it flourishes!
     
  8. elit

    elit

    Yes, I agree about linux. But I meant small software that just some ordinary guy once write to use for himself, and then offer to the public. Then when this guy notices that the software gets popular he starts charging for it. That sucks.

    Regarding the complexity, Yes I agree. But I have got the feeling that it is not that difficult to write IF you know how to program. Many threads here at ET, when newbies are looking for this type of software the standard answer is "write your own software". This indicates that coders think it would be easy, that any guy from the streets can do, it if he learns to program a bit.

    I know some Java, but I would never be able to program this kind of software from scratch. I just don't have the time. I'm very interested to see how this software turns out! Hope it will rock!

     
  9. elit

    elit

    Could you please elaborate If I don't get this correct. As far I understand there is the "main program" - the base strategy class, that for example downloads data and provides this data to the "users' class", and after that sends generated orders to the broker.

    Then there is another class where the user can program his system rules, and indicators calculated on the data that main class provides. This class processes the data and sends orders, based on system rules, in a specific form to main class that sends orders to broker. This class is somewhat like writing the code in charting software language (amibroker, tradestation, in metasotck...) when your writing your system rules and indicators, only in Java?


    My java knowhow is a bit rusty, but I do think I would get this going. Also there are thousands and yet thousands of people that know Java and are able to help online. And a great amout of java books... :)
     
    #10     Sep 29, 2006