Automated progs for demo platforms?

Discussion in 'Automated Trading' started by konviction, May 10, 2010.

  1. How do people back-test their automated programs before

    going live?
    ...I assume brokers allow some type of demo

    trading with their programs before real money is at risk?..if not

    how is back-testing done?. Also how do most people develop

    automated programs?, is there some type of GUI like a visual

    basic type interface, or is it all executed in the background?

    If I teach myself c/c++ am i 99.9% ready to be an autotrader?

    thanks for answering the noob questions.

    kon
     
  2. Also if anyone could let me see some code of an automated program just to give me an idea of the complexity, I would appreciate it. Send it in .doc (ms word) format please.
     
  3. How is it more cost effective? Why pay 100,000 dollars when I could learn to programming behind it and reduce the cost, and time of getting something developed?

    thanks
     
  4. promagma

    promagma

    Yes, starting from scratch 3-5 years. Coding up a GUI is a huge chunk of work, and if you want your system to be redundant and fail-safe (so you don't have to babysit constantly) is another huge chunk of work.

    Then again if you just want to write code to crunch numbers, something like Tradelink might fit the bill and get you up and running in a few months. But unless you are already a good programmer and want to write some really crazy stuff, I don't see the advantage vs. just using Tradestation/Multicharts/TraderStudio/Cyborg etc.
     
  5. byteme

    byteme

    A lot of questions there.

    Conceptually and simplistically, you can think of auto-trading as a computer program that will execute trades for you based on some logic/rules that you have pre-defined.

    Often there two parts to that computer program: 1) The part that connects to your broker and deals with routine feed subscription and order submission and 2) The part that contains the actual logic of your trading strategy i.e. deciding when to place orders and how to manage those orders based on the incoming market data and other factors.

    Part 1) can be thought of as the "infrastructure" and part 2) can be thought of as the code that is unique and specific to your trading strategy.

    Unless your strategy requires special infrastructure for it to work, you can re-use the ready-made inftrastructure of existing software e.g. Ninja Trader, Trade Link, RightEdge, OpenQuant, Marketcetera, AmiBroker etc.

    Some of those are free and some of those are additionally open source. Your choice of broker may determine/restrict your choice of software or vice versa. You can optionally use one platform for backtesting and another for live trading. To answer your question, backtesting is usually performed by simulating the broker part of the equation. In other words, you don't need a broker to backtest but you do need historical data to backtest with.

    Once you have the infrastructure software you can write the logic part of the strategy yourself without needing to be an expert programmer, assuming your strategy is not too sophisticated.

    Suggest you download one of the afore mentioned "platforms" and follow a tutorial or two for that software. You'll also find examples of complete systems, albeit basic.

    These days you can hire programmers that know how to program for the common brokers and platforms relatively cheaply. Have a look at www.elance.com or www.rentacoder.com or www.scriptlance.com or one of the the other many similar websites.

    Hiring third-party programmers has it's own pitfalls though and is again dependent on your strategy not being too sophisticated and how you deal with any security/intelectual property concerns.

    If you have a good mentor/teacher who has experience building the kind of software you are interested in you can learn enough in a few months to do it yourself. If you're in it for the long haul, C++ is a good choice but will take you much longer to be productive compared to something like Python.

    However, in my experience, programming requires a really genuine and unending interest in the subject of programming to be successful regardless of the programming language you choose. If programming is just a means to an end for you, you're not likely to be successful.

    Good luck. I've met many people who thought they wanted to learn how to program but only a small percentage of them ended up having the combination of natural ability, aptitude and interest to make it last. It's a life-long investment.
     
  6. Yes, I've been "programming" on and off for years never getting anywhere, partly because I never had anyone to teach me. Natural ability in that arena is not me, but I do have a passion for it. I recently ordered a book on powershell (windows new scripting language).

    Mountain, how much does a typical job run in both costs, and time? thanks.
     
  7. NinjaTrader has a free version you can download. You should download it and automate some of your ideas and backtest. It is really easy to use.
     
  8. rosy2

    rosy2

    here...

    def onFill(fill):
    position += fill.qty

    def onUpdate( update ):
    if update.volume> 1000 and update.tick is 1:
    placeOrder('BUY',MKT)


    you can also make very good money doing things in C or C++ for people that dont know what they need