Excel 2007 crashes with DDE

Discussion in 'Trading Software' started by lescor, Oct 10, 2007.

  1. According to Microsoft, DDE is no longer suppoted nor extended in Vista to ensure compatibility.

    Thus if you are using Vista 64-bit, it is guaranteed to not working properly.

    For Vista 32-bit, it will work sometimes under some conditions, but not all the time.

    We can confirm the issue because we tested many kinds of DDE links on Vista ... sad but true, MS is dropping DDE.

    Not sure if eSignal provides a RTD server, if so, you can convert your existing DDE links in the Excel spreadsheets to that, which is supported in Vista.
     
    #21     Oct 14, 2007
  2. not true...i use vista ultimate 64 bit and excel 2007 and it works great....i mean no lag whatsoever...so maybe you need to check your spreadsheet or whatever for errors...check the seciruty settings....
     
    #22     Oct 14, 2007
  3. Thanks Lawrence... Great Small Module Product Idea... Create Converter... (Something!)... That helps DDE work properly on Vista and future MS OS's...

    So when the world decides to trust MS enough to really upgrade to Vista and the one after that... it will still have working DDE...

    DDE all the way up to Y3K... would be interesting... :) - I am fully committed to being short the Y3K crash...

    By the way to all...

    I use NeoTicker and DTN IQ feed and it matches IB snapshot quotes even on heavy days like FOMC days - because it is multi threaded and does not, unlike eSignal, try to pull a herd of elephants (market data) through an ant's umbilical cord (eSig's single threaded Advanced Chart / Data Manager Setup)... during heavy or spike volume times in the market...

    Now if only NT could work on a great English phone support system to go with its very nice support forum... :)


    <img src="http://www.enflow.com/p.gif">
     
    #23     Oct 14, 2007
  4. If anyone, who cannot break their addiction to eSigy, wants a RTD solution that works with eSig... here is one... i have not tried it but i found it on Google...

    It has a one second refresh rate... It was built for options analysis but will allow the input of stock strings using RTD language... It has a yearly subscription sign up...

    http://www.hoadley.net/options/develtoolsESignal.htm


    <img src="http://www.enflow.com/p.gif">
     
    #24     Oct 14, 2007
  5. This just appeared to me:
    Has anyone QUANTIFIED the advantage of RTD vs. DDE for realtime data aquisition ?
     
    #25     Oct 14, 2007
  6. 1. Indirect linkage

    RTD works as a function in Excel while DDE works as a hard link.

    Thus you can dynamically change your RTD function parameters without modifying any formulas on the sheet.

    e.g. Whole worksheet is based on quotes from a single symbol defined somewhere on the worksheet.

    2. Virtually unlimited # of connections

    You can have as many RTD functions as you like, while DDE linkage will top at 200 to 300. When you have too many DDE links, some will go stale.

    3. No internet explorer hang up issue

    Having multiple Excel opened with DDE is known to hang up if you open an instance of Internet Explorer reaching a website with any kind of ActiveX content.

    For other things like update speed, etc. RTD and DDE are about the same in 32-bit.

    Although NeoTicker have both DDE and RTD, we have been recommending users to switch to RTD as soon as they can.
     
    #26     Oct 15, 2007
  7. Thanks Lawrence, but could you show a small example of an RTD implementation in Excel ?
    I don't quite see how it works compared to DDE's hard link referencing.
    TIA.
     
    #27     Oct 15, 2007
  8. Let's say you are getting last price for MSFT.


    Using DDE it looks like this,

    =neoticker|q!'MSFT,Last'


    Using RTD,

    =rtd ("ntrtd.server",,"q","MSFT","Last")


    Notice that the DDE link formula in Excel is a hard link, that means, there can be no indirectly resolved items. In plain English, your formula can only return what it requested for, nothing else.

    The RTD function, however, is simply a function in Excel, that tells Excel to talk to NeoTicker RTD server to get the last price for MSFT.

    You can substitute those parameters with cell reference so that you can change the symbol, the field, etc. without modifying the formulas at all.

    See here,

    =rtd ("ntrtd.server",,"q",A1,"Last")

    You can change the symbol in this rtd formula by modifying the cell A1.

    Hope this answered your question.
     
    #28     Oct 15, 2007
  9. shcheuk

    shcheuk

    Please Kindly correct me/ let me know if I was wrong.

    I'm using Neoticker and Esignal. Currently give up the Neoticker RTD and using the Esignal DDE.

    For DDE, u can use some VBA function like
    ActiveWorkbook.SetLinkOnData Links(i), ""
    ActiveWorkbook.LinkSources(xlOLELinks)

    For stock price update, I can use those function to make some code likes:
    When Data Received in a particular cell, change the color of the cell. or
    When a New tick Received in a particular cell, record the new data in a column together with the time stamp.

    For me, the color change of a particular cell is very important, it show me which data are changing and which remain unchanged in a particular instant.

    But for RTD, since it become a function in excel, there is no way to capture any change of the value.

    I don't know if it is true for Excel2007, coz I 'm using Excel 2003. There is an event call worksheet_calculate or worksheet_changed. However, all of them cannot locate the cell which just recieved new data and changed its value and therefore cannot do anything when new data come.
     
    #29     Nov 11, 2007
  10. As you've determined, the implementations of RTD and DDE are quite different. Without being an Excel expert, this is just another Microsoft "gotcha" from a technical standpoint.
    With RTD, although purported to be more "efficient" from a data communication standpoint, poses a different problem when it comes to determining the ever so important: "which cell changed, and when ?".
    With DDE, this is a simple process...just code a separate Proc and assign for each cell via SetLinkOnData function. By using a STATIC declaration in these procs, you can always retain the previous value of the data...bid, ask, last, volume, etc. This will help you color the cell...Green=up, Red=down, Gray=unchanged.
    However, With RTD, you must first determine which RTD cell was changed, and then take action:
    Private Sub Worksheet_Change(ByVal Target as Range)
    Select Case Target.Address
    Case "A1"
    A1_Proc
    Case "A2"
    A2_Proc
    End Select
    End Sub
    This exacts a bit of overhead versus DDE.
    The biggest problem with DDE is that Microsoft "forgot" to assign the cell address in the LinkSources method. To overcome this, you must search the entire used worksheet range for the linkages, and then build your own table of cell references for each DDE statement in the LinkSources return array.

    Hope this helps.
     
    #30     Nov 11, 2007