升级公告
版本号 | 版本变动信息 | 发布时间 |
---|---|---|
2.5.6.0 | V2.5.4.7-> V2.5.6.0 | 2024-8-23 |
目录
接口配置接口配置Windows系统Linux系统MAC系统EMQuantAPI Java(Springboot版)接口配置的系统环境要求与方法登录函数退出函数数据函数截面函数序列函数专题报表宏观数据资讯函数资讯订阅板块截面函数功能函数条件选股宏观指标查询资讯板块查询取消资讯订阅板块函数交易日历交易日偏移区间交易日数设置路径函数设置代理函数人工激活函数指标校验函数代码校验函数日期宏流量查询函数组合函数新建组合组合资金调配组合查询批量下单组合报表查询删除组合错误类型错误类型常见问题激活注册登录函数序列函数截面函数
文件存放位置
在量化接口官网(https://quantapi.eastmoney.com/)下载压缩包EmQuantAPI_Java.zip,下载完成后解压。其中:
EMQuantAPI Java接口配置的系统环境要求与方法
系统环境要求
• 下载链接:http://choiceclub.eastmoney.com/#/articleDetail/8769
配置方法
windows10 64位系统,Eclipse为例;
把EmQuantAPITest工程放在路径D:\下,将EmQuantAPI_Java\libs\windows\lib文件夹替换D:\EmQuantAPITest\EmQuantAPITest\lib目录
Eclipse打开D:\EmQuantAPITest\EmQuantAPITest项目,在Package Explorer视图右击项目选择Build Path-->Configure Build Path
将Libraries下面无效的jar包依赖Remove掉
点击Add External JARs将D:\EmQuantAPITest\EmQuantAPITest\lib目录下所有jar包加进来
绑定手机号
登录Choice量化接口网站主页(https://quantapi.eastmoney.com),点击右上角账户名-个人资料绑定手机号;或者登录Choice金融终端,进入用户中心-资料管理绑定手机号。
登录激活(四种方式)
方式一、在start函数中直接输入账号密码进行登录(该方式不生成userinfo登录令牌)
方式二、使用激活工具(适用于有图形界面):
根据所用系统环境,运行接口激活工具LoginActivator.exe(Windows),输入绑定手机号获取验证码,激活成功后生成令牌文件userInfo,用户使用时无需输入用户名和密码,默认从令牌中获取登录权限。一个账号最多支持在十台设备上激活。
方式三、上行短信登录:
1)手机号绑定API接口账号
2)主动发送短信内容 "SXDL" 到 9535711 (三网合一,不区分运营商)
3)完成上行短信发送后,调用登录函数start("LoginMode=SXDL,PhoneNumber=xxxxxxxx"),xxxxxx替换为发送短信的手机号
4)最后登录成功,并且生成userinfo登录令牌
5)userinfo生成之后,下次登录无需重复进行短信验证登录
注意: 1)发送短信会有通讯费用产生;2)不需要userInfo文件 登录成功后会生成一个userInfo文件;3)发送短信之后没有回执;4)短信失效时间10分钟。
方式四、人工激活:
1)使用emmanualactivate函数,将自己的账号、密码、邮箱填进语句中代码并运行如下代码
int result = userAPI.manualactivate("usr", "pwd", "email=xxx@xx.com");
2)联系客户经理或者客服验证并从邮箱中获取登录令牌userInfo。
系统环境要求
配置方法
以64位CentOS 6.3为例;
将libEMQuantAPIx64.so、libEmQuantAPIJavaWraperx64.so、EmQuantAPI-V2.5.4.6.0.jar、log4j-api-2.17.0.jar、log4j-core-2.17.0.jar、log4j-slf4j-impl-2.17.0.jar、slf4j-api-1.7.25.jar、loginactivator、image、ServerList.json.e放在~/EmQuantAPITest/lib目录下(~/EmQuantAPITest/lib目录可以自行确定)
在用户自行开发的java项目的jar包也放置在~/EmQuantAPITest/lib目录下(本版本提供了测试demo的jar包名为EmQuantAPITest.jar,主函数所在类为com.eastmoney.Demo)
绑定手机号
登录Choice量化接口网站主页(https://quantapi.eastmoney.com),点击右上角账户名-个人资料绑定手机号;或者登录Choice金融终端,进入用户中心-资料管理绑定手机号。
登录激活(四种方式)
方式一、在start函数中直接输入账号密码进行登录(该方式不生成userinfo登录令牌)
方式二、使用激活工具(适用于有图形界面):
根据所用系统环境,运行接口激活工具loginactivator(Linux)/loginactivator_ubuntu(Ubuntu),输入绑定手机号获取验证码,激活成功后生成令牌文件userInfo,用户使用时无需输入用户名和密码,默认从令牌中获取登录权限。一个账号最多支持在十台设备上激活。
方式三、上行短信登录:
1)手机号绑定API接口账号
2)主动发送短信内容 "SXDL" 到 9535711 (三网合一,不区分运营商)
3)完成上行短信发送后,调用登录函数start("LoginMode=SXDL,PhoneNumber=xxxxxxxx"),xxxxxx替换为发送短信的手机号
4)最后登录成功,并且生成userinfo登录令牌
5)userinfo生成之后,下次登录无需重复进行短信验证登录
注意: 1)发送短信会有通讯费用产生;2)不需要userInfo文件 登录成功后会生成一个userInfo文件;3)发送短信之后没有回执;4)短信失效时间10分钟。
方式四、人工激活:
1)使用emmanualactivate函数,将自己的账号、密码、邮箱填进语句中代码并运行如下代码
int result = userAPI.manualactivate("usr", "pwd", "email=xxx@xx.com");
2)联系客户经理或者客服验证并从邮箱中获取登录令牌userInfo。
运行Demo
在~目录下,执行java -cp EmQuantAPITest/lib/EmQuantAPI-V2.5.4.6.0.jar:EmQuantAPITest/lib/EmQuantAPITest.jar:EmQuantAPITest/lib/log4j-api-2.17.0.jar:EmQuantAPITest/lib/log4j-core-2.17.0.jar:EmQuantAPITest/lib/log4j-slf4j-impl-2.17.0.jar:EmQuantAPITest/lib/slf4j-api-1.7.25.jar com.eastmoney.Demo
系统环境要求
配置方法
以64位Mac OS 10.12.6为例;
将libEmQuantAPIJavaWraperx64.dylib、libEMQuantAPIx64.dylib、EmQuantAPI-V2.5.4.6.0.jar、log4j-api-2.17.0.jar、log4j-core-2.17.0.jar、log4j-slf4j-impl-2.17.0.jar、slf4j-api-1.7.25.jar、image、loginactivator_mac、ServerList.json.e放在~/EmQuantAPITest/lib目录下(~/EmQuantAPITest/lib目录可以自行确定)
在用户自行开发的java项目的jar包也放置在~/EmQuantAPITest/lib目录下(本版本提供了测试demo的jar包名为EmQuantAPITest.jar,主函数所在类为com.eastmoney.Demo)
绑定手机号
登录Choice量化接口网站主页(https://quantapi.eastmoney.com),点击右上角账户名-个人资料绑定手机号;或者登录Choice金融终端,进入用户中心-资料管理绑定手机号。
登录激活(四种方式)
方式一、在start函数中直接输入账号密码进行登录(该方式不生成userinfo登录令牌)
方式二、使用激活工具(适用于有图形界面):
根据所用系统环境,运行接口激活工具loginactivator_mac(Mac),输入绑定手机号获取验证码,激活成功后生成令牌文件userInfo,用户使用时无需输入用户名和密码,默认从令牌中获取登录权限。一个账号最多支持在十台设备上激活。
方式三、上行短信登录:
1)手机号绑定API接口账号
2)主动发送短信内容 "SXDL" 到 9535711 (三网合一,不区分运营商)
3)完成上行短信发送后,调用登录函数start("LoginMode=SXDL,PhoneNumber=xxxxxxxx"),xxxxxx替换为发送短信的手机号
4)最后登录成功,并且生成userinfo登录令牌
5)userinfo生成之后,下次登录无需重复进行短信验证登录
注意: 1)发送短信会有通讯费用产生;2)不需要userInfo文件 登录成功后会生成一个userInfo文件;3)发送短信之后没有回执;4)短信失效时间10分钟。
方式四、人工激活:
1)使用emmanualactivate函数,将自己的账号、密码、邮箱填进语句中代码并运行如下代码
int result = userAPI.manualactivate("usr", "pwd", "email=xxx@xx.com");
2)联系客户经理或者客服验证并从邮箱中获取登录令牌userInfo。
运行Demo
在~目录下,执行java -cp EmQuantAPITest/lib/EmQuantAPI-V2.5.4.6.0.jar:EmQuantAPITest/lib/EmQuantAPITest.jar:EmQuantAPITest/lib/log4j-api-2.17.0.jar:EmQuantAPITest/lib/log4j-core-2.17.0.jar:EmQuantAPITest/lib/log4j-slf4j-impl-2.17.0.jar:EmQuantAPITest/lib/slf4j-api-1.7.25.jar com.eastmoney.Demo
WINDOWS / MAC / LINUX系统
系统环境要求
配置方法
以IntelliJ IDEA 2020.3 (Ultimate Edition)为例;
IntelliJ IDEA打开emquantapi-sample-springboot项目
配置application.yml中的属性,修改userAPI、jniEnv、serverlistdir位置为本地文件emquantapi_library路径
绑定手机号
登录Choice量化接口网站主页(https://quantapi.eastmoney.com),点击右上角账户名-个人资料绑定手机号;或者登录Choice金融终端,进入用户中心-资料管理绑定手机号。
登录激活(四种方式)
方式一、在start函数中直接输入账号密码进行登录(该方式不生成userinfo登录令牌)
方式二、使用激活工具(适用于有图形界面):
根据所用系统环境,运行接口激活工具LoginActivator.exe(Windows),输入绑定手机号获取验证码,激活成功后生成令牌文件userInfo,用户使用时无需输入用户名和密码,默认从令牌中获取登录权限。一个账号最多支持在十台设备上激活。
方式三、上行短信登录:
1)手机号绑定API接口账号
2)主动发送短信内容 "SXDL" 到 9535711 (三网合一,不区分运营商)
3)完成上行短信发送后,调用登录函数start("LoginMode=SXDL,PhoneNumber=xxxxxxxx"),xxxxxx替换为发送短信的手机号
4)最后登录成功,并且生成userinfo登录令牌
5)userinfo生成之后,下次登录无需重复进行短信验证登录
注意: 1)发送短信会有通讯费用产生;2)不需要userInfo文件 登录成功后会生成一个userInfo文件;3)发送短信之后没有回执;4)短信失效时间10分钟。
方式四、人工激活:
1)application.yml中emquantapi.manualactivate.run属性设置为true即可,并填写用户名、密码及有效邮箱
2)运行后,联系客户经理或客服获取登录令牌userInfo
int start(String options)
初始化登录函数,登录验证通过以后,即可正常使用接口函数获取数据,同时在日志回调函数中会有日志输出。
参数
参数名 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
options | 可选参数 | 字符串 | 输入 | 附加参数,可填附加字段。见附注1 |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
//设置回调函数("msg"为数据的回调函数,"log"为日志的回调函数)
//数据回调函数需要实现UserDataCallBack的子类
//日志回调函数需要实现UserLogCallBack的子类
HashMap<String, UserCallBack> userCallBackHashMap = new HashMap<>();
userCallBackHashMap.put("msg", new UserDataCallBack() {
public void callback(EQMSG eqmsg) {
if(eqmsg.getRequestID()==10000) {
LOG.info("csq callback:"+eqmsg.toString());
//eqmsg.getSerialID()与csq函数返回对象ReturnSignal中的returnSignal.getDataOreqid()相对应
if(eqmsg.getSerialID() == 请求序列号)
{
//TODO
}
}else if(eqmsg.getRequestID()==10001){
LOG.info("cst callback:"+eqmsg.toString());
}else if(eqmsg.getRequestID()==10002) {
LOG.info("cnq callback:"+eqmsg.toString());
}
}
});
userCallBackHashMap.put("log", new UserLogCallBack() {
public void callback(String o) {
//回调方式的日志
LOG.info(o);
}
});
ExplainClient.start(userCallBackHashMap);
UserAPI userAPI = new UserAPI(ExplainClient.getSystemTaskQueue());
//设置配置文件路径,如果设置""或者为null,则默认配置文件在jar包的同级目录下
userAPI.setJniEnv("");
//上面为启动默认写法(下面均需要使用userAPI对象),start调用如下
int result = userAPI.start("");
if (result != 0) {
LOG.info(ErrorType.getErrorString(result));
return;
}
附注1 登录函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
用户名 | UserName | 字符串 | V2.5.4.6版本开始支持账密登录。若传入此参数且账号密码均不为空则使用账密登录模式。若要使用userinfo登录令牌模式,此参数不传 |
密码 | PassWord | 字符串 | 同上 |
服务器测速 | TestLatency | 0,1; 缺省值 0 | 取值0,不测速,连接默认服务器 ; 取值1,登录前服务器测速,并保存为默认 |
强制登录 | ForceLogin | 0,1; 缺省值 0 | 取值0,当线上已存在该账户时,不强制登录 ; 取值1,当线上已存在该账户时,强制登录,将前一位在线用户踢下线 ; |
记录登录信息标记 | RecordLoginInfo | 0,1; 缺省值 1 | 取值0,不记录; 取值1,追加记录登录信息到logininfo.log文件,文件位于serverlist.json.e所在目录下 |
上行短信登录 | LoginMode | 取值范围:SXDL | 取值SXDL,进行上行短信登录验证,务必配合PhoneNumber参数一起使用。使用方法:用户先使用API绑定的手机号发送内容“SXDL”到9535711完成发送后,然后设置LoginMode和PhoneNumber参数,并调用start函数。成功后,自动生成userinfo。 |
手机号码 | PhoneNumber | 取值范围:中国境内11位有效手机号,且有API接口权限 | 同上 |
HTTP超时时间设置 | HTTPTimeout | 默认值 15 | 设置HTTP超时时间,单位秒 |
HTTP三网地址设置 | USEHTTP | 1,2,3 | 取值1,电信; 取值2,移动; 取值3,联通 注意:不能跟参数UseProxy、UseInnerNet一起使用 |
内置代理设置 | UseProxy | -1,0,1,2,3 默认值-1 | 使用前需要开通IP白名单, 取值-1,不做任何操作; 取值0,不使用代理,则不传; 取值1,使用内置代理1; 取值2,使用内置代理2; 取值3,使用内置代理3 |
是否使用外网 | UseInnerNet | -1,0,1 默认值-1 | 取值 0和-1 都表示使用外网, 其余值使用内网例如1。注意:UseProxy 与 UseInnerNet 同时使用时,UseInnerNet设置参数失效 |
xxxxxxxxxx
int stop ()
退出登录
无参数
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int result = userAPI.stop();
if (result != 0) {
LOG.info(ErrorType.getErrorString(result));
return;
}
附注3 截面函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
dataframe展示效果 | ToDataFrame | 1 | 格式化输出,仅做展示方便查看数据情况,对象返回为空。若加工返回数据请将该参数置空。 |
排列形式 | RowIndex | 1--2 | 和dataframe搭配使用 1--按证券代码 2--按日期 |
xxxxxxxxxx
EQData css(String codes, String indicators, String options)
获取股票,指数,基金,期货等各个证券品种或组合的基本资料,财务,估值等截面数据
参数名 | 简称 | 定义 | 描述 | |
---|---|---|---|---|
codes | 证券代码 | String | 输入 | 东财代码,支持多代码输入,以半角逗号分隔,不支持跨品种证券输入 |
indicators | 指标简称 | String | 输入 | 指标名称,支持多指标输入,以半角逗号分隔,最多不超过64个,详细指标列表见指标手册 |
options | 可选参数 | String | 输入 | 附加参数,可填附加字段,见附注3 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][] valueArray;//基于上面参数的三维数组 } |
范例(Java)
xxxxxxxxxx
EQData eqDataCss = userAPI.css("000002.SZ,300059.SZ", "TOTALSHARE", "EndDate=20160217");
if (eqDataCss.getErrCode() != 0) {
LOG.info("request css Error, " + eqDataCss.getErrString());
} else {
//获得数据对象
LOG.info(eqDataCss.toString());
}
附注3 截面函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
dataframe展示效果 | ToDataFrame | 1 | 格式化输出,仅做展示方便查看数据情况,对象返回为空。若加工返回数据请将该参数置空。 |
排列形式 | RowIndex | 1--2 | 和dataframe搭配使用 1--按证券代码 2--按日期 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
(注:截面函数每分钟请求次数不能超过700次)
xxxxxxxxxx
EQData csd(String codes, String indicators, String startDate, String endDate, String options)
获取股票,指数,基金,期货等各个证券品种或组合的序列数据
参数
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
codes | 证券代码 | String | 东财代码,支持多代码输入,以半角逗号分隔 |
indicators | 指标简称 | String | 指标名称,支持多指标输入,以半角逗号分隔,最多不超过64个,详细指标列表见指标手册 |
startdate | 起始日期 | String | 支持格式: YYYYMMDD,YYYY/MM/DD,YYYY/M/D,YYYY-MM-DD,YYYY-M-D |
EndDate | 截止日期 | String | 支持格式: YYYYMMDD,YYYY/MM/DD,YYYY/M/D,YYYY-MM-DD,YYYY-M-D |
options | 可选参数 | String | 附加参数,可填附加字段,见附注4 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][] valueArray;//基于上面参数的三维数组 } |
范例
xxxxxxxxxx
EQData eqDataCsd = userAPI.csd("000002.SZ,300059.SZ", "TOTALSHARE", "2016/01/10", "2016/04/13", "");
if (eqDataCsd.getErrCode() != 0) {
LOG.info("request csd Error, " + eqDataCsd.getErrString());
} else {
//获得数据对象
LOG.info(eqDataCsd.toString());
}
附注4 序列函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
日期周期 | Period | 1--4 缺省值:1 | 日期周期:日,周,月,年 分别对应:1,2,3,4 |
复权方式 | AdjustFlag | 1--3 缺省值:1 | 不复权--1 后复权--2 前复权--3 |
币种 | CurType | 1--4 缺省值:1 | 原始币种--1 人民币--2 美元--3 港币--4 (仅适用于港美股指标) |
按日期排序 | Order | 1--2 缺省值:1 | 升序--1 降序--2 |
市场类型 | Market | 见说明 缺省值:“CNSESH” | CNSESH 上海证券交易所 CNSESZ 深圳证券交易所 HKSE00 香港证券交易所 USSE00 美国证券交易所 USSEND 美国纳斯达克市场 USSENY 纽约证券交易所 CNFEBC 渤海商品交易所 CNFEDC 大连商品交易所 CNFESF 上海期货交易所 CNFEZC 郑州商品交易所 INE000 上海国际能源交易中心 CNGCSH 上海黄金交易所 HKME00 香港商品交易所 0 自然日 1 全部市场交易日 CNSH00 沪股通交易日 CNSHHK 沪港股通交易日 CNSZ00 深股通交易日 CNSZHK 深港股通交易日 NYMEX0 纽约商业期货交易所 USFENY 纽约商品交易所 CME000 芝加哥商业交易所 LDMETL 伦敦金属交易所 LDEXCH 伦敦证券交易所 SGSE00 新加坡交易所 |
空值替换 | ShowBlank | 整数 | 对返回数据中的空值的进行特殊处理,例如:ShowBlank=0,所有的空值都替换成0 |
dataframe展示效果 | ToDataFrame | 1 | 格式化输出,仅做展示方便查看数据情况,对象返回为空。若加工返回数据请将该参数置空。 |
排列形式 | RowIndex | 1--2 | 和dataframe搭配使用 1--按证券代码 2--按日期 |
沿用之前数据 | filldata | 0,1 缺省值:0 | 不沿用--0 沿用--1 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
(注:序列函数每分钟请求次数不能超过700次)
xxxxxxxxxx
EQCtrData ctr(String ctrName, String indicators, String options)
提供专题报表数据
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
ctrName | 报表名称 | String | 东财报表名称,详细枚举见指标手册 |
indicators | 报表字段简称 | String | 报表字段简称,支持多字段输入,以半角逗号分隔,传空或匹配不到时展示报表全部字段,字段枚举详见指标手册 |
options | 报表参数 | String | 报表参数明细,详见指标手册,其他参数见附注5 |
返回
类型 | 描述 |
---|---|
EQCtrData对象 | class EQCtrData{ private int errCode; private String errString;//错误信息 private int row; private int column; private String[] indicatorArray; private Object[][][] valueArray;//基于上面参数的二维数组 } |
范例
xxxxxxxxxx
EQCtrData ctr = userAPI.ctr("StockInfo","", "StartDate=2019-07-01,EndDate=2019-07-02");
if(ctr.getErrCode()!=0){
LOG.info("request ctr Error, " + ctr.getErrString());
}else{
//获得数据对象
LOG.info(ctr.toString());
}
附注5 专题报表函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
dataframe展示效果 | ToDataFrame | 1 | 格式化输出,仅做展示方便查看数据情况,对象返回为空。若加工返回数据请将该参数置空。 |
编码类型 | ENCODE | UTF-8; GBK; GB2312 默认值为空(代表自动判断) | 部分文字无法准确判断编码,需要指定编码结果出现乱码时,可选取编码类型进行设置 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
xxxxxxxxxx
EQData edb(String edbids, String options)
获取宏观指标数据
输入
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
edbids | 宏观指标id | String | 宏观指标id,支持多代码输入,最多不超过100个,以半角逗号分隔,宏观指标列表见量化接口官网-命令生成-宏观数据 |
options | 可选参数 | String | 附加参数,可填””,可填附加字段,见附注7 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][] valueArray;//基于上面参数的三维数组 } |
范例(Java)
xxxxxxxxxx
EQData edb = userAPI.edb("EMM00087117", "IsPublishDate=1");
if (edb.getErrCode() != 0) {
LOG.info("request edb Error, "+ edb.getErrString());
} else {
//获得数据对象
LOG.info(edb.toString());
}
附注7 宏观数据函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
起始日期 | StartDate | 支持格式: YYYYMMDD, YYYY/MM/DD, YYYY/M/D , YYYY-MM-DD ,YYYY-M-D | 若StartDate不传,从第一条数据开始返回; 若EndDate不传,返回至最新一条数据; 若都不传则输出全部数据. |
截止日期 | EndDate | 同上 | 同上 |
最新一条数据 | IsLatest | 取值范围:0,1 缺省值:0 | 取值0,选定日期范围内数据 取值1,最新一条数据 |
请求指标真实发布日期 | IsPublishDate | 取值范围:0,1 缺省值:0 | 取值0,不请求publishdate 取值1,请求publishdate 备注:只有部分EDB指标有发布日期 |
dataframe展示效果 | ToDataFrame | 1 | 格式化输出,仅做展示方便查看数据情况,对象返回为空。若加工返回数据请将该参数置空。 |
排列形式 | RowIndex | 1,2 | 和dataframe搭配使用 1,按证券代码 2,按日期 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
调整返回日期 | FixDate | 取值范围:0,1 缺省值:0 | 取值0,按原始日期返回,不进行调整; 取值1,调整返回的日期为每个周期对应的最后一个自然日,如年频指标则返回每年的12月31日 |
xxxxxxxxxx
EQData cfn(String codes, String content, int emode, String options)
提供多个证券品种的公告、新闻等历史资讯和多个板块的历史资讯查询
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
codes | 证券代码或板块代码 | String | 东财代码,支持多代码,以半角逗号分开。证券代码和板块代码不能混用。板块代码需先调用资讯板块查询函数获取。 |
content | 请求内容类型 | String | companynews-公司资讯 industrynews-行业资讯 report-公告 regularreport-定期公告 tradeinfo-重大事项(交易信息) content为前面几个的时候codes必须为证券代码 sectornews-板块资讯 content为sectornews时codes必须为板块代码 content支持前面五个混合,以半角逗号分隔。sectornews和其他不能混合请求 |
mode | 请求模式 | int | 值为1 # starttime和endtime中间的所有资讯 值为2 # 提取endtime的近count条数据 |
options | 可选参数 | String | 附加参数,可填””,可填附加字段,详见下表 |
options可选参数
中文名称 | 英文名称 | 说明 |
---|---|---|
开始时间 | starttime | 模式一必传,模式二无意义。YYYYMMDDHHMMSS或者YYYYMMDD |
结束时间 | endtime | YYYYMMDDHHMMSS或者YYYYMMDD。为空则为当前时间 |
资讯条数 | count | 模式二必传,模式一无意义,在模式二返回以endtime为基准的近count条资讯 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
EQData.valueArray中指标字段说明
输出字段 | 字段中文 |
---|---|
datetime | 展示时间(公告只展示日期,部分盘后公告展示日期是下一个交易日) |
eitime | 生产时间(公告只提供2017/01/01之后的数据并且只含日期) |
code | 证券代码或板块代码 |
content | 请求类型 |
title | 资讯标题 |
infoCode | 资讯编码 |
medianname | 来源 |
url | 链接 |
范例(Java)
xxxxxxxxxx
EQData cfn = userAPI.cfn("300059.SZ,600519.SH,300024.SZ", "companynews,industrynews", 2, " starttime=20190501010000,endtime=20190725200000,count=10 ");
if (cfn.getErrCode() != 0) {
LOG.info("request cfn Error, "+ cfn.getErrString());
} else {
//获得数据对象
LOG.info(cfn.toString());
}
xxxxxxxxxx
ReturnSignal cnq(String codes, String content, String options)
订阅多个证券品种的公告、新闻等资讯和多个板块的资讯,资讯数据自动进入数据回调函数
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
codes | 证券代码或板块代码 | String | 东财代码,支持多代码,以半角逗号分开。证券代码和板块代码不能混用。板块代码需先调用资讯板块查询函数获取。 |
content | 请求内容类型 | String | companynews-公司资讯 industrynews-行业资讯 report-公告 regularreport-定期公告 tradeinfo-重大事项(交易信息) content为前面几个的时候codes必须为证券代码 sectornews-板块资讯 content为sectornews时codes必须为板块代码 content支持前面五个混合,以半角逗号分隔。sectornews和其他不能混合请求 |
options | 可选参数 | String | ””,预留,暂无可选参数 |
返回
类型 | 描述 |
---|---|
ReturnSignal对象 | class ReturnSignal { private int dataOreqid; //返回值或者流水号 private int errId; //错误码 private String errString;//错误信息 } |
范例
x//启动时设置的数据回调函数
userCallBackHashMap.put("msg", new UserDataCallBack() {
public void callback(EQMSG eqmsg) {
if(eqmsg.getRequestID()==10000) {
LOG.info("csq callback:"+eqmsg.toString());
}else if(eqmsg.getRequestID()==10001){
//cst回调数据
}else if(eqmsg.getRequestID()==10002) {
//cnq回调数据
LOG.info("cnq callback:"+eqmsg.toString());
//eqmsg.getSerialID()与cst函数返回对象ReturnSignal中的returnSignal.getDataOreqid()相对应
if(eqmsg.getSerialID() == 请求序列号)
{
//TODO
}
}
}
});
ReturnSignal cnq = userAPI.cnq("S888005002API", "sectornews", "");
if (cnq.getErrId() != 0) {
LOG.info("request cnq Error, " + cnq.getErrString());
}else{
try {
Thread.sleep(30000);
} catch (Exception e) {
LOG.error(e.getMessage(), e);
}
int cnqcancel = userAPI.cnqcancel(cnq.getDataOreqid());
LOG.info("cnqcancel result:" + ErrorType.getErrorString(cnqcancel));
}
xxxxxxxxxx
EQData cses(String codes, String indicators, String options)
获取沪深股票板块的基本资料,财务等截面数据
参数名 | 简称 | 定义 | 描述 | |
---|---|---|---|---|
blockcodes | 板块代码 | String | 输入 | 东财板块代码,以B_开头,板块代码可在接口官网命令生成-功能函数-板块成分中获取,格式如 "B_018005001001",支持多代码输入,以半角逗号分隔,最多不超过6个 |
indicators | 指标简称 | String | 输入 | 指标名称,支持多指标输入,以半角逗号分隔,最多不超过15个 |
options | 可选参数 | String | 输入 | 附加参数,可填NULL,见附注8 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][] valueArray;//基于上面参数的三维数组 } |
范例(Java)
xxxxxxxxxx
EQData cses = userAPI.cses("B_011001003,B_007159,B_014010016006002", "SECTOPREAVG,CFOPSAVG,MANAEXPAVG,SECTORCOUNT","TradeDate=2020-10-19,DelType=1,IsHistory=0,type=1,ReportDate=2020-06-30,DataAdjustType=1,PREDICTYEAR=2020,StartDate=2019-05-30,EndDate=2020-10-19,Payyear=2019");
if (cses.getErrCode() != 0) {
LOG.info("request cses Error, " + cses.getErrString());
} else {
//获得数据对象
LOG.info(cses.toString());
}
附注8 板块截面函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
是否取最新板块成分 | isHistory | 0,1 | 必传参数 0,取最新板块成分 1,取历史板块成分 |
dataframe展示效果 | ToDataFrame | 1 | 格式化输出,仅做展示方便查看数据情况,对象返回为空。若加工返回数据请将该参数置空。 |
排列形式 | RowIndex | 1,2 | 和dataframe搭配使用 1,按证券代码 2,按日期 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
(注:板块截面函数不支持多线程)
xxxxxxxxxx
EQData cps(String cpsCodes, String cpsIndicators, String cpsConditions, String cpsOptions)
条件选股函数
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
cpsCodes | 板块代码或证券代码 | String | 控制选股范围,CPS函数只能选取沪深京的板块和证券代码,取值格式有两种: 1. 板块代码,以B_开头,如 "B_001004",常见板块代码见附注9; 2. 东财代码,多个代码间用半角逗号隔开,如"000001.SZ,000002.SZ,600000.SH" |
cpsIndicators | 条件参数 | String | 定义条件表达式使用的参数,多个参数之间用英文分号隔开,内部各参数用半角逗号隔开,具体指标和英文简称见接口官网命令生成-功能函数-条件选股,如: s1,LISTDATE;s2,TOTALSHARE,2021-06-18 |
cpsConditions | 条件表达式 | String | 条件表达式,各表达式用 and 连接,表达式支持的操作符:ANY,CONTAINALL,ISNULL,ISNOTNULL,比较运算符, 算术运算符,逻辑运算符(必须小写)如and、or、not 等,具体操作符释义详见附注10;条件参数引用格式: [参数名1],例如: [s1] >10 and [s2] > [s1] and not CONTAINANY ([s3],重工,银行);若选择的条件是日期,需加d( ),例如:[s4]>d(2017/7/21),若选日期区间,需用多项日期表达式,用and连接,例如:[s4]>d(2013-09-30) and [s4]<d(2014-07-10) |
cpsOptions | 附加参数 | String | 其他附加条件,如排序、取前N条选股结果等,具体使用规则见附注11 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
范例
xxxxxxxxxx
EQData cps = userAPI.cps("B_001004","LISTDATE,LISTDATE","[LISTDATE] = d(2021-06-16) ","top=max([LISTDATE],100),sectordate=2021-06-18");
if (cps.getErrCode() != 0) {
LOG.info("request cps Error, "+ cps.getErrString());
} else {
//获得数据对象
LOG.info(cps.toString());
}
附注9 常见板块代码:
板块名称 | 板块代码 |
---|---|
全部A股 | 001004 |
上证A股 | 001005 |
深证A股 | 001006 |
深证B股 | 001013 |
上证B股 | 001012 |
全部B股 | 001011 |
创业板 | 001010 |
中小板 | 001009 |
深证主板 | 001008 |
深证主板A股 | 001007 |
风险警示股票 | 001023 |
风险警示股票(深交所) | 001025 |
风险警示股票(上交所) | 001024 |
已发行待上市股票 | 001020 |
正在发行的股票 | 001019 |
*ST | 001018 |
ST | 001017 |
全部A股(非金融石油石化) | 001044 |
可转债标的 | 001046 |
融资融券标的 | 001045 |
深股通 | 001041 |
沪深股通 | 001047 |
深证主板B股 | 001033 |
中小板(含ST,ST*) | 001032 |
深证主板A股(含ST,ST*) | 001031 |
沪股通 | 001038 |
中证500成份 | 009006062 |
中证1000成份 | 009007552 |
上证50指数成份 | 009007063 |
上证180指数成份 | 009007060 |
创业板综成份 | 009007145 |
创业板指成份 | 009007144 |
中小板综成份 | 009007125 |
中小板指成份 | 009007124 |
上证综合指数成份 | 009007104 |
沪深300成份 | 009006195 |
深证综合指数成份 | 009007251 |
MSCI中国(概念类) | 007230 |
预盈预增 | 007054 |
预亏预减 | 007053 |
附注10 操作符列表:
分类 | 操作符 | 描述 | 详细 | 举例 |
---|---|---|---|---|
算术运算符 | + - * / | 加 减 乘 除 | ||
比较运算符 | > = < >= <= <> | 大于 等于 小于 大于或等于 小于或等于 不等于 | ||
逻辑运算符 | and or not | 与 或 非 | ||
ANY CONTAINANY | 包含任意一个 | ANY( s[1] , 中国 , 美国 ) 表示当变量s1中包含“中国”或“美国”则成立 | ||
CONTAINALL | 包含所有值 | CONTAINALL ( s[1] , 中国 , 美国 ) 表示当变量s1中包含“中国”且包含“美国”则成立 | ||
MAX | 取最大的N个值 | 用在Top表达式中,对选股结果取TOP | top=max([s1],100) | |
MIN | 取最小的N个值 | 用在在Top表达式中,对选股结果取最小的N行 | top=min([s2],100) | |
ISNULL ISNOTNULL | 等于空值 不等于空值 | 条件选股取空值或不取空值,多项输入用and连接 | isnull([s1])and isnotnull([s2]) |
附注11 排序表达式和Top表达式使用规则:
字段说明 | 取值格式 | 取值示例 |
---|---|---|
排序表达式:对返回的结果进行排序 | 格式:orderby=[rd|ra],(rd为降序,ra为升序) 支持变量引用,引用格式为方括号+变量名 多个排序字段间,以=> 符号分隔 支持的操作符:rd,ra,算术运算符,“=>”分隔符 | orderby=rd([s1]*2) => ra([s2]) |
Top表达式:对返回结果按指定排序提取前N行 | 格式:top=max(排序字段表达式,行数)或top=min(排序字段表达式,行数) 支持变量引用,引用格式为方括号+变量名 支持的操作符and,or,算术运算符 | top = max([s1],100) and min([s2],100) |
板块成分日期:选择的板块成分的日期 | 格式:sectordate=板块历史成分的日期,若sectordate不传则默认取最新的一天。 | sectordate=2018-07-18 |
超时时间设置 | 格式:RECVtimeout=正整数,单位秒,如 设置60代表60秒 | RECVtimeout=60 |
xxxxxxxxxx
EQData edbquery(String edbids, String indicators, String options)
获取宏观指标id详情信息
输入
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
edbids | 宏观指标id | String | 宏观指标id,支持多代码输入,最多不超过100个,以半角逗号分隔 |
indicators | 详情字段简称 | String | 详情字段简称,支持多字段输入,以半角逗号分隔,传空或匹配不到时则输出全部字段,详细字段列表见附注12 |
options | 可选参数 | String | 附加参数,可填NULL,可填附加字段 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
范例(Java)
xxxxxxxxxx
EQData edbquery = userAPI.edbquery("EMM00058124", "", "");
if (edbquery.getErrCode() != 0) {
LOG.info("request edbquery Error, "+ edbquery.getErrString());
} else {
//获得数据对象
LOG.info(edbquery.toString());
}
附注12 宏观指标信息查询函数支持字段列表:
字段简称 | 中文简称 | 备注 |
---|---|---|
ID | 指标ID | |
Name | 指标名称 | |
Unit | 单位 | |
Source | 来源 | |
Region | 国家/地区 | |
Frequency | 日期频率 | 1 日 2 周 3 旬 4 半月 5 月 6 季 7 半年 8 年 9 不定期 |
Startdate | 起始日期 | |
Enddate | 截止日期 | |
Updatetime | 更新时间 |
xxxxxxxxxx
EQData cfnquery(String options)
获取资讯函数和资讯订阅函数支持的板块信息
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
范例(Java)
xxxxxxxxxx
EQData cfnquery = userAPI.cfnquery("");
if (cfnquery.getErrCode() != 0) {
LOG.info("request cfnquery Error, "+ cfnquery.getErrString());
} else {
//获得数据对象
LOG.info(cfnquery.toString());
}
xxxxxxxxxx
int cnqcancel(int serialID)
取消特定或所有的资讯订阅
输入
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
serialID | 流水号 | int | 传入特定流水号,取消对应的资讯订阅; 传入0,取消所有的资讯订阅 |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int cnqcancel = userAPI.cnqcancel(0);
LOG.info("cnqcancel result:" + ErrorType.getErrorString(cnqcancel));
xxxxxxxxxx
EQData sector(String pukeyCode, String tradeDate, String options)
获取Choice金融终端指定系统板块证券代码成分列表,目前只支持沪深股票、上交所期权的历史成分查询,其他板块只能获取最新成分
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
pukeycode | 板块代码 | String | 通过 Choice 量化接口网站命令生成-功能函数-板块成分中获取 |
enddate | 截止日期 | String | 支持格式: YYYYMMDD,YYYY/MM/DD,YYYY/M/D, YYYY-MM-DD,YYYY-M-D |
options | 可选参数 | String | 附加参数,可填NULL,可填附加字段,见附注13 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//错误信息 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
范例
xxxxxxxxxx
EQData eqData = userAPI.sector(pukeycode, endDate, options);
if (eqData.getErrCode() != 0) {
LOG.info("request Sector Error, " + eqData..getErrString());
} else {
LOG.info(eqData.toString());
}
附注13 板块函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
自选股板块查询 | selfblock | 1 | 1-自选股板块,获取本账号最新的全部自选股板块代码和名称,例sector(“”,””,”selfblock=1”),板块代码和日期传空。 |
dataframe展示效果 | ToDataFrame | 1 | 格式化输出,仅做展示方便查看数据情况,对象返回为空。若加工返回数据请将该参数置空。 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
xxxxxxxxxx
EQData tradedates(String startDate, String endDate, String options)
获取指定交易市场,指定时间区间的日期序列
输入
参数名 | 简称 | 定义 | 描述 | |
---|---|---|---|---|
startdate | 起始日期 | String | 支持格式: YYYYMMDD, YYYY/MM/DD YYYY/M/D ,YYYY-MM-DD ,YYYY-M-D | |
enddate | 截止日期 | String | 支持格式: YYYYMMDD, YYYY/MM/DD ,YYYY/M/D,YYYY-MM-DD,YYYY-M-D | 不建议使用未来交易日 |
options | 可选参数 | String | In | 附加参数,可填NULL,可填附加字段,见附注14 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//返回类型名称 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
范例
xxxxxxxxxx
EQData tradedates = userAPI.tradedates("2016-3-14", "2016-6-1", "Period=1,Order=1,Market=CNSESH");
if (tradedates.getErrCode() != 0) {
LOG.info("request tradedates Error, " + tradedates.getErrString());
} else {
LOG.info(tradedates.toString());
}
附注14 交易日函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
日期周期 | Period | 1--5,缺省值:1 | 日期周期:日,周,月,年,季 分别对应:1,2,3,4,5 |
按日期排序 | Order | 1--2,缺省值:1 | 升序--1; 降序--2 |
市场类型 | Market | 见说明,缺省值:“CNSESH” | CNSESH 上海证券交易所 CNSESZ 深圳证券交易所 HKSE00 香港证券交易所 USSE00 美国证券交易所 USSEND 美国纳斯达克市场 USSENY 纽约证券交易所 CNFEBC 渤海商品交易所 CNFEDC 大连商品交易所 CNFESF 上海期货交易所 CNFEZC 郑州商品交易所 INE000 上海国际能源交易中心 CNGCSH 上海黄金交易所 HKME00 香港商品交易所 CNSH00 沪股通交易日 CNSHHK 沪港股通交易日 CNSZ00 深股通交易日 CNSZHK 深港股通交易日 NYMEX0 纽约商业期货交易所 USFENY 纽约商品交易所 CME000 芝加哥商业交易所 LDMETL 伦敦金属交易所 LDEXCH 伦敦证券交易所 SGSE00 新加坡交易所 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
xxxxxxxxxx
EQData getdate(String tradeDate, int offDay, String options)
获取指定市场交易日历推算第N天交易日
输入
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
tradedate | 交易日期 | String | 支持格式: YYYYMMDD,YYYY/MM/DD,YYYY/M/D,YYYY-MM-DD ,YYYY-M-D |
offday | 偏移天数 | int | N=0时,返回交易日当天; N>0时,交易日往后取最近第N个交易日的日期,若交易日期为最新交易日并N>0,则返回最新交易日; N<0,时,交易日往前取最近第N个交易日的日期。 |
options | 可选参数 | String | 附加参数,可填附加字段,见附注15 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//返回类型名称 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
范例
xxxxxxxxxx
EQData getdate = userAPI.getdate("20160426", 1, "");
if (getdate.getErrCode() != 0) {
LOG.info("request getdate Error, " + getdate.getErrString());
} else {
LOG.info(getdate.toString());
}
附注15 偏移N天函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
市场类型 | Market | 见说明,缺省值:“CNSESH” | CNSESH 上海证券交易所 CNSESZ 深圳证券交易所 HKSE00 香港证券交易所 USSE00 美国证券交易所 USSEND 美国纳斯达克市场 USSENY 纽约证券交易所 CNFEBC 渤海商品交易所 CNFEDC 大连商品交易所 CNFESF 上海期货交易所 CNFEZC 郑州商品交易所 INE000 上海国际能源交易中心 CNGCSH 上海黄金交易所 HKME00 香港商品交易所 CNSH00 沪股通交易日 CNSHHK 沪港股通交易日 CNSZ00 深股通交易日 CNSZHK 深港股通交易日 NYMEX0 纽约商业期货交易所 USFENY 纽约商品交易所 CME000 芝加哥商业交易所 LDMETL 伦敦金属交易所 LDEXCH 伦敦证券交易所 SGSE00 新加坡交易所 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
xxxxxxxxxx
ReturnSignal tradedatesnum(String startDate, String endDate, String options)
获取指定交易市场,指定时间区间的交易日个数
输入
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
startdate | 起始日期 | String | 支持格式: YYYYMMDD, YYYY/MM/DD YYYY/M/D ,YYYY-MM-DD ,YYYY-M-D |
enddate | 截止日期 | String | 支持格式: YYYYMMDD, YYYY/MM/DD YYYY/M/D ,YYYY-MM-DD ,YYYY-M-D |
options | 可选参数 | String | 附加参数,可填附加字段,见附注15 |
返回
类型 | 描述 |
---|---|
ReturnSignal对象 | class ReturnSignal { private int dataOreqid; //返回值或者流水号 private int errId; //错误码 private String errString;//error string;//错误信息 } |
范例
xxxxxxxxxx
ReturnSignal tradedatesnum = userAPI.tradedatesnum("2016-3-14", "2016-6-1", "");
if (tradedatesnum.getErrId() != 0) {
LOG.info("request tradedatesnum Error, " + tradedatesnum.getErrString());
}else{
LOG.info(tradedatesnum.toString());
}
xxxxxxxxxx
void setserverlistdir(string dir);
设置ServerList.json.e文件存放目录,需要在调用登录函数之前明确进行指定。
参数
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
dir | 文件目录 | string | ServerList.json.e文件存放目录 |
范例
xxxxxxxxxx
setserverlistdir("D:/EmQuantAPI_Java/EmQuantAPITest/EmQuantAPITest/login/");
xxxxxxxxxx
int setproxy(int type, String proxyip, int port, boolean verify, String user, String pwd)
设置代理
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
type | 代理类型 | int | 0:不使用代理 1:HTTP代理 2:HTTPS代理 3:SOCK4代理 4:SOCK5代理 |
proxyip | 代理服务器地址 | String | 代理服务器IP |
port | 代理服务器端口 | int | 代理服务器Port |
verify | 是否验证账户名和密码 | boolean | True:验证代理服务器账户名和密码 False:不验证 |
usr | 账户名 | String | 代理服务器账户名 |
pwd | 密码 | String | 代理服务器密码 |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int result = userAPI.setproxy(0, "120.0.0.0", 8080, true, "choice", "password");
if(result!=0)
LOG.info(ErrorType.getErrorString(result));
xxxxxxxxxx
int manualactivate(String userName, String password, String options)
人工激活登录。本函数可独立使用,无需调用start。本函数适用于无界面运行环境(如远程linux)或无法运行LoginActivator程序的情况,激活成功后将通过邮件获得的激活文件"userInfo"放到"ServerList.json.e"同级目录,再调用start登录
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
uname | 用户名 | String | 输入用户名 |
password | 密码 | String | 输入密码 |
options | 附加参数 | String | 邮箱地址必传,格式"email=xx@xx.com" |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int result = userAPI.manualactivate("usr", "pwd", "email=xxx@xx.com");
if(result!=0)
LOG.info(ErrorType.getErrorString(result));
xxxxxxxxxx
EQCtrData cfc(String codes, String indicators, String options)
支持校验css/csd/cses函数的代码+指标模式
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
codes | 证券代码 | String | 东财代码或组合代码或板块代码,支持多代码输入,以半角逗号分隔 |
indicators | 字段简称 | String | 指标字段简称,支持多字段输入,以半角逗号分隔 |
options | 参数 | String | 参数明细,见附注16 |
返回
类型 | 描述 |
---|---|
EQCtrData对象 | class EQCtrData{ private int errCode; private String errString;//错误信息 private int row; private int column; private String[] indicatorArray; private Object[][][] valueArray;//基于上面参数的二维数组 } |
范例
xxxxxxxxxx
EQCtrData cfc =
userAPI.cfc("000001.SZ,000001.SH,600000.SH,000000.TEST","CODE,NAME,TEST","FunType=css");
if(cfc.getErrCode()!=0){
LOG.info("request cfc Error, " + cfc.getErrString());
}else{
LOG.info(cfc.toString());
}
附注16 指标校验函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
函数种类 | funtype | css、csd、cses | css-截面函数 csd-序列函数 cses-板块截面函数 注:单个传入,不支持多个拼接 |
xxxxxxxxxx
EQCtrData cec(String codes,String options)
支持判断东财代码是否有效,同时提供补齐后缀的功能
输入
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
codes | 证券代码 | String | 东财代码,支持多代码输入,以半角逗号分隔 |
options | 参数 | String | 见附注17 |
返回
类型 | 描述 |
---|---|
EQCtrData对象 | class EQCtrData{ private int errCode; private String errString;//错误信息 private int row; private int column; private String[] indicatorArray; private Object[][][] valueArray;//基于上面参数的二维数组 } |
范例
xxxxxxxxxx
EQCtrData cec = userAPI.cec("000001.SZ,000001.SH,600000.SH,000000.TEST","ReturnType=0");
if(cec.getErrCode()!=0){
LOG.info("request cec Error, " + cec.getErrString());
}else{
LOG.info(cec.toString());
}
附注17 代码校验函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
数据返回类型 | Returntype | 0,1 | 0-检测模式,结果查看T/F字段; 1-补全模式,结果查看FULLCODES字段,有可能为空或者None,也有可能有多种后缀 |
证券品种 | SecuType | 1-8 | 适配Returntype=1使用,默认值为1, 1-股票, 2-债券, 3-基金理财, 4-利率, 5-指数, 6-期货现货, 7-期权,8-外汇 |
证券市场 | SecuMarket | 0-5 | 适配Returntype=1使用,默认值为1, 当SecuType=1时,0-全部,1-沪深,2-三板,3-港股,4-美股,5-伦股; 当SecuType=2时,0-全部,1-交易所,2-银行间,3-其他; 当SecuType=3时,0-全部,1-交易所,2-场外,3-理财; 当SecuType=4时,0-全部,1-交易所,2-银行间,3-其他; 当SecuType=5时,0-全部,1-东财优先,2-申万优先; 当SecuType=6时,0-全部; 当SecuType=7时,0-全部; 当SecuType=8时,0-全部,1-人民币中间价,2-银行间,3-国际外汇 |
在日期参数中可直接使用字母替代或者加减法运算获取对应的日期,分为相对日期和绝对日期。
相对日期
可用于日期相对计算。
相对日期 | 参数英文 | 描述 |
---|---|---|
交易日 | TD | 搭配market参数 可按照指定市场交易日历返回,默认CNSESH上交所,市场列表参考附注14 交易日历函数参数列表 |
日历日 | D | |
日历周 | W | |
日历月 | M | |
日历季 | Q | |
日历半年 | HY | |
日历年 | Y | |
开始日期 | SD | 引用标识,如 当StartDate="20221020"时,则可设置EndDate="SD+5D" 代表取2022年10月20日到这之后的5天的日期区间 |
截止日期 | ED | 引用标识,如 当EndDate="20221020"时,则可设置StartDate="ED-5D" 代表取截止日期的前五天到截止日的日期区间 |
绝对日期
特殊,可返回指定字母对应的具体日期。
绝对日期 | 参数英文 | 描述 |
---|---|---|
上市首日 | S | 仅支持css/csd |
最新 | N | |
最新报告期 | MRQ | 仅支持css |
去年一季 | LQ1 | |
去年中报 | LQ2 | |
去年三季 | LQ3 | |
去年年报 | LQ4 | |
今年一季 | RQ1 | |
今年中报 | RQ2 | |
今年三季 | RQ3 | |
今年年报 | RQ4 | |
本年初 | RYF | |
本周一 | RWF | |
本月初 | RMF | |
上周末 | LWE | |
上月末 | LME | |
上半年末 | LHYE | |
下半年初 | RHYF | |
上年末 | LYE | |
本季初 | RQF | |
本季末 | RQE | |
上季末 | LQE |
说明
举例:
xxxxxxxxxx
EQErr EmDataStatistics(string FuncName, string Indicators, string Option, out IntPtr pEqData);
查询函数使用量情况
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
FuncName | 函数名称 | string | 输入 | 量化接口函数名称,仅支持单个函数查询,传空值返回全部函数,具体可查询函数见附注18,例如:EM_CSS。 |
Indicators | 查询字段 | string | 输入 | 查询字段,支持传多个字段,使用逗号分隔,传空值则返回全部字段,具体参数见附注19,例如:FUNCENAME。 |
Option | 参数 | string | 输入 | 日期参数,见附注20。 |
pEqData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
IntPtr pEqData = IntPtr.Zero
string strFuncName = "";
string strIndicators = "FUNCENAME,FUNCNAME,SECUTYPE,PERIOD,STARTDATE,ENDDATE,THRESHOLD,USEDDATA,USEDRATIO,AVAILABEDATA";
string strOption = "StartDate=2024-06-01,EndDate=2024-08-02";
EQErr error = EmDataStatistics(strFuncName, strIndicators, strOption, out pData);
if (error == EQERR_SECUSS){
//… 读取结果
releasedata(pData);
}
附注18 函数列表:
函数名称 | 参数值 |
---|---|
截面函数 | EM_CSS |
序列函数 | EM_CSD |
专题报表函数 | EM_CTR |
宏观数据函数 | EM_EDB |
资讯函数 | EM_CFN |
资讯订阅函数 | EM_CNQ |
板块截面函数 | EM_CSES |
条件选股函数 | EM_CPS |
自选股查询接口 | EM_SECTOR |
宏观查询函数 | EM_EDBQUERY |
新建组合函数 | pcreate |
组合资金调配函数 | pctransfer |
组合下单函数 | porder |
组合报表函数 | preport |
组合查询函数 | pquery |
删除组合函数 | pdelete |
函数校验接口 | EM_CFC |
代码校验接口 | EM_CEC |
附注19 查询字段参数列表:
查询字段名称 | 参数值 |
---|---|
函数简称 | FUNCENAME |
函数名称 | FUNCNAME |
证券品种 | SECUTYPE |
流量计算周期 | PERIOD |
起始日期 | STARTDATE |
截止日期 | ENDDATE |
流量阈值 | THRESHOLD |
使用量 | USEDDATA |
使用量占比 | USEDRATIO |
剩余流量 | AVAILABEDATA |
附注20 日期参数:
参数名称 | 参数值 |
---|---|
起始日期 | StartDate,传具体日期,日期格式:YYYY-MM-DD |
截止日期 | EndDate,传具体日期,日期格式:YYYY-MM-DD |
xxxxxxxxxx
int pcreate(String combinCode, String combinName, long initialFound, String remark, String options)
新建组合
输入
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
combinCode | 组合代码 | String | 组合代码,英文和数字,最大10位,单个账户最多支持30个 |
combinName | 组合名称 | String | 组合名称 |
initialFound | 初始资金 | long | 初始资金,上限99999999999 |
remark | 组合说明 | String | 组合说明 |
options | 附加参数 | String | 附加参数,可填空字串,可填附加字段,见附注21 |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int pcreate = userAPI.pcreate("quant001.PF", "组合牛股", 1000000, "这是一个牛股的组合", "");
if(pcreate!=0)
LOG.info(ErrorType.getErrorString(pcreate));
附注21 新建组合函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
组合类型 | combintype | 1-4 默认值 1 | 1 成长型 2 指数型 3 平衡型 4 稳健型 |
创建公司 | createcompany | 字符串 | 默认留空 |
业绩基准 | criteria | 1-16 默认3 | 1 上证指数 2 深证成指 3 沪深300指数 4 上证A股指数 5 上证180指数 6 上证50指数 7 深证100指数 8 中小板指 9 中小板综 10 创业板指 11 深证综指 12 三板做市指数 13 基金指数 14 中证500指数 15 中证100指数 16 中证1000指数 |
xxxxxxxxxx
int pctransfer(String combinCode, String transferdirect, String date, double opCash, String remark, String options)
提供组合出入金调配
参数
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
combinCode | 组合代码 | String | 组合代码,英文和数字,最大10位,单个账户最多支持30个 |
transferdirect | 资金调配方向 | String | in:增加资金 out:减少资金 |
date | 调配日期 | String | 交易日期格式:YYYYMMDD,YYYY/MM/DD,YYYY/M/D,YYYY-MM-DD,YYYY-M-D |
opCash | 调配资金量 | double | 增加或减少的资金量,上限100000000000 |
remark | 说明 | String | 说明 |
options | 附加参数 | String | 附加参数,可填空字串,可填附加字段,见附注22 |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int pctransfer = userAPI.pctransfer("quant001.PF", "IN", "2019-08-09", 100000, "追加资金", "TRANSFERTYPE=1");
if(pctransfer!=0)
LOG.info(ErrorType.getErrorString(pctransfer));
附注22 组合资金调配函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
调配方式 | transfertype | 1-2 | 1、单个组合增加或减少 2、组合间调配 |
组合2 ID | combincode2 | 字符串 | 若transfertype为2 则必传 |
调配时间 | time | 24小时 | 格式:HHMMSS,仅在当天有效 |
xxxxxxxxxx
EQData pquery(String options)
提供组合账户信息相关数据
输入
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
options | 附加参数 | string | 附加参数,详见附注23 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//返回类型名称 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组,见附注24 } |
范例
xxxxxxxxxx
EQData query = userAPI.pquery("");
if (query.getErrCode() != 0) {
LOG.info("request query Error, " + query.getErrString());
} else {
LOG.info(query.toString());
}
附注23 组合查询函数附加参数明细
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
组合类型 | combinetype | 0-我管理的组合 1-我关注的组合 | 默认值:0 |
附注24 返回数据具体参数明细
参数名 | 简称 | 备注 |
---|---|---|
COMBINCODE | 组合代码 | |
GROUPNAME | 组合名称 | |
STARTCAST | 初始资金 | |
RESTFOUND | 剩余资金 | |
CREATEDATE | 创建日期 | |
MODIFYDATE | 最近调整日期 | |
GROUPTYPE | 组合类型 | 1:成长型 2:指数型 3:平衡型 4:稳健型 |
MONEYTYPE | 基准货币 | 1:人民币 2:美元 3:港币 |
criteria | 组合业绩基准 | 1 上证指数 2 深证成指 3 沪深300指数 4 上证A股指数 5 上证180指数 6 上证50指数 7 深证100指数 8 中小板指 9 中小板综 10 创业板指 11 深证综指 12 三板做市指数 13 基金指数 14 中证500指数 15 中证100指数 16 中证1000指数 |
CREATECOMPANY | 创建公司 | |
REMARK | 组合说明 | |
LEVEL | 组合等级 | 1:普通组合 2:POP组合 |
FOLLOWEDID | 关注组合ID | 仅在请求关注组合数据时,返回对应ID |
xxxxxxxxxx
int porder(String pOrderInfo, String combinCode, String remark, String options)
组合批量下单
输入
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
pOrderInfo | String | json字符串 | 下单信息见附注25 |
combincode | String | 字符串 | 组合代码 |
remark | String | 字符串 | 备注信息 |
options | String | 字符串 | 附加参数,见附注26 |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int porder = userAPI.porder("[{\"code\":\"002024.SZ\",\"volume\":100.0,\"price\":2,\"date\":20170725,\"time\":131815,\"optype\":0,\"cost\":0.0,\"rate\":0.0,\"reserve\":0}]", "quant001.PF", "我是下单测试", "");
if(porder!=0)
LOG.info(ErrorType.getErrorString(porder));
附注25 json字符串参数定义列表
序号 | 参数名 | 简称 | 定义 | 是否必填参数 | 说明 |
---|---|---|---|---|---|
1 | code | 代码 | 字符串 | 是 | 东财代码,格式为'300059.SZ' |
2 | volume / destvolume / weight | 数量或金额/ 目标数量/ 目标权重 | 数字 | 是 | 股票、场内基金数量(正负表示买入、卖出), 场外基金申购定投金额、赎回份额 option参数: OrderMode=0时表示交易数量或金额 OrderMode=1时表示持仓目标数量 OrderMode=2时表示持仓目标权重 |
3 | price | 价格 | 数字 | 是 | 交易价格 |
4 | date | 日期 | 字符串 | 是 | 交易日期格式为"YYYYMMDD,YYYY/MM/DD,YYYY-MM-DD" |
5 | time | 时间 | 字符串 | 否 | 交易时间,格式为“hhmmss,hh:mm:ss” (只影响当日交易,历史交易后台默认150000录入计算) |
6 | optype | 操作 | 数字 | 否 | 1买入,2卖出,3申购,4赎回 股票交易对应1、2, 场外基金交易对应3、4 |
7 | cost | 费用 | 数字 | 否 | 场外基金申购、赎回费用/费率,二选一填写,另一个位置填写0。 费用为0,则读取费率; 费率为0,则读取费用; 两者都为0,表示0费用、费率; 两者都不为0,默认读取第一个费用。 单位:费用 元;费率 % 适用于对场外基金、股票品种 |
8 | rate | 费率 | 数字 | 否 | 仅适用于对场外基金品种 |
附注26 组合交易附加参数options列表
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
补入现金方式 | autoAddCash | 0--2,缺省值:0 | 0:不补充 1:先扣除可用现金,不足再补充 2:全部外部补充本次批量买入操作所需现金 |
下单模式 | OrderMode | 0--2,缺省值:0 | 0:按数量交易 volume传入交易数量 1:调仓至目标数量,destvolume传目标数量 2:调仓至目标权重,weight传目标权重,总权重相加不能超过1 备注:1 和 2 不支持逆回购 |
xxxxxxxxxx
EQData preport(String combinCode, String indicator, String options)
查询组合报表信息
输入
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
combinCode | 组合代码 | String | 组合代码,支持单次查询单个组合的单个报表 |
indicator | 报表名称 | String | 报表名称,hold(持仓查询), record(交易记录查询),Contri(业绩贡献-已清仓股票),stagePerf(周期回报-阶段回报),profAna(盈亏分析-区间分析),RiskAna(风险分析),VarAna(VAR分析),GDaily(组合日报),TDaily(交易日报),ctransferrecord(组合资金调配报表) |
options | 附加参数 | String | 附加参数,可填空字符串,可填附加字段,见指标手册 |
返回
类型 | 描述 |
---|---|
EQData对象 | class EQData{ private int errCode = -1; //返回类型,参见错误类型 private String errString;//返回类型名称 private String[] codeArray;//证券代码数组 private String[] indicatorArray;//指标字段数组 private String[] dateArray;//交易日期数组 private Object[][][][][][][][][] valueArray;//基于上面参数的三维数组 } |
范例
xxxxxxxxxx
EQData preport = userAPI.preport( "quant001.PF","record","startdate=2017/07/12,enddate=2018/01/15");
if (preport.getErrCode() != 0) {
LOG.info("request preport Error, " + preport.getErrString());
} else {
LOG.info(preport.toString());
}
xxxxxxxxxx
int pdelete(String combinCode, String options)
删除组合
输入
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
combinCode | 组合代码 | String | 组合代码 |
options | 附加参数 | String | 附加参数,可不填 |
返回
类型 | 描述 |
---|---|
int | 返回值为0,表示成功 返回值非0,表示错误,参见错误类型 |
范例
xxxxxxxxxx
int pdelete = userAPI.pdelete("quant001.PF", "");
if(pdelete!=0)
LOG.info(ErrorType.getErrorString(pdelete));
错误标识 | 错误描述 | 错误代码 |
---|---|---|
EQERR_SECUSS | 成功 | 0 |
EQERR_NO_LOGIN | 用户未登陆 | 10001001 |
EQERR_USERNAMEORPASSWORD_ERR | 用户名或密码错误 | 10001002 |
EQERR_NO_ACCESS | 用户无API权限 | 10001003 |
EQERR_ACCESS_EXPIRE | 用户API权限过期 | 10001004 |
EQERR_GETUSERINFO_FAIL | 获取用户信息失败 | 10001005 |
EQERR_DLLVESION_EXPIRE | DLL版本号过期 | 10001006 |
EQERR_NO_LV2_ACCESS | 用户无API_LV2权限 | 10001007 |
EQERR_LV2_ACCESS_EXPIRE | 用户API_LV2权限过期 | 10001008 |
EQERR_LOGIN_COUNT_LIMIT | 账号登陆数达到上限 | 10001009 |
EQERR_LOGIN_FAIL | 用户登陆失败 | 10001010 |
EQERR_LOGIN_DISCONNECT | 用户登陆掉线 | 10001011 |
EQERR_ACCESS_INSUFFICIENCE | 用户权限不足 | 10001012 |
EQERR_IS_LOGIN | 用户正在登录 | 10001013 |
EQERR_NEED_ACTIVATE | 需要登录激活 | 10001014 |
EQERR_LOGIN_SERVICE_ERR | 登录服务异常 | 10001015 |
EQERR_IS_MANUAL_ACTIVATE | 正在人工激活 | 10001016 |
EQERR_NOTNEED_MANUAL_ACTIVATE | 无需人工激活 | 10001017 |
EQERR_MANUAL_ACTIVATE_FAIL | 人工激活失败 | 10001018 |
EQERR_DIFFRENT_DEVICE | 激活设备与登录设备不一致 | 10001019 |
EQERR_USERINFO_EXPIRED | userInfo已失效需重新激活 | 10001020 |
EQERR_INFOQUERY_LOGIN_FAIL | 资讯查询服务登录验证失败 | 10001023 |
EQERR_INFOSUB_LOGIN_FAIL | 资讯订阅服务登录验证失败 | 10001024 |
EQERR_INFO_FLOW_FAIL | 资讯服务流量验证失败 | 10001025 |
EQERR_SMS_INVALIED | 无效的上行短信 | 10001026 |
EQERR_CHQQUOTE_LOGIN_FAIL | 专项服务登录验证失败 | 10001027 |
EQERR_CHQQUOTE_ACCESS_FAIL | 专项服务权限验证失败 | 10001028 |
EQERR_GET_TRADE_FAIL | 获取交易日失败 | 10000001 |
EQERR_INIT_OBTAIN_CLASS_FAIL | 初始化主类失败 | 10000002 |
EQERR_NEW_MEM_FAIL | 申请内存失败 | 10000003 |
EQERR_PARSE_DATA_ERR | 解析数据错误 | 10000004 |
EQERR_UNGZIP_DATA_FAIL | gzip解压失败 | 10000005 |
EQERR_UNKNOWN_ERR | 未知错误 | 10000006 |
EQERR_FUNCTION_INTERNAL_ERR | 函数内部错误 | 10000007 |
EQERR_OUTOF_BOUNDS | 数组越界 | 10000008 |
EQERR_NO_DATA | 无数据 | 10000009 |
EQERR_SYSTEM_ERROR | 系统级别错误 | 10000010 |
EQERR_SERVERLIST_ERROR | 服务器列表错误 | 10000011 |
EQERR_OPERATION_FAILURE | 操作失败 | 10000012 |
EQERR_SERVICE_ERROR | 服务错误 | 10000013 |
EQERR_GETSERVERLIST_FAIL | 获取服务器列表失败 | 10000014 |
EQERR_SERVICE_TIMEOUT | 服务超时 | 10000015 |
EQERR_FREQUENCY_OVER | 请求频次过高 | 10000016 |
EQERR_OVERSEAS_IP_RESTRICTED | 海外IP受限 | 10000017 |
EQERR_POP_GROUP_NOT_SUPPORT | POP组合不支持此操作 | 10000018 |
EQERR_SOCKET_ERR | 网络错误 | 10002001 |
EQERR_CONNECT_FAIL | 网络连接失败 | 10002002 |
EQERR_CONNECT_TIMEOUT | 网络连接超时 | 10002003 |
EQERR_RECVCONNECTION_CLOSED | 网络接收时连接断开 | 10002004 |
EQERR_SENDSOCK_FAIL | 网络发送失败 | 10002005 |
EQERR_SENDSOCK_TIMEOUT | 网络发送超时 | 10002006 |
EQERR_RECVSOCK_FAIL | 网络接收错误 | 10002007 |
EQERR_RECVSOCK_TIMEOUT | 网络接收超时 | 10002008 |
EQERR_HTTP_FAIL | http访问失败 | 10002010 |
EQERR_WAIT_NET_RES_TIMEOUT | 等待网络响应超时 | 10002011 |
EQERR_INFO_RECONNECT | 资讯服务器重连 | 10002013 |
EQERR_INFO_RECONNECT_FAIL | 资讯服务器连续重连失败 | 10002014 |
EQERR_CHQQUOTE_RECONNECT | 专项服务器重连 | 10002015 |
EQERR_CHQQUOTE_RECONNECT_FAIL | 专项服务器连续重连失败 | 10002016 |
EQERR_INPARAM_EMPTY | 传入参数为空 | 10003001 |
EQERR_OUTPARAM_EMPTY | 传出参数为空 | 10003002 |
EQERR_PARAM_ERR | 参数错误 | 10003003 |
EQERR_START_DATE_ERR | 起始日期格式不正确 | 10003004 |
EQERR_END_DATE_ERR | 截止日期格式不正确 | 10003005 |
EQERR_START_BIGTHAN_END | 起始日期大于截至日期 | 10003006 |
EQERR_DATE_ERR | 日期格式不正确 | 10003007 |
EQERR_CODE_INVALIED | 无效的证券代码 | 10003008 |
EQERR_CODE_REPEAT | 证券代码重复 | 10003009 |
EQERR_INDICATOR_INVALIED | 无效的指标 | 10003010 |
EQERR_USERNAME_EMPTY | 用户名为空 | 10003011 |
EQERR_PASSWORD_EMPTY | 密码为空 | 10003012 |
EQERR_TO_UPPER_LIMIT | 订阅数或股票总数达到上限 | 10003013 |
EQERR_MIXED_INDICATOR | 不支持的混合指标 | 10003014 |
EQERR_INDICATOR_TO_UPPER_LIMIT | 单次订阅指标达到上限 | 10003015 |
EQERR_BEYOND_DATE_SUPPORT | 超出日期支持范围 | 10003016 |
EQERR_BASE_LESS_THAN_END | 复权基期小于截止日期 | 10003017 |
EQERR_MIXED_CODES_MARKET | 不支持的混合证券品种 | 10003018 |
EQERR_NO_SUPPORT_CODES_MARKET | 不支持的证券代码品种 | 10003019 |
EQERR_ORDER_TO_UPPER_LIMIT | 交易条数超过上限 | 10003020 |
EQERR_NO_SUPPORT_ORDERINFO | 不支持的交易信息 | 10003021 |
EQERR_INDICATOR_REPEAT | 指标重复 | 10003022 |
EQERR_INFOBKCODE_INVALIED | 资讯板块代码错误 | 10003023 |
EQERR_INFOSIZE_TOOLARGE | 资讯数据量过大 | 10003024 |
EQERR_INFO_SEARCH_NODATA | 资讯查询不到数据 | 10003025 |
EQERR_INFOBKCODE_REPEAT | 资讯板块代码重复 | 10003026 |
Mac下无法使用打开激活工具?
有图形界面的Linux点击激活工具无反应?
错误提示:获取图片验证码失败,稍后再试?
错误提示:发送激活码失败?
无图形界面怎么激活?
如何使人工激活函数进行激活?
xxxxxxxxxx
//EQLOGININFO logInfo;
//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-18 16:22:54]:manual activate begin. [Em_Info][2019-06-18 16:22:54]:manual activate success, please contact with your service manager to get token file.
即可联系客户经理完成人工激活的剩余步骤。
Linux或者mac报错Errno13 Permission denied
报错丢失MSVCP100.dll或者WinError126或者WinError 193
如何使用上行短信登录
注意: 1)发送短信会有通讯费用产生
2)不需要userInfo文件 登录成功后会生成一个userInfo文件
3)发送短信之后没有回执
4)短信失效时间10分钟
报错login count up to limit
报错EQERR_USERINFO_EXPIRED
报错EQERR_DIFFRENT_DEVICE
报错userInfo不存在或不可用
报错The number of WaitHandles must be less than or equal to 64
报错em_csd无权限?
市场类型没有想要的市场怎么办?
各个函数中的ReportDate要传什么?