BLOOMBERGAPIforCQuickStart12.docx
- 文档编号:7977458
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:30
- 大小:246.13KB
BLOOMBERGAPIforCQuickStart12.docx
《BLOOMBERGAPIforCQuickStart12.docx》由会员分享,可在线阅读,更多相关《BLOOMBERGAPIforCQuickStart12.docx(30页珍藏版)》请在冰豆网上搜索。
BLOOMBERGAPIforCQuickStart12
BloombergDocumentation
APIforC
QuickStartGuide
TheBloombergApplicationProgrammingInterface(API)allowseasy,directincorporationofBloombergdataintocustomapplicationprograms.WecanaccessthousandsofdifferenttypesofBloombergdataareavailablethroughtheAPI,includingmostoftheanalyticanddescriptiveinformationfoundontheBloombergProfessionalServiceterminal.TheAPIsupportstherealtimemonitoringoftradingdatasuchasstockpricesandtradingvolume.Inaddition,thereisafacilitytogethistoricaldataintick-by-tickdetailgoingback50days,anddailypricesgoingbackmanyyears.
Therearecurrentlythreeprogramminginterfacesavailable:
1)CAPI
2)DDEServerand
3)ActiveXControls.
ThistutorialwillintroduceCAPI.Anyreferenceto“OnlineManual”shouldbetreatedastheonlinemanualforWAPIonBloombergterminal.TypingWAPI
Prerequisites
1)FamiliaritywithClanguageandWinSockAPIs.
2)FamiliaritywithusageofVisualStudio.(Creatingprojects,compilingandexecuting)
I.TocheckiftheBloombergconnectionandAPIareworking.
ThefollowingstepswillconfirmthattheBloombergconnectionandAPIsareworkingproperlyonthemachine.
1)ClickonStartAllProgramsBloombergAPIDemo
2)Thesystemwillpopthefollowingmessage.
3)Inthefollowingapplicationwindow,clickBloombergMonitor
4)EntertheSecurityIDassayIBMandclickontheEqtybutton.ThenclickSubscribe.
5)Afteraseriesofstatusmessages,wegetdataforthesecurity
6)Ifalltheprecedingstepsgivetherequiredresult,thenweconcludethattheBloombergconnectionandBloombergAPIareworkingcorrect.
II.ConfigureDevelopmentEnvironment
TostartusingBloombergAPIinCprograms,weshouldensurethatthedevelopmentenvironmentisconfiguredcorrectly.
a)OperatingSystem:
WindowsXPProfessionalVersion5.1SP2
b)IntegratedDevelopmentEnvironment:
MicrosoftDevelopmentEnvironmentVersion7.1
c)ThemachineshouldhavetheCSDKforBloomberginstalled.ThelibrariescanbefoundatC:
\blp\API\C_SDK.
d)TheBloombergCAPIisprovidedasstandardCheaderfilesandlibraries.ForWindows,thereisBBAPI.DLL,whichcontainsmostoftheAPIroutines,andBBAPI.LIB,astublibrarythatloadsthedllandcallsfunctionswithinit.ApplicationsshouldbelinkedwithBBAPI.LIB,andhaveBBAPI.DLLinthepathatrun-time.Applicationswillneedtoincludetwoheaderfiles,BBAPI.H,andBBUNIX.H.Thesefilesareplatformindependent.
1)RuntheVisualStudioenvironmentandcreateaC++consoleapplicationproject.(ItdoesnotmatterifitisaCPPapplication)
2)ThefollowingstepsareveryimportanttosetuptheIDEcorrectly.
a)ClickProject“Nameofproject”Properties
b)ClicktheC/C++node.Tothefollowingsettings
c)ClickonPrecompiledHeadersanddothefollowingsetting
e)
ClickontheLinkernodeonthelefthandsidepanelandsetthepathfortheBloombergheaderfiles.SetthepathforAdditionalLibraryDirectives.Thelinkerwillfindbbapi.dllinthispath.
f)
Inthe“Input”nodesetadditionaldependenciestobbapi.libandWs2_32.lib.Clickontherightcornerofthetextbox.YouwillgetadialogforAdditionalDependencies.
g)ClickingontheCommandLineleafnode,youwillseetheLinkerSettingsastheyareusedasparameterstothelinker.
h)Thisendstheconfigurationoftheproject.
III.Gettingstartedwithprogramming.
A.TheFilesyouNeed
BeforestartingtoprogramtheBloombergAPI,youshouldhaveadevelopmentenvironmentsetup,andbecomfortablewithyourcompiler,linker,etc.Makesurethatyouhavefollowedtheabovestepsforsettingupourenvironment.Asmentionedearlier,ourapplicationprogramsrequirethefollowingfiles
Bbapi.h/bbunix.h:
Headerfilesforallplatforms
Bbapi.lib:
LibraryforWin32programmers.Thisismerelya'stub'library,whichloadsandcallsfunctionsinbbapi.dll.
ThefilesareinstalledinC:
\blp\API\C_SDK
B.Outlineoftheprocessflow.
OurclientapplicationprogramaimsatretrievingrequireddatafortherequiredsecuritiesfromBloombergservers.Followingisanoutlineoftheentireprocess.Wewilldiscussthisindetailwithexamplesasweproceed.
1)TheclientapplicationprogramstartswithestablishingaconnectionwiththeBloombergCommunicationsServer(bbcomm).
2)Iftheconnectionisestablishedsuccessfully,theclientprogramsendsoutrequestfordatatotheBloombergserversacrosstheinternet.
3)Iftherequestissentsuccessfully,theclientprogramreceivesa“requestid”.
4)Theclientprogram,pollsamessagequeuetocheckifanyresponsehasarrived.
5)Ifaresponsehasarrivedandiftheresponseidmatcheswiththerequestid(receivedinstep3),theresponseisdecoded.
6)Thisistherequireddata,theclientprogramhadrequested
7)Clientprogramclosestheconnectiontobbcomm.
C.Establishingtheconnection.
AllBloombergAPIclientdatarequestsarepassed-throughtheBloombergCommunicationsServer(bbcomm).Thecommunicationservermustberunningonyoumachinebeforedatarequestscanbeserviced.
FunctionName
bb_connect()
Description
ThisfunctionestablishesaTCPconnectionbetweenyourapplicationprogramandbbcommserveronthesamemachine.
InputParameters
1.TCPportnumber
ReturnValue
0Failedtoconnect.
otherPointertoBloombergAPIconnectionhandle.
FunctionName
bb_disconnect()
Description
Thisfunctionclosestheconnectionandrecoverstheresourcesassociatedwiththatconnection.
InputParameters
1.Connectionpointer
ReturnValue
ExitOKNormal.
0Failedtoconnect.
ExitFAILCONNECTIONConnectionparameterdoesnotpointto
avalidconnection.
ExitFAILPEERLOOKUPInternalproblemwithAPIdata
structures.
Followingcodesampleshowstheusageofbb_connect()andbb_disconnect().LinesmarkedinBluepertaintothediscussionabove.
Example1
/*
**
**Thislittleprogramsimplyconnectstoanddisconnectsfrombbcomm.
**Itismostlyusefultocheckyourbuildenvironment.
*/
#include"bbapi.h"
/*Thestandardportbbcommislisteningon*/
#defineBLP_PORT8194
main(intargc,char**argv)
{
bb_connect_t*Connection;
/*creatingapointertodataoftypebb_connect_t*/
intrcode;
/*thefollowingpieceofcodein#ifdefand#endifchecksiftheprogramisrunninginWin32environment.
*/
#ifdefWIN32
/*Ifwe'rerunningwithwinsock,checkWSversionsanddoastartup*/
WORDi;
WSADATAwver;
i=MAKEWORD(1,1);
rcode=WSAStartup(i,&wver);
if(rcode!
=0||LOBYTE(wver.wVersion)!
=1||HIBYTE(wver.wVersion)!
=1){
printf("Unabletostartwinsockversion1.1.\n");
exit
(1);
}
#endif
/*makeaconnection*/
Connection=bb_connect(BLP_PORT);
if(Connection==NULL){
printf("Unabletoconnecttobbcomm.\n");
exit
(2);
}
printf("Succesfullyconnectedtobbcommonsocket%i.\n",
/*disconnect*/
rcode=bb_disconnect(Connection);
if(rcode!
=ExitOK){
printf("Failedtodisconnect,error%i.\n",rcode);
exit(3);
}
printf("Succesfullydisconectedfrombbcomm.\n");
}
Theoutputisasfollows.
Noticethatwetriedtoestablishtheconnectionatport8194,buttheoutputshowstheportconnectedtoas1924.Itdoesnotmatteriftheprogramconnectstoadifferentportthan8194.Portavailabilityisdecidedatruntimebybbcomm.
Followingcodesampleshowstheusageofbb_connect()andbb_disconnect().LinesmarkedinBluepertaintothediscussionabove.
D.MakingRequests.
InBloombergparlance,whenyoumakerequestsforsecurities’data,itmeansyouaremakingrequestsforthesecurity'sheader.Theheadercontainsthemostrecentvaluesforeachoftherealtimefieldsassociatedwithanobject(security).
TheBloombergAPIprovidesthefunctionbb_getheaderx()toretrievethecurrentheaderforaninstrument.Headersforasmanyas10instrumentsmayberequestedpercalltobb_getheaderx().Theresponsetoabb_getheaderx()callwillcontainacurrentsnapshotofalltherealtimefieldsBloombergkeepstrackof,foreachsecurityrequested.
OnceyouhaveconnectedtoBloombergandauthenticatedyourself,youcanbeginrequestingdatafromtheAPI.
WheneveryoumakearequesttotheBloombergAPI,youwillbereturnedarequestid.Thisrequestid,whichisjustaninteger,isusedtomatchtheresponseyouwillgetlaterwiththerequest.Requestidsarealwaysgreaterthenzero.Returnvaluesoflessthanzeroarereservedforerrors.
FunctionName
bb_getheaderx()
Description
Thisfunctionrequestsareal-timemarketsnapshot(currentlasttrade,open,high,low,bid,ask,volume,etc.)forupto10securities
InputParameters
1.Theconnectionpointeridentifyingaconnectiontobbcomm.
2.Flags.Hereisalistofpotentialflags,asfoundinthebbapi.hfile:
BHeaderDEFAULTSEARCH
BHeaderTODAYONLY
BHeaderENHANCEDSEARCH
BHeaderGARYPSEARCH
BHeaderGETSECINFO
BHeaderBYOBJECTID
EXTENDED_HEADER
3.Numberofsecuritiesrequested
4.Anarrayof32-bytestringsofsecuritytickers
ReturnValue
>0RequestID
<0Failure
Followingcodesampleshowstheusageofbb_getheaderx().LinesmarkedinBluepertaintothediscussionabove.
Example2
/*
**Thisprogramsnippetrequestsheadersfortwosecurities–IBMand**MSFT.Forthesakeofsimplicity,wearemakingtwoseparatecalls**foreachsecurity.Pleasenotethatitisinefficienttomaketwo
**bb_getheaderx()requestsfor1securityeach,sinceone**
**bb_getheaderx()requestca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BLOOMBERGAPIforCQuickStart12