Is Dynamic Data Exchange (DDE) suitable for automated trading, quant development, and HFT?
In the automated trading platform I am developing in C#, I’m getting the tick data from a DDE Server (CMA Series 4 to be precise) and I’m sending orders with CMA API (Interop.ROBOTRADERLib.dll). When I receive the tick from that DDE server, I send it to my trading system and after that I save it to a SQL database and display it in my window.
I’ve noticed by looking into my database and comparing with the book with all trades that I’m missing some ticks. So I wonder if it can be due to high latency of a sort of obsolete protocol such as DDE or I’m just misusing it with poor programming.
it can be used on the higher time frames quite easily, I would say that even on minute data you will have no problems.
Once you start processing tick data you might begin to have issues in a fast moving market like during a Fed announcement and if you are tracking multiple symbols during a fast moving market you definitely will.
If you are using .NET (especially 3.5 and higher) you have a lot of options to get away from DDE but that assumes you have enough access to the code involved to be able to add/modify code to take advantage of those features.
At this point, we are trading Brazilian E-mini which has much more than one tick per minute (in fact more than one tick per second). So, in this scenario, your answer leads me to conclude that DDE is not suitable.
I’m the programmer too, so I have all access to the code (it’s C# .NET 4.0). So, like you said, it’s just a matter of moving from DDE (which we don’t pay any extra with our deal with CMA) to another option (that we will probably have to pay more). I came to the group just to be sure I can’t do it with DDE, since there is a budget issue.
Does anyone have any thoughts about it and/or some advises?
you are quite welcome. If you are only tracking a couple of symbols you will still likely be fine.
To clarify, when I mentioned the minute time frame, I was really saying that if you are trading off minute bar data you will be fine no matter what. It is when you get to the tick level you may start to have issues.
I think it is all the marshaling that goes on for the COM interface that causes the issue. I have an application that transfers tick data between two machines on the same local network using TCP/IP and it is fine with 5 symbols but can slow down a bit in a very fast moving market.
I would think DDE would be somewhat equivalent to my app. I just know I wouldn’t push mine much past the 5 symbols I am currently tracking.
Ok, ok. I’m trading tick data, actually. When a tick gives a buy/sell signal, I send a market order. Yesterday, I was very upset when I saw that my system lost a tick that would fire an event and I was trading only one symbol: e-mini Bovespa
NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!