Ninja automated systems

Discussion in 'Trading Software' started by dom993, Jun 29, 2012.

Are you trading one or more live automated trading systems on Ninja? (+ broker)

  1. Not using Ninja for automated trading systems

    9 vote(s)
    45.0%
  2. Ninja automated trading system live / Interactive Brokers

    5 vote(s)
    25.0%
  3. Ninja automated trading system live / CQG

    1 vote(s)
    5.0%
  4. Ninja automated trading system live / GAIN Capital/Forex.com

    0 vote(s)
    0.0%
  5. Ninja automated trading system live / GFT

    0 vote(s)
    0.0%
  6. Ninja automated trading system live / MB Trading

    0 vote(s)
    0.0%
  7. Ninja automated trading system live / Patsystems

    0 vote(s)
    0.0%
  8. Ninja automated trading system live / PFGBest

    0 vote(s)
    0.0%
  9. Ninja automated trading system live / TD Ameritrade

    0 vote(s)
    0.0%
  10. Ninja automated trading system live / Trading Technologies

    1 vote(s)
    5.0%
  11. Ninja automated trading system live / Vision Financial Markets

    2 vote(s)
    10.0%
  12. Ninja automated trading system live / Zen-Fire

    2 vote(s)
    10.0%
  13. Ninja automated trading system live / other

    0 vote(s)
    0.0%
  1. dom993

    dom993

    I started migrating my 2 live systems from Ensign/BracketTrader/IS-TWS to Ninja/IB-TWS a couple months ago, and along the way I have found a number of Ninja bugs, most of them in the end have a decent workaround.

    The last one I found is pretty severe, it does indeed have a workaround but that cost me over a week of investigation & development of a workaround. The most surprising thing about that bug, was Ninja support statement "it is the 1st time we ever see this", when it is actually fairly easy to reproduce, and should have been caught in their testing process.

    That made me wonder how many automated systems are actually running on Ninja ... hence this poll (if I can find how to make this a poll ?!):

    Are you running one (or several) live automated trading system(s) on Ninja, and if so, through which broker ?

    (The last bug I found is specific to trading through IB ... I'll share what it is about in a few days)
     
  2. gmst

    gmst

    I am sure this comment will get me attacked from many guys on the board, still....

    Dom993, I know you are in this game for making serious money, don't spend any more time with Ninja. Just get a lifetime license of Multicharts and you will be much more effective/efficient/productive with your research and execution time and much lesser mistakes and much lesser headache.
     
  3. dom993

    dom993

    Thanks Gmst ... on that note, I replied to your PM a couple days ago, looking forward to your response now.
     
  4. gmst

    gmst

    Yes I know I have to reply to you. Maybe will do later in the night or early morning tomorrow. Sorry, have been too busy with trading and few other things.
     
  5. heech

    heech

    I've used Ninja for 4+ years, starting with 6.5 and migrating to 7.0.

    I run automated 23 hours a day, 6 days a week. I *fill* anywhere from 250-400 trades a day, 3-5 futures contracts each. Fund and managed account together, I'm trading about $7.5 mm worth of accounts.

    There are a few quirks, and I've definitely found some TWS-related bugs along the way. But obviously, with enough work + careful isolation, I've found it to be a very, very stable/reliable platform with which I trust.
     
  6. dom993

    dom993

    Sorry for the delay, here is the story about this IB-specific bug on Ninja:

    IB offers broker-managed OCO orders - I was told by Ninja Support that this feature is unique to IB.

    The sad truth is, NinjaTrader 7 doesn't deal properly with these broker-managed OCOs ... even though I was told they had never seen this bug before me showing them, I can reproduce it at will.

    Here's the story:

    - When 1 leg of the OCO is filled, IB actively cancels the other leg, and sends a 'PendingCancel' notification
    - When the other leg is indeed cancelled, IB sends a 'Cancelled' notification.

    So far so good ... but Ninja *ignores* the 'PendingCancel' notification, and also ignores this is a broker-managed OCO anyway ... and to complete the picture, Ninja doesn't wait 1 pico-second after receiving the 'Filled' notification for the 1st leg of the OCO: if a 'Cancelled' notification hasn't been received at the time Ninja processes the 'Filled', Ninja sends a 'CancelRequest' for the other leg. If IB has already cancelled that order at that point (which is most of the time), they send an 'OrderRejected' notification for the 2nd Leg, in which case Ninja goes ballistic & disables the strategy.

    I was told it won't be fixed in Ninja7, but apparently it is now fixed for the next major version (Ninja8 ?).

    They suggested me to either use simulated OCO (managed by Ninja on my PC ... a valid option may-be for discretionary trading, but imo a non-starter for automated trading), or to use the Unmanaged approach (meaning a ton of code to develop to workaround this bug).

    I actually found a 3rd way, by disabling the Ninja RealtimeErrorsHandling, and checking orders manually ... this required quite a bit of extra code (approx 1,000 lines), and for me this currently only works for 1-contract per target (I decided when I need more, I'll take the Unmanaged approach - or Ninja 8).
     
  7. oraclewizard77

    oraclewizard77 Moderator

    Seems that they do fix bugs, since they keep making updates to their software, and will list for example broker specific bugs the new version has fixed.

    Only bug I have found (that has not been fixed) was that certain futures that are rolled over each month do not show up to the second correct charting if you want to use the newer month's contracts.

    The work around for me is to use the charting from the prior month and place the trades in the future month until eventually the chart corrects itself and I can delete the prior month.

    Now, please note that you can still trade the previous month's contract, but I don't want to wait to the last day of contract expiration to start trading the new month's contract.