where do I start

Discussion in 'App Development' started by toughgetsgoing, Jun 11, 2017.

  1. i recently joined this forum and i am totally overwhelmed with the information available here. I came to know about this site when i was searching for information on automated trading.
    Here is the catch, i know a lot about automated trading (my experience at work) but never traded from home. (I am working as a developer at a prop trading firm)
    I have a few questions before i dive into the platforms out there in open..

    I am proficient in development in C#, R and python. I enjoy coding in R a lot but more inclined towards python these days because of the vast resources available in python see them increasing.

    I have been spending some time doing research and trying understand various backtesting frameworks, trading platforms. There are so many out there. And I am a bit confused on where I should start concentrating my efforts.

    My requirement is as follows:
    - should be event based platform so that my same trading strategy can work in simulation as well as live trading
    - should support futures continues rolling (rolling of contracts) defined by certain criterion. (zipline added this a month ago)

    i have been looking at zipline, pyalgotrader, backtrader for python based environments.

    My plan is to use these platforms, hook the data (if freely available), do my research and then use IB for live trading (paper trading as well).

    I got an account with IB and started looking at Trade station. Came to know about Ninja trader just last week. They both look promising but I am not aware of differences between them for automated trading.

    I do not have time for manual live trading. I am going to do the simulations on weekends and then go live on weekdays and monitor them remotely.

    Question is:

    which trading platform and why? Ninja trader or Trade station. I am not interested in charts etc. Just a good event based api.

    Which backtesting platform and why? ZipLine, Backtrader, PyAlgoTrader .. I need free or cheap data, paper and live trading support.

    Any inputs from you will be appreciated. Thank you.
     
  2. Good questions.
     
  3. With regards to backtrader:
    • Free or cheap data
    YahooFinance (which has recently undergone some changes and could again disappear at any time), Quandl (has WIKI which is a community based effort with curated data)

    If you have any other source, you can easily create your own data feed (some users have done it, some with public code, some with private code)

    If you plan to trade with Interactive Brokers (the choice of many) you can also directly download historical data with the integrated Data Feed.​
    • Paper and Live Trading Support
    The functionality offers you (simulated) trading with several order types (Market, Limit, Stop, StopLimit, StopTrail, Bracket, OCO), slippage, customizable commission schemes, including credit charge for short sales, bar-by-bar cash adjustment for futures, margin calls, submission check, ...

    You can trade live with Interactive Brokers, Oanda and VisualChart. Some people have developed other broker/feeds (for example Kraken for cryptocurrencies) but have decided against releasing the code.

    Given the limitations of Interactive Brokers (daily resets for example) I would never leave something 24x7 unattended and would rather restart every day.

    There is of course no support, guarantee or anything else if something goes wrong. You can either stress test things until you are satisfied or trust a commercial platform and its support (you can always talk to someone on the phone)​

    • should be event based platform so that my same trading strategy can work in simulation as well as live trading
    It is event based. You get a call to next with each data event and orders/trades are notified to other methods of the strategy (notify_order, notify_trade)​

    • should support futures continues rolling (rolling of contracts) defined by certain criterion. (zipline added this a month ago)
    It does and you can define your own criterion (See the link to the documentation below)​

    I would always of course vouche for backtrader, which I believe to be the best when developing customer indicators and relieving the user from most of the tedious job of doing things. But a couple of concepts (minimum period, lines ...) have to be grasped. There is a lot of metaclassing in the background taking care of things.

    Feel free to have a look at the documentation or visit the blog or the community for extra info.

    Even if zipline isn't mine, the advantage you'd have there is that you can move over to Quantopian and also trade over them with IB with their online platform: zero-setup for you. It's also a company and you'll have some level of commercial support.
     
  4. Thanks for great response. I have started looking at Quandl data already. Looks like for good quality data , you need to pay. It's a great place to start. I have started looking at the documentation and it looks promising.
    I am in Asia time. Will look more in detail when I get back home later tonight. Thanks.
     
  5. This can easily be overcome by using the software tool IBController. I run an automated system (using IB and IBController) which I start before the Monday trading session starts, and stop after the Friday trading session has ended. No activity needed in between.

    My trading system is written in java and connects directly to IB's TWS/Gateway. I don't use Ninjatrader, Tradestation or any other tool.
     
  6. You are talking about the client and not about the server, for which you cannot control the daily reset.

    The client is not "reset", it exits.
     
  7. Yes, you are correct, I was talking about the client, not the server. Those daily resets do not hamper my trading system. It is something I don't need to take into account.
     
  8. I am more inclined towards building my own platform mainly because i would prefer to have full control over how I manage my positions, risk etc. This is something i can manage. Just didn't want to reinvent the wheel for simulation/backtesting. Would be nice to use existing platform for backtesting.
    I am thinking of writing my strategy agnostic of trading platform and then hook various platforms using adaptors. This is manageable if I had more free time :(.

    I have started writing something on ninjatrader now... it's quick to write something for testing. Later will explore other platforms as well.

    goal is for something to test quickly and see the results and over the long run a build self sufficient overall system.
     
  9. drm7

    drm7



    Reach out to @fullautotrading He is active on here and does a lot of python development through Interactive Brokers. (he also trades real money profitably)
     
    fullautotrading likes this.
  10. I dont start new topic. I have same problem
    I use IB.
    I dont want to build automated trading, but i want to build program which gives me information. It should be much easier?
    Idea is-application gets apr 200(variable) i could add and remove tickers
    I will get data $stock $revenue $bid $ask
    And i can create my own algorithm alert system. For exmaple if stock1 is higher than 2xstock2 alert!
    If there are alert, it notifies me


    So i just want to create some tiny alert system for me. Where should i start
     
    #10     Jun 13, 2017