JSystemTrader (Java/IB)

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

  1. I think you guys are over-worried.

    If someone could sue the developer to death simply because there's a bug which costs him money, then no one would release any software, not to say releasing any beta software for testing. Bill Gates would be bankrupt due to its OS vulnerabilities and crashes. And all brokerage firms would close down.

    Don't forget this software is freeware, in which it is very different from shareware. An individual and business/corporation is treated differently too.
     
    #11     Sep 29, 2006
  2. No. You have been the winner.

    The author (frostengine) says he is going to charge for the product, in some ways at least. So the title is misleading. It's not really a free platform. So far he has not released any version (even Beta) yet for testing, not to say his software is closed source; you are open source.

    You have been the winner.

    Thanks for your generosity.
     
    #12     Sep 29, 2006
  3. Elit, you understand it correctly. JSystemTrader is a pure Java implementation of the ATS. It gives you the framework with the essential services (such as obtaining the quotes, placing orders, tracking executions, logging, etc), and the infrastructure to define trading strategies in your own Java classes. You can think of JSystemTrader as an ATS with the "plug-and-play" strategy classes. That is, if you write your own strategy class that extends the existing base Strategy class, nothing else needs to change in the system. JSystemTrader will load your class, and it knows how to run it. In your strategy class, you define your trading rules, such as conditions for entry/exit, position sizing, and risk control.

    I encourage you guys to download JSystemTrader, examine the source code, and run it against your paper accounts. It's quite mature now (in terms of stability and reliability), and I already placed literally thousands of trades with it in my paper trading account. Perhaps the best way to understand how JSystemTrader works is to study the code, although I do have the user manual included in the distribution (which I plan to expand).

    Again, JSystemTrader is the framework for Java developers, and a certain amount of Java programming expertise is required. I do have sample strategies included in the distribution, so you don't have to program anything at all (just compile and run), but these sample strategies are just that, samples to demonstrate how to write your own strategy classes.
     
    #13     Sep 29, 2006
  4. elit

    elit

    nonlinear5, this sound nice. It would be a good time for me to dust off my Java-knowledge and try this!

    I have a few more questions, if you don't mind.

    Are all types of orders supported?

    How about trailing stops, is this something I would have to program myself or is it included already in the software?

    Are you running the software on windows or linux? Do you know if it will run without problems on linux? I might be interested in running the software on linux, since it might be a more stable platform, which of course is important for AST.
     
    #14     Sep 30, 2006
  5. Only market orders are supported at this point. The support for limit, stop, and trailing orders would require a great deal of complications into JSystemTrader's order management.

    I'm running on Windows XP, but since JSystemTrader is a Java app, it should run on other platforms, too. I have not tested it on non-Windows machines, though.

    There is a lot more about JSystemTrader in this thread on IB' discussion borad:
    http://www.interactivebrokers.com/discus/messages/2/37888.html?1159653254
     
    #15     Sep 30, 2006
  6. JSystemTrader version 3.1 is now available for downloading. You may also be interested in participating in the JSystemTrader Discussion on the IB's discussion board. List of changes in this release:
    • Strategy Performance Charts that show prices, indicators, and executions
    • Virtual TWS, which is a historical quotes and execution generation engine which replaces TWS. That is, you don't need to have TWS running, and you don't even need to be connected to the Net, and yet you can develop, run, and test JSystemTrader. The virtual engine generates a price history that follows a random walk, so it looks pretty much like a stock/future chart. The usefullness of the Virtual TWS is doubled by the fact that in that mode, the execution follows exactly the same code path as it does while JST is connected to actual TWS. Thus, you can test all your stuff 24/7 from anywhere.
    • Sample strategies fixed and documented better
    • Other improvements
    Your comments, suggestions, and bug reports are welcomed.
     
    #16     Oct 10, 2006
  7. #17     Oct 12, 2006
  8. A few more releases of JSystemTrader have been made. It's now in version 3.4. Download from: http://www.myjavaserver.com/~nonlinear/JSystemTrader/JSystemTrader.html. As a reminder, JSystemTrader is open source framework for Java developers for implementing automated trading systems using IB's API. The relevant discussion is at http://www.interactivebrokers.com/cgi-bin/discus/board-auth.pl?lm=1161539813&file=/2/37888.html. Here is a cumulative list of changes since the last time I posted:
    • HTMLLog
      -- optimized for performance
      -- more readable
      -- appends at the end instead of overwriting the previous log
    • Strategy performance charts
      -- show correct high/low/open/close
      -- executions markers are outlined better
      -- can display multiple indicators in multiple subcharts
    • Historical Data
      -- after the initial hist request, the subsequent requests ask for 3 bars, instead of 1, to allow the correction of the previous bars.
    • Sample Strategies
      -- added MultiIndicator.java as an example of a strategy implementation where multiple indicators can be displayed in multiple subcharts.
    • One hour time difference bug fixed
    • Time Refactoring. There were multiple places where the annoying conversion from seconds to milliseconds took place. Now it's in one place only.
    • Internationalization Fix. Virtual TWS would not work with German regional options in Windows XP. This fix should work anywhere on the planet.
    • Real Account Check. In case the unintentional connection to a real (not simulated) TWS is made, JST will ask you to confirm that you are about to trade against a real account. JST retreives the account number via the API call and determines that the account is real if the first symbol in the account number is not letter "D". That is, I am making 2 distinct assumptions here:
      a) Real accounts never start with a "D"
      b) All simulated accounts start with a "D".
      If either of these assumptions is wrong in your case, please let me know. This letter-coding is just a guess on my part about how IB encodes account numbers.
    • Refactoring. Renamed a few internal member variables for clarity and simplified the Model-View-Controller setup.
    • New Look & Feel. JST now uses a "liquid" L&F. Notice that there is a corresponding jar in the /lib dir that needs to be in the classpath. You can use your own L&F, of course, or simply use the default one. I know it's all fluff that doesn't add much to JST, but that "liquid" thing looks so cool that I couldn't help it but make it a default L&F.
    • No more holiday handling. Removed the "holiday" handling from the MarketCalendar. It's too complex to handle it with various exchanges, not to mention different countries. JST is perfectly capable of handling the trading without being aware of the holidays, since it checks if the quote history is up to date before making a trade.
    • Additional "whatToShow" param. Quote history now differentiates between "MIDPOINT" and "TRADES" and validates the quote history accordingly. Strategy implementation can (and should) now specify the "whatToShow" parameter. It was hardcoded to "TRADES" before, so FOREX strategies would not work.
    • Better HDMS error handling. Fixed the code in the error() so that JST will properly handle the "HMDS connection attempt failed" message. This is to address the problem that Joseph (and I) experienced on Oct 18, described in this thread: http://www.interactivebrokers.com/cgi-bin/discus/board-auth.pl?lm=1161220273&file=/2/38422.html. However, I can't validate the fix until this error can be reproduced.
    • FOREX trading. Added a sample FOREX (EUR/USD on IDEALPRO) strategy.
    As always, test reports, bug reports, and comments/suggestions are welcomed.
     
    #18     Oct 22, 2006
  9. #19     Nov 1, 2006
  10. #20     Nov 9, 2006