I have been working on the EXCEL DDE sample worksheet and works fine and now I would to upgrade to ActiveX instead of DDE as I heard it is more robust but I found the refresh rate of ActiveX is even slower than the one in the DDE connection. Is there a way to change the smallest default value from "1 second to smaller value in order to speed up the refresh rate? the refresh rate of DDE can down to several milliseconds. Much appreciate if anyone could help me. Thanks
2 Answers
Don't use either DDE
or ActiveX
, go with the excel RTD server
api.
It's the basis behind the Bloomberg BDP
plugin and we use it at work to push real time data to many spreadsheets.. It's now the recommended way to push data into a spreadsheet and it has a built in refresh rate parameter which can be any millisecond interval, or immediate if you want data pushed as fast as possible.
To answer the question about building an RTD server, follow this tutorial, its pretty trivial to do if you can write C#. However you'll need IB to give you an api to programatically get the quotes you want to populate the RTD server.
Long story short you shouldn't be using either ActiveX or DDE to push quotes to excel as this is antiquated technology.
-
$\begingroup$ I am trading with interactive brokers, if I want to swop from DDE/activeX to RTD , do I need to build my own RTD server? How can I utilize the RTD from my current setting? I have gone through the link attached above. My question is How do draw the quote from the IB trader work station to excel by using RTD? Many thanks Chollida $\endgroup$– MarcusCommented Jul 9, 2014 at 10:00
-
$\begingroup$ @Marcus, I've updated my answer to try and answer your question. $\endgroup$– chollidaCommented Jul 9, 2014 at 16:33
In VBA Application.RTD.ThrottleInterval controls the refresh rate of RTD functions in Excel. Note that a value that is too small may take away too much CPU resource and makes Excel slow to respond. A nicer solution is have some in memory object/process to handle data update and print it out to Excel.
-
$\begingroup$ I have tried to follow the procedure as per the URL below. May I know if it works with the active X component? Regarding to your suggestion, would you mind to send me some sample code so I can try if I can handle the memory issue $\endgroup$– MarcusCommented Jul 9, 2014 at 9:54
-
-
$\begingroup$ Marcus - Cann't see the URL still.. $\endgroup$ Commented Jul 9, 2014 at 15:36
-
$\begingroup$ I think it is blocked by the administrator. I just had a chat with the interactivebroker staff, she said they do not support microsoft RTD server as a data source, I can only choose from DDE or ActiveX. For ActiveX they only sugguest the update interval up to one second. I think it is too slow ,since I do not know the other computer languages, I think i might switch to other broker which support RTD and migrate my worksheet to there :( $\endgroup$– MarcusCommented Jul 9, 2014 at 16:21