C# ExcelDNA Excel RTD server - functionality extension
$30-250 AUD
In Progress
Posted about 12 years ago
$30-250 AUD
Paid on delivery
I have a working custom RTD server that interfaces a data vendor API (Spark) to receive live stock price information. It is written in C# and uses ExcelDNA to make data available via an Excel add-in. The RTD server code is not from a template product, however was written by trained software developer.
The project has three deliverables
Depth UDF:
Currently the RTD server only retrieves data from two API's structs; Stock and StockInfo, via the User Defined Functions (UDF) SparkStockRTD("field","stock","ASX") and SparkStockInfoRTD("field","stock","ASX"). I would like to extend the RTD server functionality to retrieve data from three additional API's structs: Depth, DepthLevel and DepthDetail, so depth data can be presented in Excel with via a UDF array.
(this should be pretty straight forward as the Spark objects are modular and the code structure that is already there)
Higher or lower UDF extensions:
I would also like to functionality that includes returning in Excel a value calculated from the current and previous value in a data feed. The value should indicate whether the value is higher or lower than the preceding value. Higher or lower should be indicated for a short time period then the value return to a default neutral state. I would like to add this functionality to the "last", "bid" and "ask" data fields in the Stock struct
for example; using the "last" field
- if the current last price is higher the than previous last price return 1 for 3 seconds, then return to a default value of 0
- if the current last price is lower the than previous last price return -1 for 3 seconds, then return to a default value of 0
RAM consideration and or advice:
At the moment the Excel Add-in cannot run for a full live market session (6 hours) without the RAM Excel uses accumulating to above 1.4GB and crashing Excel. This RAM accumulation does not occour when Excel is connected to the API and market the closed (eg on the weekend).
Currently Excel must be closed and restarted at some point during the day (before 4.5 hours lapse) to avoid Excel crashing. The Excel workbook is approximately 50mb and has 6,300 live RTD cells.
I do not now why the RAM accumulation occurs, but suspect it has to do with how the RTD server is initiated with (inside?) Excel and how it accumulates rather than recycles data from the API.
I do not want this extra functionality to contribute further to this problem. If you can see why this happens (from the code) and can quantity if to me or suggest a fix (maybe as another project) even better.
Extra details:
- As part of development and testing I can provide a test log-in for the Spark API. Details about the Spark API and the data available are here [login to view URL]
- Information about ExcelDNA is available here [login to view URL]
- The RTD server code is attached.
- I use Excel 2010 (32 bit) on the Windows 7 (64 bit) platform.
Hello Sir,
It will be our pleasure to work on your project as we can do it confidentially.
Please check your private message box for the portfolio and details.
Best Regards