modify an exising automated trading package or build a new one ?

Discussion in 'Automated Trading' started by ecoscien, Dec 28, 2005.

  1. Agree, but C++ is only good for those who don't know Python.

    nononsense
    :cool:
     
    #11     Dec 30, 2005
  2. hey spammer,

    if it would help you to make money in the market, you wouldn't sell it.
    :D
     
    #12     Dec 30, 2005
  3. mrtwo

    mrtwo

    I dont know nononsense, I wouldnt dare do an AI system in Python. Hummm but yes, you sure have a point there, if your intent is to develop a rule based system, I must agree that Python is a viable alternative if you are cool with interpreted languages. Something about having source code in the production machine that is connected to the internet bothers me a lot.
     
    #13     Dec 30, 2005
  4. mrtwo

    mrtwo

    :p

    Yeah, the one thing about SmartQuant is that it doesnt do anything, really! It is just a framework where you plug-in your own logic.

    I had a chance to step thru their code using a disassembler a while ago and I must say it is quite good. The price is a little high I think but if you just want a way to connect to data and brokers and a toolkit to write your logic, smartquant might be a good choice.
     
    #14     Dec 30, 2005
  5. mrtwo

    mrtwo

    LOL, mine will but I am not sharing it ;)

    Peace,
    mrtwo
     
    #15     Dec 30, 2005
  6. nbates

    nbates

    #16     Jan 2, 2006
  7. mrtwo

    mrtwo

    Oh, yeah, TA-Lib is *quite* good!

    It seems like the NinjaTrader API is also quite interesting. I was more confortable with it's past iteration (TradeMagic) but well, definitely something one should look into it.

    Its .net though, dont expect out-of-this world performance :)
     
    #17     Jan 2, 2006
  8. ecoscien

    ecoscien

    Happy New Year everyone! Thank you all so much for the wonderful inputs while I was away.

    Cosine, you are awesome! Thanks for the really helpful technical details.

    A couple of questions (for everyone): how do you deal with the "hard real-time" computing issues in your trading algo, in that you need the intercommunication and computing all be done within short time frame so that you can respond to the market in a timely manner. Of course this is only important if one's strategy is very high frequency or the market very volatile. Also if you can't really predict the possibility of fill and have to change your orders on the fly. ('Hard real-time' as in aviation as opposed to the 'soft real-time' as in video games)

    Second, I can see that writing algo to track positions and risk management can get pretty complicated---if you were to estimate, how many man-hours (how long would it take a decent C++ programmer )to programm that part, asuuming a strategy not complicated? ( I am very familiar with scientific programming but have never doen this kind of keeping track of positions kind of programming).

    Also, brokerage houses often offer order management and risk management software for free, would it be feasible to integrate that with an automated trading algo?

    Another question:
    Is Java just as good, or better language, for trading algo, since I am starting fresh without any legacy concerns? Do you run into memory leak problems with C++, does Java have an advantage in handling real time issues? (My experience is more in Fortran, both C++ and Java are new beginnings for me)

    The DMA brokerage seems mostly support C++ and Java, and everybody seems only use Unix or Linex, so I am not sure there is any reason to consider .Net or Python.

    Thanks a lot, every body!
     
    #18     Jan 2, 2006
  9. ecoscien

    ecoscien

    Thanks, mrtwo. But what about the order mangement and risk management part? I guess you can use rules for RM and and inmport another order management package? I would be interested in seeing some examples of either how the simple rules based algo and those that use AI work. You can take out the money making logic part. I just want to find a few ways to get a trading algo to work, at different levels of development efforts.

    Thanks.

     
    #19     Jan 2, 2006
  10. nbates

    nbates

    hi ecoscien,

    All good questions!

    Q. How do you deal with the "hard real-time" computing issues in your trading algo?

    A. Multi-threading with an optimal balance between processing logic, shared memory and networking. You should hand-tune Algo's and use real-time 'cached, state aware' techniques.


    Q. If you can't really predict the possibility of fill and have to change your orders on the fly.

    A. Execution is an art in itself. Things like "sweet-spot" discovery for the Bid and Offer, complex-conditional-secondary execution triggers (e.g. on canceled, on filled, on quote change, on time interval w/o completion, etc) and the ability to modify order behavior dynamically and change routing on the fly are a must (imho).


    Q. What about writing algo to track positions and risk management?

    A. Waste of time, just use trailing stop orders with modify on the fly 'stop trigger' behaviors.


    Q. Order management and risk management software for free, would it be feasible to integrate?

    A. Avoid 3rd party 'bits' as much as possible and only integrate when there's an absolute requirement that you can't meet and the benefits are crystal clear.


    Q. Is Java just as good, or better language, for trading algo, since I am starting fresh without any legacy concerns?

    A. Most prefer C++, but don't make it too complicated (think 'C'), some like Python and .Net is good for GUI only.

    -jmho
     
    #20     Jan 3, 2006