Project is to write a C program that uses the Bloomberg API to extract data, and write the Java required to pass the test parameters, call the DLL, and return the results to Java, then display the results. This C program will be called from Java, and needs to be implemented as a DLL.
** CRITICAL NOTE: Bloomberg access is restricted to licensed users, so testing of the code will have to be through sending the code for me to execute. This will be an iterative process. i.e. I will provide the results of the test run to you, so you can modify the program and resubmit for further testing. If the iterative testing pushes the project completion date past the deadline, this is acceptable as long as active testing has been going on during this period.
See Deliverables for more detail.
Project will be considered successfully completed when we can successfully execute the C program from Java, passing alternate valid security, field and date ranges, and matching the data to that extracted from Bloomberg via Excel. The data to be passed back from the DLL to Java should not be modified or edited from that output by Bloomberg.
The bbfields table in the attached files contains the reference table of field names and data types.
The suggested function to use is bb_fullgethistory().
Attached are 2 files:
1. BB_API_Help, which contains the Bloomberg API documentation
2. Installc, which contains examples of using the Bloomberg API. These are documented in BB_API_Help. The development environment used is Microsoft Visual C++
** BEFORE BIDDING: Review the attached files, and ensure you are comfortable that this documentation is sufficent for you to write a program. There is no additional documentation available.
** BIDS MUST INCLUDE: A summary of the approach you intend to take to complete this project
We have implemented a DLL that gets a single field of historical data on a single security for a date range. We require 3 additional functions, so in total, there will be 4 Java methods with the same name (getHistoryData), but different signatures, using method overloading. The 3 additional cases are as follows, all applying to getting a time series of historical data for a date range:
a. Single field, Multiple securities: Data returned to Java as a map, with Key being Security ID and Value being Array List (time series of data)
b. Multiple field, Single security: Data returned to Java as a map, where the Key being Field ID and Value being Array List (time series of data)
c. Multiple field, Multiple securities: Data returned to Java as a map, where the Key is Security ID and Value being a second map, with Key being Field ID and Value being Array List (time series of data)
Test Data for #a: Download historical data for multiple securities from Bloomberg: Test data will be daily closing prices for IBM, DELL, WMT and F (IBM/Dell/Walmart and Ford) stock from 1/1/05 to 12/31/05 where the security names (array list), field code, start data and end date are passed as inputs from Java to the DLL.
Test Data for #b: Download historical data for multiple fields on a single security: Test data will be high, low and closing price for DELL stock from 1/1/05 to 12/31/05. Input parameters are security name (string), fields (array list), start date (string) and end date (string)
Test Data for #c: Download historical data for multiple fields on multiple securities: Test data will be getting high, low and closing price for Ford, IBM and DELL from 1/1/05 to 12/31/05. The fields passed from Java to the DLL will be an array of field IDs, an array of security names and start and end dates as strings.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
This C program will be called from Java and needs to be implemented as a DLL.
Our environment is Netbeans 4.1 and Windows XP