suitable program language to learn for designing specific ATS

Discussion in 'Strategy Development' started by mcgene4xpro, Dec 14, 2010.

  1. Dear All ET,

    I am working on a trading strategy to convernt to an automated system.

    The most important characteristic of the strategy is that it is highly scalping. having no idea on programming and very busy with my medicine study, i had to work with a programmer to develop/test this strategy. However, i didnot/willnot reveal certain aspects of the strategy. I thought how could i work on that " any suggestions is highly welcomed"

    first option: is to learn programming myself. Disadvant. time consuming to be effecient.
    Second option: is to divide the job and work with multible programmers, each has a piece. Didadvantage is not easy task and might risk the confiditiality of my core idea.

    However, if i found a language that is easy to learn to design/test/trade my strategy, this would be great.

    Any advice.

    I am really hesistant to start because i know it needs a committment. So once start, it continues.

    My last heaven is Marketcetera i think.

    So what you recommend?

  2. byteme

    Registered: Dec 2008
    Posts: 361

    05-10-10 06:03 PM

    Quote from konviction:

    thanks for answering the noob questions.


    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 or or 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.