OpenQuant strategy coding

Discussion in 'Programming' started by mcgene4xpro, Jul 11, 2012.

  1. Hi,

    I am planning to use OpenQuant for live trading. Also, i have just started learning programming. It is a steeping learning curve for me but i have a commitment to continue this road. The problem i am facing is there is no much documentation, sample strategy and tutorials to learn coding on OQ framework.

    However, there is ninjatrader community which is active and full of educational resources to learn coding strategies. Being both NT and OQ using the same C# lanaguage. I am thinking to start using NT resources to learn how to write strategies on NT. Then, i assume it would be easier for me to go to OQ.

    Would this be a good decision?

    If you have suggestion, plz share.


  2. Eight


    I have programmed with both of them as well as Easy Language and Sierracharts. Once you master C it's far easier than Easy Language.

    The best thing about Ninja is that there are examples of usage for virtually everything in their language in their documents. That is far from true with Openquant. I like the Openquant environment a lot better than Ninja however, it's streamlined and not oriented towards charts, it's oriented towards automation with charts thrown in so you can see your trades.

    Sierracharts is a better environment than Ninja imo but coding examples are spread around all over the place, I usually use the Windows search function to find them...
  3. dom993


    For learning C# from the ground-up (novice to intermediate), I recommend Rob Miles's C# Yellow Book:

    Ninja is a reasonable choice if you want to learn programming C# in a trading environment ... but you'll have to get some historical data ... EoD is free, intraday you'll have to import from whatever platform you currently use.
  4. Great... Thanks..

    Actually, i like OQ because it is not chart-oriented. All is for automation. This is what i am after. So i think OQ suits my requirements more.

    Is what i will code in Nscript could work on OQ? Or i have to do some modification?

    I will shift this week from learning Java to learning C#. I think what i have learned so far will benefit me in learning C# somehow, right?
  5. Thanks, i am checking the course now. :)
  6. wait, did you not insist on another thread you opened you wanted to stick to Java? Now you open new threads proclaiming you want to get into C#? I remember you wanted to be with the big boys on the high frequency side in about a year. Well aside my confusion what you actually want and your jumping around I repeat what I recommended:

    Focus on one platform/language, learn it well then move on to more complex ventures. Stay away from NT because it suffers from many documented deficiencies in regards to run it for live trading (I wont elaborate here, do a simple search). I recommend you use OQ or RightEdge and learn C#. Java is a dying language, while C# starts to seriously challenge C++ on the concurrency side, raw processing of arrays and collections. The last comment is just my opinion, others may disagree so take it for what its worth.

  7. Thanks AmazingIndustry. I really did not want to change Java but i found OQ which could be connected to any broker including LMAX. So, this combination " OQ and LMAX" is more solid for me. I was learning java because i did choose Dukascopy broker before and they have Jforex in java. However, i found LMAX is much more suitable for me as a broker.

    Regarding the HFT. I am not going to talk about it because it is clearly causing turmoil here. :). Let us focus on fast automation for retail traders. This is the realistic arena for me now and keeping the door open.

    "Focus on one platform/language, learn it well then move on to more complex ventures" This is exactly my core plan now. I am not looking at NT to live trading but i found they have active community and good specific resources to learn how to code and automate using C#. The live trading will be with OQ.

    I have a very specific goal from learning programming which is to learn how to code my specific trading system. This is the goal. I am not learning to be a pro coder. Or to do things other than designing trading systems. I might do other things when i could do but this is not my primary goal of learning programming. I enjoy learning programming till now. It is really fun. I know my hands still not dirty yet or even half dirty but i think my mind might have coding-oriented neurons :). Let us see where this will go.

    Also, my English is not my first language so i could mean something and say relatively another thing. So, some patience would be highly appreciated here.
  8. Eight


    Ninja and all of them depend heavily on proprietary "wrapper functions" that facilitate coding. Those don't translate directly from one environment to another. I don't use it because I'm not that high level of a C programmer but Openquant really is the most "forthrightly expressed" for lack of any better way to say it, environment. They pioneered Event Driven Architecture, it's perfect for the trading environment.

    It does take some effort to become comfortable in any of the environments. Best to pick one that can carry you from where you are to completely where you want to be without missing any stops along the way. I'm not using Ninja because reviewers say it's buggy and I believe them. I'm using Sierrachart because they fix bugs pronto and have a high quality effort underway to begin with and they offer free help with programming difficulties. I'd far rather be with Openquant but I just can't get through some programming messes and they are very nearly zero help on their forums... if my final strategy proves to be something easy to code up I might venture back into Openquant and see if I can be up and running but I doubt I would ever be able to finish a project, they aren't documented very well.
  9. I have read the same regarding their bad support after sale and also regrading their relatively dead community. This is too bad. However, still i would like to continue with OQ because of many plus including their event-driven architecture. It will be awesome to deploy my automated strategy. I am only trying to accelerate a little bit my learning steeping curve by using resources from active community like NT. I hope this by-pass will help to get coding/share coding on OQ quickly.

    Today, speed is counting for many things. Speed to implement your strategy, speed to execute your strategy ...:)
  10. dom993


    Speed to implement comes from an adequate programming language (I'd say any object-oriented language fits the bill, but obviously some are better than others), and from the amount of libraries available to use in your strategy development.

    Amongst those libraries, the most important ones are those that you will develop yourself, providing you with the proper framework for what you want to do.
    #10     Jul 12, 2012