C++ Backtesting to API

Discussion in 'App Development' started by Maverick1, Feb 8, 2019.

  1. Maverick1

    Maverick1

    Clever! Have you done something like this yourself?
     
    #21     Feb 9, 2019
  2. qlai

    qlai

    Exactly that, built out over years. I don't have any back-testing or gui though. I capture market data and replay using my own simulator. Tedious ... that's why I try to come up with strategies in my head and then prove or dis-prove them with data.
     
    #22     Feb 9, 2019
    Maverick1 likes this.
  3. I'd drop C++ if I were you and use Java. I've got =~ 20 years of programming experience, started with C++, moved to Java, and now due to job constraints I'm back to C++ and loathe it. Stupid-ass language, impossible not to shoot yourself in the foot (crashes), hard to debug, horrible IDEs, dystopian template mastubation in the latest releases while not even having a cross platform way of getting a stack trace. Fuck I'm not using it for my own projects.

    Here's an older version of the automated trading system I'm using with IB (written in Java). In the meantime I've integrated it with the backtester and no longer open source it but you can get an idea on how to interface with IB API for executions. I'm not handling positions, just trigger limit order and cancel it if not executed in 10 seconds. There's a "pricing" module loaded at runitime in the open source version, that's the proprietary stuff I'm using. Eventually fuck open source and it's much easier to have an integrated system (backtester + autotrader).

    https://github.com/aquarians/AQuaRiAnS/tree/master/java/Aquarians
     
    #23     Feb 10, 2019
    qlai and CME Observer like this.
  4. Maverick1

    Maverick1

    From IB: The C++(MFC) API is deprecated as of API Version 9.72.



    What are the full implications of this?

    Also, is an GUI an absolute must for a simple futures trading system?

    Edit: qlai said he doesn't use a GUI so it must not be that crucial
     
    Last edited: Feb 10, 2019
    #24     Feb 10, 2019
  5. You running on a Windows OS?
     
    #25     Feb 10, 2019
  6. It means they're not adding features or fixing bugs on it anymore. Oanda did the same thing a few years ago: ditched their C++ API to devote full attention to their Java API.

    The fact is that the IB API 9.72 still works and will continue to work. I still use it myself and it works great.
     
    #26     Feb 10, 2019
    Maverick1 likes this.
  7. qlai

    qlai

    I run on Linux. Looks like you are not taking my advice to start with easier API ... Good luck :)
    You don't need GUI, the api connects to TWS so you can see orders and positions. You can cancel/modify orders via TWS and your app will get notifications.
     
    #27     Feb 10, 2019
    Maverick1 likes this.
  8. I’d recommend porting to C# - a C like language without the fear of null pointers and with garage collection built in.

    personally I am developing in c# visual studio on a mac, deploying to linux in aws
     
    #28     Feb 10, 2019
  9. However, the "C++ (POSIX-compliant)" version is still supported.
     
    #29     Feb 10, 2019
  10. Robert Morse

    Robert Morse Sponsor

    I have to say the most of my automated traders use C++. It is also very common in the industry. When you choose what software you want to code on, you have to consider what broker and API you want to use. In the end, you want to execute not code.
     
    #30     Feb 10, 2019
    qlai likes this.