OpenQuant - SmartQuant's new product for the retail market

Discussion in 'Automated Trading' started by bluelou, Jan 29, 2007.

  1. This is what I wrote on another thread on ET

    http://www.elitetrader.com/vb/showthread.php?s=&threadid=78330&perpage=6&pagenumber=11

    Actually our other product, QuantDeveloper, features a "component" strategy development model where you can build a strategy from Entry, Exit, MoneyManager, etc. components.

    In this model you can develop a strategy playing a lego game, i.e. combining f.ex. SMA entry with Stop exit and ATR money manager.

    Although this can sound very attractive for a non-programmer, there are problems with this approach:

    1. a user still need to program new components (the same in TB)
    2. the model is not good for automated strategies where you need to trace order state change between components

    Thus I think OpenQuant offers the most simple ATS development model where a lot of things happen behind the scene, so that actual strategy programming is very simple.
     
    #41     Feb 12, 2007
  2. Interesting - #1 seems like a non-issue - you need to develop code either way. In fact, by not having it in a component, you may need to develop more code as opposed to just being able to plug in a Kelly's Criterion for portfolio management.

    As to #2, I'm not clear why it would be any easier or more difficult to trace an order. Did the system create a buy order? What size did it create for that order? Is that any easier to determine in a component vs. a non-component system?

    I always found it a bit strange that there were two ways of developing systems in the original product - but I preferred the component systems as I liked the code isolation.
     
    #42     Feb 12, 2007
  3. It's quite common in the ATS strategies that you, for example. would create a limit order in the "Entry" component, adjust position size in the "Money Manager" component (not only ask for order quantity based on risk measures, but scale in or out with Order.Qty += 10; Order.Update() depending on market and portfolio conditions), cancel the order in the "Exit" component and yet look after partial fills in the "Execution Manager" component. Think that you can have another order or two (stop loss or/and take profit) coupled with this order in an OCA group and you will end up in a situation when a plain strategy code is much more easy to maintain than in the (artificial) independent component model.

    You can take a look at sample strategies from OpenQuant install (we tested most of them with intraday data live on IB in unattended automated mode) and see if it would be easy to split strategy code into several independent components.
     
    #43     Feb 12, 2007
  4. Do you have any examples that include portfolio management? I didn't see any in the examples.
     
    #44     Feb 12, 2007
  5. It's probably a question to the author of Trade Like a Hedge Fund book who decided that you can trade like a hedge fund without any money management :)

    But I think that in order to introduce a simple money management scenario into, for example, OpenQuant slow turtle example you just need to write something like

    Qty = Portfolio.GetTotalEquity() / ATR[bar];

    instead of

    Qty = 100;

    We can add an example in OpenQuant install in one of the next releases.
     
    #45     Feb 12, 2007
  6. bluelou

    bluelou

    Anton,
    Is it possible to write portfolio-level constraints within OpenQuant?

    A Scenario that I'm thinking of is as follows:
    --Given that I'm trading multiple markets with a single strategy (albeit, with slightly different parameter settings)...
    --If wanted to set a constraint that would restrict my net long USD exposure, either by equity or notional value, across a portfolio, can this be coded within OpenQuant?
    --In other words, if the net long USD exposure is constrained to 50% of total equity, then the incremental USD long signal would be rejected at this level and the next trade could only be a USD short.

    Can this be accomplished in OpenQuant? If not, can it be done in SmartQuant? Otherwise, how might I accomplish this?

    Thanks,
    Lou
     
    #46     Feb 12, 2007
  7. Hey Anton,

    Are you legitimately advertising on ET again?
    Where's the commercial marker in your signature?

    -kt
     
    #47     Feb 12, 2007
  8. So far I am answering technical questions about beta version, in a thread that was started by ET community members. Where have you seen any advertisement?
     
    #48     Feb 13, 2007
  9. OpenQuant doesn't send signals but direct orders.

    I think you can do something like

    OnBar()
    {

    if (myEntryCondition)
    if (Position.GetValue() / Portfolio.GetPositionValue() < myExposure)
    SendOrder(...);

    ...
    }
     
    #49     Feb 13, 2007
  10. krnu2k

    krnu2k

    Hi EdgeHunter, There are some issues with Opentick historical data/data gaps, but these issues are general to all Opentick client software. The bug mentioned by toe is also now fixed. Apart from that Opentick appears to work well.

    --
    Keith
     
    #50     Feb 16, 2007