Automated Trading Platform

Discussion in 'Automated Trading' started by birzos, May 22, 2016.

  1. birzos

    birzos

    Have been reading all the discussions however there are some open points which would like to clarify. Have been using Tradestation, the coding is not exactly quick and came across a problem backtesting. On debugging the strategy it fires off two open orders at the same time randomly, however on the backtest report it appears to net out. No code bug, it's a platform issue on lower timeframes.

    It is fine as manual trading platform, but as automated it is not inspiring confidence so am looking at a new platform. One of the issues is the coding time, most of the languages C#, Java are 3GLs and time to market is much longer than with 4GLs.

    Do have a PHP/HHVM solution which pulls down forex tick data, processes in to OHLC for each timeframe in realtime, and then have strategies over the top firing off orders however moved away from this to use Tradestation, so may have to revert if nothing fits.

    Openquant seems to be the logical choice so far however there appear to be tradeoffs with all the solutions in the market especially in strategy development. With the PHP solution the time to market was hours, Tradestation currently days.

    It is about increasing productivity in strategy development, none of the tools appear to be functional and also polished. Openquant & Rightedge have business issues such as support and documentation, Ninjatrader and CQG look polished but miss some of the backend functionality.
     
    Stacey Davis likes this.
  2. RedDuke

    RedDuke

    Hi Birzos,

    What backend functionality does Ninjatrader lack? I currently use it for live auto trading, and it can handle anything i can throw at it.

    redduke
     
    Shay likes this.
  3. birzos

    birzos

    Thanks for the response, in the meantime found the problem. Tradestation uses walk-forward principles, on converting some of the functions and the strategy to work in reverse managed to do in a couple of hours what took a few days before.

    Would presume all of the platforms use the walk-forward approach, it's good for reducing CPU usage but slows development of strategies and as have access to some decent hardware both local and remote, development time is more precious than saving CPU cycles.

    So it's all good, now have Tradestation acting reasonably even with their series functions, will pick up the other platforms in due course.
     
  4. I use PHP for backtesting. PHP isn't the most logical choice. I use it because I've gotten pretty good at it from web development days. The good thing about writing your own backtester is that you can code it to do exactly what you want. But it's not a simple task. There will be bugs too, just like the ones you find in TradeStation. But the good thing is you know who to blame and you know you can fix it. For execution, I had to port everything to C#. The strategy conversion is not that difficult. E-Trade even has a PHP API. But building an automated trading system itself means you need to spend a lot of time coding the order submission, record-keeping, and error-handling stuff in addition to the strategy itself.

    If programming productivity is your concern, then writing your own backtester, in PHP or any other language, doesn't save time. It takes more time. Is it worth doing? I think so because you get to do a lot more powerful stuff later that platforms simply cannot.

    For backtesting speed with PHP, my backtester can run years of minute data within minutes. Backtesting with tick data takes longer. Just one month of tick data backtest takes about a minute.
     
    Last edited: May 23, 2016
    birzos likes this.
  5. RedDuke

    RedDuke

    I would then suggest looking at NinjaTrader. Back testing with 2 years of tick data takes anywhere from 10 to 30 secs. Very robust with c#. Also, great for execution.
     
  6. One month of tick data is 200+ megabyte. 2 Years data is 4.8 Gb of data. I don't think you can copy a file that size in less than 10 seconds, not to say go though the file and process every tick. I am not saying it's impossible, but highly unlikely.