EMQuantAPIPython接口配置的系统环境要求与方法
系统环境要求
配置方法
参数
返回
范例(Python2.x)
xxxxxxxxxxfromEmQuantAPIimport*loginresult=c.start()#loginresult为c.EmQuantData类型数据printloginresult范例(Python3.x)
无参数
xxxxxxxxxxfromEmQuantAPIimport*loginresult=c.start()printloginresult#dosomething…logoutresult=c.stop()#logoutresult为c.EmQuantData类型数据printlogoutresult范例(Python3.x)
xxxxxxxxxxfromEmQuantAPIimport*loginresult=c.start()print(loginresult)#dosomething…logoutresult=c.stop()#logoutresult为c.EmQuantData类型数据print(logoutresult)
xxxxxxxxxxcss(codes,indicators,options=None,*arga,**argb)获取股票,指数,基金,期货等各个证券品种或组合的基本资料,财务,估值等截面数据
xxxxxxxxxxdata=c.css("300059.SZ","TOTALSHARE","enddate=20190827")ifdata.ErrorCode!=0:print"requestcssError,",data.ErrorMsgelse:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):printdata.Data[code][i]范例(Python3.x)
xxxxxxxxxxdata=c.css("300059.SZ","TOTALSHARE","enddate=20190819")ifdata.ErrorCode!=0:print("requestcssError,",data.ErrorMsg)else:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):print(data.Data[code][i])附注2截面函数可选参数列表:
(注:截面函数每分钟请求次数不能超过700次)
xxxxxxxxxxcsd(codes,indicators,startdate,enddate,options=None,*arga,**argb)获取股票,指数,基金,期货等各个证券品种或组合的序列数据
xxxxxxxxxxdata=c.csd("300059.SZ,600425.SH","TOTALSHARE","2016-07-01","2016-07-06","")if(data.ErrorCode!=0):print"requestcsdError,",data.ErrorMsgelse:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):forjinrange(0,len(data.Dates)):printdata.Data[code][i][j]范例(Python3.x)
xxxxxxxxxxdata=c.csd("300059.SZ,600425.SH","TOTALSHARE","20160701","20160706","")if(data.ErrorCode!=0):print("requestcsdError,",data.ErrorMsg)else:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):forjinrange(0,len(data.Dates)):print(data.Data[code][i][j])附注3序列函数可选参数列表:
(注:序列函数每分钟请求次数不能超过700次)
xxxxxxxxxxctr(ctrName,indicators="",options="")提供专题报表数据
输入
xxxxxxxxxxdata=c.ctr("StockInfo","","StartDate=2019-07-01,EndDate=2019-07-02,Ispandas=1")ifdata.ErrorCode!=0:print"requestctrError,",data.ErrorMsgelse:forkey,valueindata.Data.items():forvinvalue:printv,print""范例(Python3.x)
xxxxxxxxxxdata=c.ctr("StockInfo","","StartDate=2019-07-01,EndDate=2019-07-02,Ispandas=1")if(data.ErrorCode!=0):print("requestctrError,",data.ErrorMsg)else:print("ctr输出结果======分割线======")forkey,valueindata.Data.items():forvinvalue:print(v,"",end="")print()附注4专题报表函数可选参数列表:
xxxxxxxxxxedb(edbids,options)获取宏观指标数据
xxxxxxxxxxdata=c.edb("EMM00087117","IsPublishDate=1,RowIndex=1,Ispandas=1")ifnotisinstance(data,c.EmQuantData):print(data)else:if(data.ErrorCode!=0):print"requestedbError,",data.ErrorMsgelse:print"edbiddate",forindindata.Indicators:printind,"",print""forcodeindata.Codes:forjinrange(0,len(data.Dates)):printcode,"",data.Dates[j],"",foriinrange(0,len(data.Indicators)):printdata.Data[code][i][j],"",print""范例(Python3.x)
xxxxxxxxxxdata=c.edb("EMM00087117","IsPublishDate=1,RowIndex=1,Ispandas=1")ifnotisinstance(data,c.EmQuantData):print(data)else:if(data.ErrorCode!=0):print("requestedbError,",data.ErrorMsg)else:print("edbiddate",end="")forindindata.Indicators:print(ind,end="")print("")forcodeindata.Codes:forjinrange(0,len(data.Dates)):print(code,"",data.Dates[j],end="")foriinrange(0,len(data.Indicators)):print(data.Data[code][i][j],end="")print("")附注7宏观数据函数可选参数列表:
xxxxxxxxxxcfn(codes,content,mode,options="")提供多个证券品种的公告、新闻等历史资讯和多个板块的历史资讯查询
options可选参数
EmQuantData.Data中指标字段说明
xxxxxxxxxxdata=c.cfn("300059.SZ","companynews,industrynews",eCfnMode_EndCount,"starttime=20190501010000,endtime=20190725,count=10")printu"cfn输出结果======分隔线======"if(notisinstance(data,c.EmQuantData)):printdataelse:if(data.ErrorCode!=0):print"requestcfnError,",data.ErrorMsgelse:forcodeindata.Data:total=len(data.Data[code])forkinrange(0,len(data.Data[code])):printdata.Data[code][k]范例(Python3.x)
xxxxxxxxxxdata=c.cfn("300059.SZ,","companynews,industrynews",eCfnMode_EndCount,"starttime=20190501010000,endtime=20190725,count=10")print("cfn输出结果======分隔线======")if(notisinstance(data,c.EmQuantData)):print(data)else:if(data.ErrorCode!=0):print("requestcfnError,",data.ErrorMsg)else:forcodeindata.Data:total=len(data.Data[code])forkinrange(0,len(data.Data[code])):print(data.Data[code][k])
xxxxxxxxxxcnq(codes,content,options="",fncallback)订阅多个证券品种的公告、新闻等资讯和多个板块的资讯
xxxxxxxxxxdefcnqcallback(quantdata):print(str(quantdata.Data))data=c.cnq("S888005002API","sectornews","",cnqCallback)ifdata.ErrorCode!=0:print"requestcnqError,",data.ErrorMsgelse:printu"cnq输出结果======分隔线======"_time.sleep(60)text=raw_input("pressanykeytocancelcnq\r\n")#取消订阅data=c.cnqcancel(data.SerialID)范例(Python3.x)
xxxxxxxxxxdefcnqcallback(quantdata):print(str(quantdata.Data))data=c.cnq('300059.SZ,600030.SH','companynews,industrynews','',cnqcallback)ifdata.ErrorCode!=0:print("requestcnqError,",data.ErrorMsg)else:print(u"cnq输出结果======分隔线======")_time.sleep(60)text=input("pressanykeytocancelcnq\r\n")#取消订阅data=c.cnqcancel(data.SerialID)
xxxxxxxxxxcses(blockcodes,indicators,options=None,*arga,**argb)获取沪深京股票板块的基本资料、财务等截面数据
xxxxxxxxxxdata=c.cses("B_018005001001,B_014010016006002","SECTOPREAVG,CFOPSAVG","DelType=1,IsHistory=0,type=1,DataAdjustType=1,PREDICTYEAR=2020,StartDate=2019-05-30,EndDate=2020-10-19,Payyear=2019,ReportDate=2020-06-30,TradeDate=2020-10-19")ifdata.ErrorCode!=0:print"requestcsesError,",data.ErrorMsgelse:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):printdata.Data[code][i]范例(Python3.x)
xxxxxxxxxxdata=c.cses("B_018005001001,B_014010016006002","SECTOPREAVG,CFOPSAVG","DelType=1,IsHistory=0,type=1,DataAdjustType=1,PREDICTYEAR=2020,StartDate=2019-05-30,EndDate=2020-10-19,Payyear=2019,ReportDate=2020-06-30,TradeDate=2020-10-19")ifdata.ErrorCode!=0:print("requestcsesError,",data.ErrorMsg)else:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):print(data.Data[code][i])附注8截面函数可选参数列表:
(注:板块截面函数不支持多线程)
xxxxxxxxxxcps(cpsCodes,cpsIndicators,cpsConditions,cpsOptions)条件选股函数
xxxxxxxxxxdata=c.cps("B_001004","LISTDATE,LISTDATE","[LISTDATE]=d(2021-06-16)","top=max([LISTDATE],100),sectordate=2021-06-18")ifdata.ErrorCode!=0:print"requestcpsError,",data.ErrorMsgelse:foritindata.Data:printit范例(Python3.x)
xxxxxxxxxxdata=c.cps("B_001004","LISTDATE,LISTDATE","[LISTDATE]=d(2021-06-16)","top=max([LISTDATE],100),sectordate=2021-06-18")print("cps输出结果======分割线======")foritindata.Data:print(it)附注9常见板块代码:
附注10操作符列表:
附注11排序表达式和Top表达式使用规则:
xxxxxxxxxxedbquery(edbids,indicators="",options="")获取宏观指标id详情信息
xxxxxxxxxxdata=c.edbquery("EMM00058124,EMM00087117,EMG00147350")if(data.ErrorCode!=0):print"requestedbqueryError,",data.ErrorMsgelse:print"edbid",forindindata.Indicators:printind,"",print""forcodeindata.Codes:forjinrange(0,len(data.Dates)):printcode,"","",foriinrange(0,len(data.Indicators)):printdata.Data[code][j],"",print""范例(Python3.x)
xxxxxxxxxxdata=c.edbquery("EMM00058124,EMM00087117,EMG00147350")if(data.ErrorCode!=0):print("requestedbqueryError,",data.ErrorMsg)else:print("edbid",end="")forindindata.Indicators:print(ind,end="")print("")forcodeindata.Codes:forjinrange(0,len(data.Dates)):print(code,"",end="")foriinrange(0,len(data.Indicators)):print(data.Data[code][j],end="")print("")附注12宏观指标信息查询函数支持字段列表:
xxxxxxxxxxcfnquery()获取资讯函数和资讯订阅函数支持的板块信息
EmQuantData.Data字段说明
xxxxxxxxxxdata=c.cfnquery("")printu"cfnquery输出结果======分隔线======"if(notisinstance(data,c.EmQuantData)):printdataelse:if(data.ErrorCode!=0):print"requestcfnqueryError,",data.ErrorMsgelse:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):printdata.Data[code][i]范例(Python3.x)
xxxxxxxxxxdata=c.cfnquery("")print("cfnquery输出结果======分隔线======")if(notisinstance(data,c.EmQuantData)):print(data)else:if(data.ErrorCode!=0):print("requestcfnqueryError,",data.ErrorMsg)else:forcodeindata.Codes:foriinrange(0,len(data.Indicators)):print(data.Data[code][i])
xxxxxxxxxxcnqcancel(serialID);取消特定或所有的资讯订阅
范例
xxxxxxxxxxdata=c.cnqcancel(0)
xxxxxxxxxxsector(pukeycode,enddate,ptions=None,*arga,**argb)获取Choice金融终端指定系统板块证券代码成分列表,目前只支持沪深股票、上交所期权的历史成分查询,其他板块只能获取最新成分
xxxxxxxxxxdata=c.sector("001004","2016-04-26")ifdata.ErrorCode!=0:print"requestsectorError,",data.ErrorMsgelse:forcodeindata.Data:printcode范例(Python3.x)
xxxxxxxxxxdata=c.sector("001004","2016-04-26")ifdata.ErrorCode!=0:print("requestsectorError,",data.ErrorMsg)else:forcodeindata.Data:print(code)附注13板块函数可选参数列表:
xxxxxxxxxxdata=c.tradedates("2016-07-01","2016-07-12")ifdata.ErrorCode!=0:print"requesttradedatesError,",data.ErrorMsgelse:printu"tradedate输出结果======分隔线======"foritemindata.Data:printitem范例(Python3.x)
xxxxxxxxxxdata=c.tradedates("2016-07-01","2016-07-12")if(data.ErrorCode!=0):print("requesttradedatesError,",data.ErrorMsg)else:print("tradedate输出结果======分隔线======")foritemindata.Data:print(item)附注14交易日函数可选参数列表:
xxxxxxxxxxgetdate(tradedate,offday=0,options=None,*arga,**argb)获取指定市场交易日历推算第N天交易日
xxxxxxxxxxdata=c.getdate("20160426",-3,"Market=CNSESH")ifdata.ErrorCode!=0:print"requestgetdateError,",data.ErrorMsgelse:fortradedateindata.Data:printtradedate范例(Python3.x)
xxxxxxxxxxdata=c.getdate("20160426",-3,"Market=CNSESH")ifdata.ErrorCode!=0:print("requestgetdateError,",data.ErrorMsg)else:print(data.Data)附注15偏移N天函数可选参数列表:
xxxxxxxxxxdata=c.tradedatesnum("2018-01-01","2018-09-15")ifdata.ErrorCode!=0:print"requesttradedatesnumError,",data.ErrorMsgelse:print"tradedatesnum======分割线======"printdata.Data范例(Python3.x)
xxxxxxxxxxdata=c.tradedatesnum("2018-01-01","2018-09-15")ifdata.ErrorCode!=0:print("requesttradedatesnumError,",data.ErrorMsg)else:print("tradedatesnum======分割线======")print(data.Data)
xxxxxxxxxxsetproxy(type,proxyip,port,verify,usr,pwd)设置代理
范例(Python3.x)
xxxxxxxxxxdata=c.setproxy(ePT_HTTP,"120.0.0.0",8080,True,"choice","password")ifdata.ErrorCode!=0:print("setproxyfailed,",data.ErrorMsg)
xxxxxxxxxxdata=c.manualactivate("usr","pwd","email=xxx@163.com")ifdata.ErrorCode!=0:print("manualactivatefailed,",data.ErrorMsg)
xxxxxxxxxxcfc(codes,indicators,options="")支持校验css/csd/cses函数的代码+指标模式
xxxxxxxxxxdata=c.cfc("000001.SZ,000001.SH,600000.SH,000000.TEST","CODE,NAME,TEST","FunType=css")ifdata.ErrorCode!=0:print"requestcfcError,",data.ErrorMsgelse:printu"cfc输出结果======分割线======"forindicatorindata.Indicators:printindicator,print""forkey,valueindata.Data.items():forvinvalue:printv,print""范例(Python3.x)
xxxxxxxxxxdata=c.cfc("000001.SZ,000001.SH,600000.SH,000000.TEST","CODE,NAME,TEST","FunType=css")if(data.ErrorCode!=0):print("requestcfcError,",data.ErrorMsg)else:print("cfc======分割线======")forindicatorindata.Indicators:print(indicator,"",end="")print()forkey,valueindata.Data.items():forvinvalue:print(v,"",end="")print()附注16指标校验函数可选参数列表:
xxxxxxxxxxcec(codes,options="")支持判断东财代码是否有效,同时提供补齐后缀的功能
xxxxxxxxxx#data=c.cec("600000,000000","ReturnType=1,SecuType=1,SecuMarket=0")data=c.cec("000001.SH,600000.SH,000000.TEST","ReturnType=0")ifdata.ErrorCode!=0:print"requestcecError,",data.ErrorMsgelse:printu"cec输出结果======分割线======"forindicatorindata.Indicators:printindicator,print""forkey,valueindata.Data.items():forvinvalue:printv,print""范例(Python3.x)
xxxxxxxxxx#data=c.cec("000001,000000","ReturnType=1,SecuType=1,SecuMarket=0")data=c.cec("000001.SH,600000.SH,000000.TEST","ReturnType=0")if(data.ErrorCode!=0):print("requestcecError,",data.ErrorMsg)else:print("cec======分割线======")forindicatorindata.Indicators:print(indicator,"",end="")print()forkey,valueindata.Data.items():forvinvalue:print(v,"",end="")print()附注17代码校验函数可选参数列表:
在日期参数中可直接使用字母替代或者加减法运算获取对应的日期,分为相对日期和绝对日期。
相对日期
可用于日期相对计算。
绝对日期
特殊,可返回指定字母对应的具体日期。
说明
举例:
xxxxxxxxxxdatastatistics(funcname,indicators="",options="")查询函数使用量情况
xxxxxxxxxxopts="StartDate="+(datetime.today()+timedelta(-29)).strftime("%Y-%m-%d")+",EndDate="+datetime.today().strftime("%Y-%m-%d")+",Ispandas=0";data=c.datastatistics("","FUNCENAME,FUNCNAME,SECUTYPE,PERIOD,STARTDATE,ENDDATE,THRESHOLD,USEDDATA,USEDRATIO,AVAILABEDATA",opts)ifnotisinstance(data,c.EmQuantData):print(data)else:ifdata.ErrorCode!=0:print"requestdatastatisticsError,",data.ErrorMsgelse:printu"datastatistics输出结果======分割线======"forindicatorindata.Indicators:printindicator,print""forkey,valueindata.Data.items():forvinvalue:printv,print""范例(Python3.x)
xxxxxxxxxxopts="StartDate="+(datetime.today()+timedelta(-29)).strftime("%Y-%m-%d")+",EndDate="+datetime.today().strftime("%Y-%m-%d")+",Ispandas=0";data=c.datastatistics("","FUNCENAME,FUNCNAME,SECUTYPE,PERIOD,STARTDATE,ENDDATE,THRESHOLD,USEDDATA,USEDRATIO,AVAILABEDATA",opts)ifnotisinstance(data,c.EmQuantData):print(data)else:if(data.ErrorCode!=0):print("requestdatastatisticsError,",data.ErrorMsg)else:print("datastatistics输出结果======分割线======")forindicatorindata.Indicators:print(indicator,"",end="")print()forkey,valueindata.Data.items():forvinvalue:print(v,"",end="")print()附注18函数列表:
附注19查询字段参数列表:
附注20日期参数:
xxxxxxxxxxpcreate(combinCode,combinName,initialFound,remark,options="")新建组合
xxxxxxxxxxdata=c.pcreate("quant001.PF","组合牛股",100000000,"这是一个牛股的组合")ifdata.ErrorCode!=0:print"requestpcreateError,",data.ErrorMsgelse:print"createsucceed"范例(Python3.x)
xxxxxxxxxxdata=c.pcreate("quant001.PF","组合牛股",100000000,"这是一个牛股的组合")if(data.ErrorCode!=0):print("requestpcreateError,",data.ErrorMsg)else:print("createsucceed")附注21新建组合函数可选参数列表:
xxxxxxxxxxpctransfer(combinCode,transferdirect,date,opCash,remark,options="")提供组合出入金调配
xxxxxxxxxxdata=c.pctransfer("quant001.PF","in","2019-08-29",100000,"追加资金")ifdata.ErrorCode!=0:print"requestpctransferError,",data.ErrorMsgelse:print"pctransfersucceed"范例(Python3.x)
xxxxxxxxxxdata=c.pctransfer("quant001.PF","in","2019-08-29",100000,"追加资金")if(data.ErrorCode!=0):print("requestpctransferError,",data.ErrorMsg)else:print("pctransfersucceed")附注22组合资金调配函数可选参数列表:
xxxxxxxxxxdata=c.pquery()if(data.ErrorCode!=0):print("requestpqueryError,",data.ErrorMsg)else:print"[key]:",forindexinrange(0,len(data.Indicators)):print"\t",data.Indicators[index],print""fork,vindata.Data.items():printk,":",forvvinv:print"\t",vv,print""范例(Python3.x)
xxxxxxxxxxdata=c.pquery()if(data.ErrorCode!=0):print("requestpqueryError,",data.ErrorMsg)else:print("[key]:",end="")forindexinrange(0,len(data.Indicators)):print("\t",data.Indicators[index],end="")print("")fork,vindata.Data.items():print(k,":",end="")forvvinv:print("\t",vv,end="")print("")附注23组合查询函数附加参数明细
附注24返回数据具体参数明细
xxxxxxxxxxporder(combincode,orderdict,remark,options="")组合批量下单
xxxxxxxxxxorderdict={'code':['300059.SZ','600000.SH'],'volume':[1000,200],'price':[13.11,12.12],'date':['2017-08-14','2017-08-24'],'time':['14:22:18','14:22:52'],'optype':[eOT_buy,eOT_buy],'cost':[0,3],'rate':[0,2],'destvolume':[0,0],'weight':[0.1,0.1]}data=c.porder("quant001",orderdict,"thisisatest")if(data.ErrorCode!=0):print"porderError,",data.ErrorMsgelse:print"ordersucceed"范例(Python3.x)
xxxxxxxxxxorderdict={'code':['300059.SZ','600000.SH'],'volume':[1000,200],'price':[13.11,12.12],'date':['2017-08-14','2017-08-24'],'time':['14:22:18','14:22:52'],'optype':[eOT_buy,eOT_buy],'cost':[0,3],'rate':[0,2],'destvolume':[0,0],'weight':[0.1,0.1]}data=c.porder("quant001",orderdict,"thisisatest")if(data.ErrorCode!=0):print("porderError,",data.ErrorMsg)else:print("ordersucceed")附注25orderdict参数定义列表
附注26组合交易附加参数options列表
xxxxxxxxxxpreport(combinCode,indicator,options="")查询组合报表信息
xxxxxxxxxxdata=c.preport("quant001.PF","record","startdate=2017/07/12,enddate=2018/01/15")if(data.ErrorCode!=0):print"requestpreportError,",data.ErrorMsgelse:forindindata.Indicators:printind,"",print""forkindata.Data:foritindata.Data[k]:printit,"",print""范例(Python3.x)
xxxxxxxxxxdata=c.preport("quant001","record","startdate=2017/07/12,enddate=2018/01/15")if(data.ErrorCode!=0):print("requestpreportError,",data.ErrorMsg)else:forindindata.Indicators:print(ind,end="")print("")forkindata.Data:foritindata.Data[k]:print(it,end="")print("")
xxxxxxxxxxpdelete(combinCode,options="")删除组合
xxxxxxxxxxdata=c.pdelete("quant001.PF")if(data.ErrorCode!=0):print"requestpdeleteError,",data.ErrorMsgelse:print"deletesucceed"范例(Python3.x)
xxxxxxxxxxdata=c.pdelete("quant001.PF")if(data.ErrorCode!=0):print("requestpdeleteError,",data.ErrorMsg)else:print("deletesucceed")
xxxxxxxxxx//EQLOGININFOlogInfo;//memset(&logInfo,0,sizeof(EQLOGININFO));//strncpy(logInfo.userName,"xxxx",strlen("xxxx"));//strncpy(logInfo.password,"xxxxx",strlen("xxxxx"));//errid=emmanualactivate(&logInfo,"email=who@what.com",write2Log);[Em_Info][2019-06-1816:22:54]:manualactivatebegin.[Em_Info][2019-06-1816:22:54]:manualactivatesuccess,pleasecontactwithyourservicemanagertogettokenfile.
即可联系客户经理完成人工激活的剩余步骤。
2)以Python语言为例。创建Manualactivate.py脚本,代码如下
[EmQuantAPIPython][Em_Info][2020-07-2110:52:54]:manualactivatebegin.
[EmQuantAPIPython][Em_Info][2020-07-2110:52:55]:manualactivatesuccess,pleasecontactwithyourservicemanagertogettokenfile.