升级公告
版本号 | 版本变动信息 | 发布时间 |
---|---|---|
2.5.6.0 | V2.5.4.7-> V2.5.6.0 | 2024-8-23 |
目录
接口配置接口配置EMQuantAPI C#接口配置的系统环境要求与方法EMQuantAPI C# .NET Core接口配置的系统环境要求与方法登录函数退出函数数据函数截面函数序列函数专题报表宏观数据资讯函数资讯订阅板块截面函数功能函数条件选股宏观指标查询资讯板块查询取消资讯订阅板块函数交易日历交易日偏移区间交易日数内存释放函数设置回调函数获取错误码信息设置路径函数设置代理函数人工激活函数指标校验函数代码校验函数日期宏流量查询函数组合函数新建组合组合资金调配组合查询批量下单组合报表查询删除组合错误类型错误类型常见问题激活注册登录函数序列函数截面函数
文件存放位置
在量化接口官网(http://quantapi.eastmoney.com/)下载压缩包EMQuantAPI_CSharp.zip,下载完成后解压。其中:
系统环境要求
• 下载地址:http://choiceclub.eastmoney.com/#/articleDetail/8769;
配置方法
添加引用—浏览—定位到API接口目录,根据自己的需求选中32位的EmQuantApiCSharp.dll或者 64位的EmQuantApiCSharp_x64.dll,点击“确定”;
属性—生成,如果要生成32位应用,平台选择x86,目标平台选择x86(如图1),点击“保存”;
如果要生成64位应用,平台选择Any CPU,目标平台选择x64(如图2),点击“保存”。
登录Choice量化接口网站主页(http://quantapi.eastmoney.com),点击右上角账户名-个人资料绑定手机号。或者登录Choice金融终端,进入用户中心-资料管理绑定手机号。
登录激活(四种方式)
运行接口激活工具LoginActivator.exe,输入绑定手机号获取验证码,激活成功后生成令牌文件userInfo,用户使用时无需输入用户名和密码,默认从令牌中获取登录权限。一个账号最多支持在十台设备上激活。
方式三:上行短信登录验证(适用于无、有图形界面)
1)手机号绑定API接口账号
2)主动发送短信内容 "SXDL" 到 9535711 (三网合一,不区分运营商)
3)完成上行短信发送后,调用登录函数start("LoginMode=SXDL,PhoneNumber=xxxxxxxx"),xxxxxx替换为发送短信的手机号
4)最后登录成功,并且生成userinfo登录令牌
5)userinfo生成之后,下次登录无需重复进行短信验证登录
方式四:人工激活(适用于无、有图形界面)
1)使用manualactivate函数,以安装包提供的EmQuantApiCSharpSample为例,在ManualActivate函数中输入用户名、密码、有效邮箱地址;
2)运行示例,返回日志提示manual activate success, please contact with your service manager to get token file.;
3)联系客户经理或者客服验证并从邮箱中获取登录令牌userInfo。
Windows 系统,支持32位和64位系统;
运行前需安装对应的Microsoft.NET Core SDK(可在电脑“程序和功能”中查看是否安装)
• 下载链接:https://dotnet.microsoft.com/zh-cn/download 下载对应的32位或者64位版本
C#常用开发工具,建议使用Visual Studio 2017版本及以上,支持32位和64位;
EMQuantAPI C# .NET Core接口最新版。
配置方法
添加引用—浏览—定位到API接口目录,根据自己的需求选中32位的EmQuantApiCSharp.dll或者 64位的EmQuantApiCSharp_x64.dll,点击“确定”;
属性—生成,如果要生成32位应用,平台选择Any CPU,目标平台选择x86(如图1),点击“保存”;
如果要生成64位应用,平台选择Any CPU,目标平台选择x64(如图2),点击“保存”。
若要在Windows平台上生成EXE文件,需要点击配置发布(如图3),点击"发布";
支持gb2312编码
.NET Core框架默认编码UTF-8,不支持gbk2312,为了在编码中支持gb2312,需要注册编码。在项目中添加system.text.encoding.codepages包,在程序开始处注册编码,可参考示例程序:Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
登录激活(四种方式)
运行接口激活工具LoginActivator.exe,输入绑定手机号获取验证码,激活成功后生成令牌文件userInfo,用户使用时无需输入用户名和密码,默认从令牌中获取登录权限。一个账号最多支持在十台设备上激活。
方式三:上行短信登录验证(适用于无、有图形界面)
1)手机号绑定API接口账号
2)主动发送短信内容 "SXDL" 到 9535711 (三网合一,不区分运营商)
3)完成上行短信发送后,调用登录函数start("LoginMode=SXDL,PhoneNumber=xxxxxxxx"),xxxxxx替换为发送短信的手机号
4)最后登录成功,并且生成userinfo登录令牌
5)userinfo生成之后,下次登录无需重复进行短信验证登录
方式四:人工激活(适用于无、有图形界面)
1)使用manualactivate函数,以安装包提供的EmQuantApiCSharpSample为例,在ManualActivate函数中输入用户名、密码、有效邮箱地址;
2)运行示例,返回日志提示manual activate success, please contact with your service manager to get token file.;
3)联系客户经理或者客服验证并从邮箱中获取登录令牌userInfo。
EQErr start (string options, ILogCallback callback);
登录API账户,成功登录以后,才可调用其他函数获取数据
参数
参数名 | 参数简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
options | 可选参数 | string | 输入 | 附加参数,可填NULL,可填附加字段。见附注1 |
callback | 回调函数 | ILogCallback | 输出 | 日志回调函数,不可传NULL |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息。
范例
xvoid CallbackStart (string strLog) {
Console.WriteLine(strLog);
}
static Structs. ILogCallback callbackStart=CallbackStart;
EQErr error = start ("TestLatency=0", callbackStart);
if (error! = EQERR_SUCCESS) {
//登录失败
}
附注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
EQErr stop ();
退出登录
无参数
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息。
范例
xxxxxxxxxx
EQErr error = stop ();
xxxxxxxxxx
EQErr css (string codes, string indicators, string options, out IntPtr pEqData);[原始类型]
EmData css (string codes, string indicators, string options); [衍生类型]
获取股票,指数,基金,期货等各个证券品种或组合的基本资料,财务,估值等截面数据
参数
参数名 | 参数简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
codes | 证券代码 | string | 输入 | 东财代码,支持多代码输入,以半角逗号分隔,不支持跨品种证券输入 |
indicators | 指标简称 | string | 输入 | 指标名称,支持多指标输入,以半角逗号分隔,最多不超过64个,详细指标列表见指标手册 |
options | 可选参数 | string | 输入 | 附加参数,可填NULL,可填附加字段 |
pEqData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述。 [衍生类型]。
范例
xxxxxxxxxx
string codes="000002.SZ,300059.SZ";
string indicator = "TOTALSHARE";
// 原始类型
IntPtr pData = IntPtr. Zero;
EQErr error = css (codes, indicator, "EndDate=20160217", out pData);
if (error == EQERR_SUCCESS) {
//… 读取结果
releasedata(pData);
}
// 衍生类型
EmData emData = css (codes, indicator, "EndDate=20160217");
if (emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……三维结构,读取结果
}
(注:截面函数每分钟请求次数不能超过700次)
xxxxxxxxxx
EQErr csd (string codes, string indicators, string startDate, string endDate, string options, out IntPtr pEqData); [原始类型]
EmData 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 | 输入 | 附加参数,可填附加字段,见附注2 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述。 [衍生类型]。
范例
xxxxxxxxxx
string codes = "000002.SZ,300059.SZ";
string indicator = "TOTALSHARE";
// 原始类型
EQErr error = csd (codes, indicator, "2016/01/10", "2016/04/13", "Period=1, AdjustFlag=1", out pData);
if (error == EQERR_SUCCESS){
//… 读取结果
releasedata(pData);
}
// 衍生类型
EmData emData = csd (codes, indicator, "2016/01/10", "2016/04/13", "Period=1, AdjustFlag=1");
if (emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//…… 三维结构,读取结果
}
附注2 序列函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
日期周期 | 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 新加坡交易所 |
沿用之前数据 | filldata | 0,1 缺省值:0 | 不沿用--0; 沿用--1 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
(注:序列函数每分钟请求次数不能超过700次)
xxxxxxxxxx
EQErr ctr(string name, string indicators, string options, out IntPtr pEqCtrData); [原始类型]
EmData ctr(string name, string indicators, string options); [衍生类型]
提供专题报表数据
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
name | 报表名称 | string | 输入 | 东财报表名称,详细枚举见指标手册 |
indicators | 报表字段简称 | string | 输入 | 报表字段简称,支持多字段输入,以半角逗号分隔,传空或匹配不到时展示报表全部字段,字段枚举详见量化官网 |
options | 报表参数 | string | 输入 | 报表参数明细,详见量化官网,其他可选参数见附注3 |
pEQCtrData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述 [衍生类型]。
范例
xxxxxxxxxx
// 原始类型
IntPtr pEqCtrData = IntPtr.Zero;
EQErr error = ctr ("StockInfo","", "StartDate=2019-07-01,EndDate=2019-07-02", out pEqCtrData);
if(error == EQERR_SUCCESS){
//…处理数据
releasedata(pData);
}
// 衍生类型
EmData emData = ctr ("StockInfo","", "StartDate=2019-07-01,EndDate=2019-07-02");
if ((emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……三维结构,读取结果
}
附注3 专题报表函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
编码类型 | ENCODE | UTF-8; GBK; GB2312 默认值为空(代表自动判断) | 部分文字无法准确判断编码,需要指定编码 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
xxxxxxxxxx
EQErr edbquery (string edbIDs, string indicators, string options, out IntPtr pEqData);
获取宏观指标数据
参数
参数名 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
edbIDs | 宏观指标id | string | 输入 | 宏观指标id,支持多代码输入,最多不超过100个,以半角逗号分隔,宏观指标列表见量化接口官网-命令生成-宏观数据 |
options | 可选参数 | string | 输入 | 附加参数,可填””,可填附加字段,见附注5 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
范例
xxxxxxxxxx
IntPtr pData = IntPtr. Zero;
EQErr error= edb ("EMM00087117", "IsPublishDate=1", out pData);
if (error == EQERR_SUCCESS) {
//… 读取结果
releasedata(pData);
}
附注5 宏观数据函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
起始日期 | 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指标有发布日期 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
调整返回日期 | FixDate | 取值范围:0,1 缺省值:0 | 取值0,按原始日期返回,不进行调整; 取值1,调整返回的日期为每个周期对应的最后一个自然日,如年频指标则返回每年的12月31日 |
xxxxxxxxxx
EQErr cfn (string codes, string content, CfnMode mode, string options, out IntPtr pEqData);
提供多个证券品种的公告、新闻等历史资讯和多个板块的历史资讯查询
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
codes | 证券代码或板块代码 | string | 输入 | 东财代码,支持多代码,以半角逗号分开。证券代码和板块代码不能混用。板块代码需先调用资讯板块查询函数获取。 |
content | 请求内容类型 | string | 输入 | companynews-公司资讯 industrynews-行业资讯 report-公告 regularreport-定期公告 tradeinfo-重大事项(交易信息) content为前面几个的时候codes必须为证券代码 sectornews-板块资讯 content为sectornews时codes必须为板块代码 content支持前面五个混合,以半角逗号分隔。sectornews和其他不能混合请求 |
mode | 查询类型 | CfnMode | 输入 | eCfnMode_StartToEnd = 1 # starttime和endtime中间的所有资讯 eCfnMode_EndCount = 2 # 提取endtime的近count条数据 |
options | 可选参数 | string | 输入 | 附加参数,可填””,可填附加字段,详见下表 |
pEQData | 返回数据 | InPtr | 输出 | 需调用releasedata释放 |
options可选参数
中文名称 | 英文名称 | 说明 |
---|---|---|
开始时间 | starttime | 模式一必传,模式二无意义。YYYYMMDDHHMMSS或者YYYYMMDD |
结束时间 | endtime | YYYYMMDDHHMMSS或者YYYYMMDD。为空则为当前时间 |
资讯条数 | count | 模式二必传,模式一无意义,在模式二返回以endtime为基准的近count条资讯 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息;
pEQData中指标字段说明
输出字段 | 字段中文 |
---|---|
datetime | 展示时间(公告只展示日期,部分盘后公告展示日期是下一个交易日) |
eitime | 生产时间(公告只提供2017/01/01之后的数据并且只含日期) |
code | 证券代码或板块代码 |
content | 请求类型 |
title | 资讯标题 |
infoCode | 资讯编码 |
medianname | 来源 |
url | 链接 |
范例
xxxxxxxxxx
string codes = " 300059.SZ,600519.SH,300024.SZ ";
string content = " companynews,industrynews ";
EQErr error = cfn (codes, content, CfnMode.EndCount, " starttime=20190501010000,endtime=20190725200000,count=10 ", out pData);
if (error == EQERR_SUCCESS){
//… 读取结果
releasedata(pData);
}
xxxxxxxxxx
int cnq (string codes, string content, string options, IDatacallback callback, IntPtr pUserParam, out EQErr errID);
订阅多个证券品种的公告、新闻等资讯和多个板块的资讯
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
codes | 证券代码或板块代码 | string | 输入 | 东财代码,支持多代码,以半角逗号分开。证券代码和板块代码不能混用。板块代码需先调用资讯板块查询函数获取。 |
content | 请求内容类型 | string | 输入 | companynews-公司资讯 industrynews-行业资讯 report-公告 regularreport-定期公告 tradeinfo-重大事项(交易信息) content为前面几个的时候codes必须为证券代码 sectornews-板块资讯 content为sectornews时codes必须为板块代码 content支持前面五个混合,以半角逗号分隔。sectornews和其他不能混合请求 |
options | 可选参数 | string | 输入 | ””,预留,暂无可选参数 |
callback | 回调函数 | IDatacallback | 输入 | 资讯订阅回调,可以使用该函数对返回的数据进行处理 |
pUserParam | IntPtr | 输入 | ||
errID | 错误码 | EQErr | 输出 | 标识异步函数是否成功进入回调 |
返回
流水号
范例
xxxxxxxxxx
string codes=" F888005002API,F888005003API";
string content = "sectornews";
void CallbackCnq (IntPtr pMsg, IntPtr pUserParam){
//...处理数据
}
static Structs.IDataCallback callbackCnq=CallbackCnq;
EQErr errID=EQErr.EQERR_BASE;
int serialID = cnq (codes, content, "", callbackCnq, IntPtr.Zero,out errID);
xxxxxxxxxx
EmData cses (string blockcodes, string indicators, string options);
获取沪深京股票板块的基本资料、财务等截面数据
参数
参数名 | 参数简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
blockcodes | 板块代码 | string | 输入 | 东财板块代码,以B_开头,如 "B_018005001001",支持多代码输入,以半角逗号分隔,最多不超过6个 |
indicators | 指标简称 | string | 输入 | 指标名称,支持多指标输入,以半角逗号分隔,最多不超过15个 |
options | 可选参数 | string | 输入 | 附加参数,可填NULL,见附注6 |
pEqData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述。 [衍生类型]。
范例
xxxxxxxxxx
string codes="B_018005001001,B_014010016006002";
string indicator = "SECTOPREAVG,CFOPSAVG,MANAEXPAVG";
IntPtr pData = IntPtr. Zero;
EQErr error = cses (codes, indicator, "TradeDate=2020-10-19,DelType=1,type=1,ReportDate=2020-06-30,DataAdjustType=1,Ishistory=0,PREDICTYEAR=2020,StartDate=2019-05-30,EndDate=2020-10-19,Payyear=2019", out pData);
if (error == EQERR_SUCCESS) {
//… 读取结果
releasedata(pData);
}
附注6 板块截面函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
是否取最新板块成分 | isHistory | 0,1 | 必传参数 0,取最新板块成分 1,取历史板块成分 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
(注:板块截面函数不支持多线程)
x
EQErr cps(string codes, string indicators, string conditions, string options, out IntPtr pEqData); [原始类型]
EmData cps(string codes, string indicators, string conditions, string options); [衍生类型]
条件选股函数
参数
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
cpsCodes | 板块代码或证券代码 | string | 控制选股范围,CPS函数只能选取沪深京的板块和证券代码,取值格式有两种: 1. 板块代码,以B_开头,如 "B_001004",常见板块代码见附注7; 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 等,具体操作符释义详见附注8;条件参数引用格式: [参数名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条选股结果等,具体使用规则见附注9 |
pEQData | 返回数据 | IntPtr | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述。 [衍生类型]。
范例
xxxxxxxxxx
// 原始类型
IntPtr pEqData = IntPtr.Zero;
EQErr error = cps("B_001004","LISTDATE,LISTDATE","[LISTDATE] = d(2021-06-16) ","top=max([LISTDATE],100),sectordate=2021-06-18", out pEqData);
if(error == EQERR_SUCCESS){
//… 读取结果
releasedata(pData);
}
// 衍生类型
EmData emData = cps ("B_001004","LISTDATE,LISTDATE","[LISTDATE] = d(2021-06-16) ","top=max([LISTDATE],100),sectordate=2021-06-18");
if ((emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……三维结构,读取结果
}
附注7 常见板块代码:
板块名称 | 板块代码 |
---|---|
全部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 |
附注8 操作符列表:
分类 | 操作符 | 描述 | 详细 | 举例 |
---|---|---|---|---|
算术运算符 | + - * / | 加 减 乘 除 | ||
比较运算符 | > = < >= <= <> | 大于 等于 小于 大于或等于 小于或等于 不等于 | ||
逻辑运算符 | 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]) |
附注9 排序表达式和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 |
x
EQErr edbquery (string edbIDs, string indicators, string options, out IntPtr pEqData);
获取宏观指标ID详情信息
参数
参数名 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
edbIDs | 宏观指标id | string | 输入 | 宏观指标id,支持多代码输入,最多不超过100个,以半角逗号分隔 |
indicators | 详情字段简称 | string | 输入 | 详情字段简称,支持多字段输入,以半角逗号分隔,传空或匹配不到时则输出全部字段,详细字段列表见附注9 |
options | 可选参数 | string | 输入 | 附加参数,可填NULL,可填附加字段 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
范例
x
IntPtr pData = IntPtr. Zero;
EQErr error= edbquery ("EMM00058124", "", "",out pData);
if (error == EQERR_SUCCESS) {
//… 读取结果
releasedata(pData);
}
附注10 宏观指标信息查询函数支持字段列表:
字段简称 | 中文简称 | 备注 |
---|---|---|
ID | 指标ID | |
Name | 指标名称 | |
Unit | 单位 | |
Source | 来源 | |
Region | 国家/地区 | |
Frequency | 日期频率 | 1 日 2 周 3 旬 4 半月 5 月 6 季 7 半年 8 年 9 不定期 |
Startdate | 起始日期 | |
Enddate | 截止日期 | |
Updatetime | 更新时间 |
x
EQErr cfnquery (string options, out IntPtr pEqData);
获取资讯函数和资讯订阅函数支持的板块信息
参数
参数名 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
options | 可选参数 | string | 输入 | 附加参数,可填NULL,可填附加字段 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
pEQData指标字段说明
输出字段 | 字段中文 |
---|---|
seccode | 板块代码 |
secname | 板块名称 |
psecname | 母板块中文名称 |
范例
xxxxxxxxxx
EQErr error = cfnquery ("", out pData);
if (error == EQERR_SUCCESS){
//… 读取结果
releasedata(pData);
}
xxxxxxxxxx
EQErr cnqcancel (int serialID);
取消特定或所有的资讯订阅
参数
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
serialID | 流水号 | Int | 传入特定流水号,取消对应的资讯订阅; 传入0,取消所有的资讯订阅 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
EQErr error = cnqcancel (0);
xxxxxxxxxx
EQErr sector (string pukeyCode, string enddate, string options, out IntPtr pEqData); [原始类型]
EmData sector (string pukeyCode, string enddate, string options); [衍生类型]
获取Choice金融终端指定系统板块证券代码成分列表,目前只支持沪深股票、上交所期权的历史成分查询,其他板块只能获取最新成分
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
pukeycode | 板块代码 | string | 输入 | 通过 Choice 量化接口网站命令生成(http://quantapi.eastmoney.com/Cmd/Sector?from=web)获取 |
enddate | 截止日期 | string | 输入 | 支持格式: YYYYMMDD,YYYY/MM/DD,YYYY/M/D, YYYY-MM-DD,YYYY-M-D |
options | 可选参数 | string | 输入 | 附加参数,可填NULL,可填附加字段,见附注11 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述[衍生类型]。
范例
xxxxxxxxxx
// 原始类型
IntPtr pData = IntPtr.Zero;
EQErr error = sector ("2000034138", "2016-04-26", NULL, out pData);
if (error == EQERR_SUCCESS){
//… 读取结果
releasedata(pData);
}
// 衍生类型
EmData emData = sector ("2000034138", "2016-04-26", NULL);
if ((emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……三维结构,读取结果
}
附注11 板块函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
自选股板块查询 | selfblock | 1 | 1-自选股板块,获取本账号最新的全部自选股板块代码和名称,例sector(“”,””,”selfblock=1”),板块代码和日期传空。 |
超时时间设置 | RECVtimeout | 正整数 | 单位秒,如 设置60代表60秒 |
xxxxxxxxxx
EQErr tradedates (string startDate, string endDate, string options, out IntPtr pEqData); [原始类型]
EmData 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 | 输入 | 附加参数,可填NULL,可填附加字段,见附注12 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述[衍生类型]。
范例
xxxxxxxxxx
// 原始类型
IntPtr pData =IntPtr.Zero;
EQErr error = tradedates ("2016-3-14", "2016-6-1", "Period=1, Order=1, Market=CNSESH", out pData);
if (error == EQERR_SUCCESS){
//…处理返回数据
releasedata(pData);
}
// 衍生类型
EmData emData = tradedates ("2016-3-14", "2016-6-1", "Period=1, Order=1, Market=CNSESH");
if ((emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……一维结构,读取结果
}
附注12 交易日函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
日期周期 | 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
EQErr getdate (string tradedate, int offDay, string options, out IntPtr pEqData); [原始类型]
EmData 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 | 输入 | 附加参数,可填附加字段,见附注13 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述[衍生类型]。
范例
xxxxxxxxxx
// 原始类型
IntPtr pData = IntPtr.Zero;
EQErr error = getdate ("20160426", -3, "Market=CNSESH", out pData);
if(error == EQERR_SUCCESS){
//…处理返回数据
releasedata(pData);
}
// 衍生类型
EmData emData = getdate ("20160426", -3, "Market=CNSESH");
if ((emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……一维结构,读取结果
}
附注13 偏移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
EQErr tradedatesnum(string startDate, string endDate, string options,out int num);
获取指定交易市场,指定时间区间的交易日个数
参数
参数名 | 简称 | 定义 | 描述 | |
---|---|---|---|---|
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 | 输入 | 附加参数,可填附加字段,见附注13 |
num | 返回数据 | int num | 输出 | 区间交易日数 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
int num = 0;
EQErr error = tradedatesnum("2016-3-14", "2016-6-1", “Market=CNSESH", out num);
if(error == EQERR_SUCCESS){
//… 显示结果
}
xxxxxxxxxx
releasedata (IntPtr pEqData);
静态数据同步接口返回数据释放申请的内存
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
pEqData | IntPtr | 输入 | 静态数据接口返回数据指针 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
IntPtr pData = IntPtr.Zero;
EQErr error = releasedata(pData);
xxxxxxxxxx
EQErr setcallback (IDataCallback callback);
设置回调函数
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
callback | 回调函数 | IDataCallback | 输入 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
void CallbackMain (IntPtr pMsg, IntPtr pUserParam) {
//…
}
static Structs.IDataCallback callbackMain=CallbackMain;
setcallback(callbackMain);
xxxxxxxxxx
string geterrstring (EQErr errCode, EQLangType lang = EQLangType.EN_US);
获取错误码相应的错误信息
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
errCode | 错误码 | EQErr | 输入 | 错误码,详见错误类型定义列表 |
lang | 语言枚举 | EQLangType | 输入 |
返回
错误信息字符串
范例
xxxxxxxxxx
string strString = geterrstring (EQERR_LOGIN_FAIL, EQLangType.EN_US);
xxxxxxxxxx
void setserverlistdir (string libPath);
设置ServerList.json.e文件存放目录,需要在调用登录函数之前明确进行指定。
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
libPath | 路径信息 | string | 输入 | 可为相对路径值(相对于应用程序目录的路径),也可为绝对路径值。 |
范例
xxxxxxxxxx
setserverlistdir("lib");
xxxxxxxxxx
EQErr setproxy(ProxyType type, string proxyIp, ushort proxyPort, bool verify, string proxyUser, string proxyPwd);
设置代理
参数
参数 | 简称 | 定义 | 描述 |
---|---|---|---|
type | 代理类型 | ProxyType | ePT_NONE:不使用代理 ePT_HTTP:HTTP代理 ePT_HTTPS:HTTPS代理 ePT_SOCK4:SOCK4代理 ePT_SOCK5:SOCK5代理 |
proxyip | 代理服务器地址 | string | 代理服务器IP |
proxyport | 代理服务器端口 | unsigned short | 代理服务器Port |
verify | 是否验证账户名和密码 | bool | True:验证代理服务器账户名和密码 False:不验证 |
proxyuser | 账户名 | string | 代理服务器账户名 |
proxypwd | 密码 | string | 代理服务器密码 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
xxxxxxxxxx
EQErr manualactivate(IntPtr loginInfo, string options, ILogCallback pLogCallback)
本函数可独立使用,无需调用start。本函数适用于无界面运行环境(如远程linux)或无法运行LoginActivator程序的情况,激活成功后将通过邮件获得的登录令牌"userInfo"放到"ServerList.json.e"同级目录,再调用start登录
参数
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
pLoginInfo | 账户信息 | IntPtr | 账户名和账户密码结构体,必传 |
options | 附加参数 | string | 附加参数,必须输入邮箱信息,如“email=who@what.com” |
callback | 回调函数 | ILogCallback | 日志回调函数,不可传NULL |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
string strName = "";// 用户名
if (strName.Length > OptionEnums.MaxStringLength)
strName = strName.Substring(0, OptionEnums.MaxStringLength);
string strPass = "";// 密码
if (strPass.Length > OptionEnums.MaxStringLength)
strPass = strPass.Substring(0, OptionEnums.MaxStringLength);
Structs.EQLOGININFO loginInfo = new Structs.EQLOGININFO();
loginInfo.UserName = strName;
loginInfo.Password = strPass;
int size = Marshal.SizeOf(typeof(Structs.EQLOGININFO));
IntPtr ptArray = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(loginInfo, ptArray, false);
string strOption = "";// 邮箱地址传入格式为email=xxxx@xx.com
OptionEnums.EQErr code = EmQuantAPI.manualactivate(ptArray, strOption, callbackLog);
xxxxxxxxxx
EQErr cfc(string codes, string indicators, string options, out IntPtr pEqCfcData); [原始类型]
EmData cfc(string name, string indicators, string options); [衍生类型]
支持校验css/csd/cses函数的代码+指标模式
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
codes | 证券代码 | string | 输入 | 东财代码或组合代码或板块代码,支持多代码输入,以半角逗号分隔 |
indicators | 字段简称 | string | 输入 | 支持多字段输入,以半角逗号分隔,传空或匹配不到时展示报表全部字段,字段枚举详见指标手册 |
options | 参数 | string | 输入 | 见附注14 |
pEQCfcData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述 [衍生类型]。
范例
xxxxxxxxxx
// 原始类型
IntPtr pEqCfcData = IntPtr.Zero;
EQErr error = cfc ("000001.SZ", "CODE,NAME", "FunType=css", out pEqCfcData);
if(error == EQERR_SUCCESS){
//…处理数据
releasedata(pData);
}
// 衍生类型
EmData emData = cfc ("000001.SZ", "CODE,NAME", "FunType=css");
if ((emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……三维结构,读取结果
}
附注14 指标校验函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
函数种类 | funtype | css、csd、cses | css-截面函数 csd-序列函数 cses-板块截面函数 注:单个传入,不支持多个拼接 |
x
EQErr cec(string codes, string options, out IntPtr pEqCecData); [原始类型]
EmData cec(string name, string options); [衍生类型]
支持判断东财代码是否有效,同时提供补齐后缀的功能
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
codes | 证券代码 | string | 输入 | 支持多代码输入,以半角逗号分隔 |
options | 参数 | string | 输入 | 参数明细,见附注15 |
pEQCecData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息[原始类型]。
emData.DataFlag为SUCCESS表示执行成功;为EXCEPTION表示程序异常,emData.ExceptionInfo为异常信息;为ERROR时,表示接口函数错误,emData.ExceptionInfo为错误码,可用geterrstring函数获取错误描述 [衍生类型]。
范例
xxxxxxxxxx
// 原始类型
IntPtr pEqCecData = IntPtr.Zero;
EQErr error = cec ("000001.SZ", "ReturnType=0", out pEqCecData);
if(error == EQERR_SUCCESS){
//…处理数据
releasedata(pData);
}
// 衍生类型
EmData emData = cec ("000001.SZ", "ReturnType=0");
if ((emData.DataFlag == EmData.ReturnFlag.SUCCESS) {
//……三维结构,读取结果
}
附注15 代码校验函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
数据返回类型 | 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上交所,市场列表参考附注12 交易日历函数参数列表 |
日历日 | 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 |
说明
举例:
起始日期为1个周前,截至日期为最新 StartDate= -1W , EndDate= N
报告期为最新 ReportDate = MRQ
xxxxxxxxxx
EQErr EmDataStatistics(string FuncName, string Indicators, string Option, out IntPtr pEqData);
查询函数使用量情况
参数
参数 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
FuncName | 函数名称 | string | 输入 | 量化接口函数名称,仅支持单个函数查询,传空值返回全部函数,具体可查询函数见附注16,例如:EM_CSS。 |
Indicators | 查询字段 | string | 输入 | 查询字段,支持传多个字段,使用逗号分隔,传空值则返回全部字段,具体参数见附注17,例如:FUNCENAME。 |
Option | 参数 | string | 输入 | 日期参数,见附注18。 |
pEqData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败,可以通过geterrstring函数取得错误信息
范例
x
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);
}
附注16 函数列表:
函数名称 | 参数值 |
---|---|
截面函数 | 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 |
附注17 查询字段参数列表:
查询字段名称 | 参数值 |
---|---|
函数简称 | FUNCENAME |
函数名称 | FUNCNAME |
证券品种 | SECUTYPE |
流量计算周期 | PERIOD |
起始日期 | STARTDATE |
截止日期 | ENDDATE |
流量阈值 | THRESHOLD |
使用量 | USEDDATA |
使用量占比 | USEDRATIO |
剩余流量 | AVAILABEDATA |
附注18 日期参数:
参数名称 | 参数值 |
---|---|
起始日期 | StartDate,传具体日期,日期格式:YYYY-MM-DD |
截止日期 | EndDate,传具体日期,日期格式:YYYY-MM-DD |
xxxxxxxxxx
EQErr pcreate(string combinCode, string combinName, long initialFound, string remark, string options);
新建组合
参数
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
combinCode | 组合代码 | string | 组合代码,英文和数字,最大10位,单个账户最多支持30个 |
combinName | 组合名称 | string | 组合名称 |
initialFound | 初始资金 | long | 初始资金,上限 99999999999 |
remark | 组合说明 | string | 组合说明 |
options | 附加参数 | string | 附加参数,可填空字串,可填附加字段,见附注19 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
EQErr error = pcreate("quant001.PF", "组合牛股", 1000000, "这是一个牛股的组合", NULL);
if(error == EQERR_SUCCESS)
{
// …输出成功日志,或进行其他操作
}
else
{
// …输出失败日志,或进行其他操作
}
附注19 新建组合函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
组合类型 | combintype | 1-4 | 1 成长型 2 指数型 3 平衡型 4 稳健型 |
创建公司 | createcompany | string | 默认留空 |
业绩基准 | 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
EQErr pctransfer (string combinCode, string transferdirect, string date, double cash, 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 |
cash | 调配资金量 | double | 增加或减少的资金量,上限100000000000 |
remark | 说明 | string | 说明 |
options | 附加参数 | string | 附加参数,可填空字串,可填附加字段,见附注20 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
EQErr error = pctransfer("quant001.PF", "IN", "2019-08-09", 100000, "追加资金", "TRANSFERTYPE=1");
if (error == EQERR_SUCCESS){
//… 记录信息
}
附注20 组合资金调配函数可选参数列表:
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
调配方式 | transfertype | 1-2 | 1 单个组合增加或减少 2 组合间调配 |
组合2 ID | combincode2 | string | 若transfertype为2 则必传 |
调配时间 | time | 24小时 | 格式:HHMMSS,仅在当天有效 |
xxxxxxxxxx
EQErr pquery (string options, out IntPtr pEqData);
提供组合账户信息相关数据
参数
参数名 | 简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
options | 附加参数 | string | 输入 | 附加参数,详见附注21 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放,详见附注22 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
IntPtr pData = NULL;
EQErr error = pquery("", pData);
if(error == EQERR_SUCCESS){
//… 读取结果
releasedata(pData);
}
附注21 组合查询函数附加参数明细
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
组合类型 | combinetype | 0-我管理的组合 1-我关注的组合 | 默认值:0 |
附注22 返回数据具体参数明细
参数名 | 简称 | 备注 |
---|---|---|
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
EQErr porder(IntPtr pOrderInfo, int orderInfoSize, string accountId, string remark, string options);
组合批量下单
参数
参数名 | 简称 | 定义 | 描述 |
---|---|---|---|
pOrderInfo | 下单信息数组指针 | IntPtr | 下单信息数组指针 |
orderInfoSize | 下单信息条数 | int | 下单信息条数 |
combinCode | 组合代码 | string | 组合代码 |
remark | 备注信息 | string | 备注信息 |
options | 附加参数 | string | 附加参数,见附注23 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
int cnt = 2;
ORDERINFO[] orders = new ORDERINFO[cnt];
orders[0].Code = "002024.SZ";
orders[0].Volume = 100.0D;
orders[0].Price = 10.88f;
orders[0].Date = 20170725;
orders[0].Time = 131313;
orders[0].Optype = OperateType.BUY;
orders[0].Cost = 0.0f;
orders[0].Rate = 0.0f;
orders[0].Reserve = 0;
orders[1].Code = "300059.SZ";
orders[1].Volume = 100.0D;
orders[1].Price = 2f;
orders[1].Date = 20170725;
orders[1].Time = 131815;
orders[1].Optype = OperateType.BUY;
orders[1].Cost = 0.0f;
orders[1].Rate = 0.0f;
orders[1].Reserve = 0;
try{
string combinCode= ""; // 从pquery中查询赋值
int size = Marshal.SizeOf(typeof(ORDERINFO)) * cnt;
IntPtr ptArray = Marshal.AllocHGlobal(size);
IntPtr pTemp = ptArray;
for (int i = 0; i < cnt; i++, pTemp = new IntPtr(pTemp.ToInt32() + Marshal.SizeOf(typeof(ORDERINFO))))
{
Marshal.StructureToPtr(orders[i], pTemp, false);
}
EQErr code =porder(ptArray, cnt, combinCode, "我是下单测试", "");
if (code ==EQErr.EQERR_SUCCESS){
Write("\nPO 下单成功");
}
else{
Write("\nPO 下单失败:" + code);
}
}
catch (Exception ex){
Write("\nPO 下单操作:" + ex.ToString());
}
附注23 组合交易附加参数options列表
中文名称 | 英文名称 | 取值范围 | 说明 |
---|---|---|---|
补入现金方式 | autoAddCash | 0--2 缺省值:0 | 0:不补充 1:先扣除可用现金,不足再补充 2:全部外部补充本次批量买入操作所需现金 |
下单模式 | OrderMode | 0--2 缺省值:0 | 0:按数量交易 volume传入交易数量 1:调仓至目标数量,volume传目标数量 2:调仓至目标权重,volume传目标权重,总权重相加不能超过1 备注:1 和 2 不支持逆回购 |
xxxxxxxxxx
EQErr preport(string combinCode, string indicator, string options, out IntPtr pEqData);
查询组合报表信息
参数
参数名 | 参数简称 | 定义 | 输入/输出 | 描述 |
---|---|---|---|---|
combinCode | 组合代码 | string | 输入 | 组合代码,支持单次查询单个组合的单个报表 |
indicator | 报表名称 | string | 输入 | 报表名称,hold(持仓查询), record(交易记录查询),Contri(业绩贡献-已清仓股票),stagePerf(周期回报-阶段回报),profAna(盈亏分析-区间分析),RiskAna(风险分析),VarAna(VAR分析),GDaily(组合日报),TDaily(交易日报),ctransferrecord(资金调配查询) |
options | 附加参数 | string | 输入 | 附加参数,可填空字符串,可填附加字段,见指标手册 |
pEQData | 返回数据 | IntPtr | 输出 | 需调用releasedata释放 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
int mode = 1;
EQErr error = EQERR_SUCCESS;
IntPtr pEqData = IntPtr.Zero;
if(mode == 1){
error = preport("quant001.PF", "hold", "", out pEqData);
}
else{
error = preport("quant001.PF", "record", "startdate=2017/07/12,enddate=2018/01/15", out pEqData);
}
if(error == EQERR_SUCCESS){
//...处理数据
releasedata(pEqData);
}
xxxxxxxxxx
EQErr pdelete(string combinCode, string options);
删除组合
输入
参数名 | 参数简称 | 定义 | 描述 |
---|---|---|---|
combinCode | 组合代码 | string | 组合代码 |
options | 附加参数 | string | 附加参数,可填NULL或空值 |
返回
0表示执行成功,其他表示失败;可以通过geterrstring函数取得错误信息
范例
xxxxxxxxxx
EQErr error = pdelete("quant001.PF", “”);
if(error == EQERR_SUCCESS)
{
// …输出成功日志,或进行其他操作
}
else
{
// …输出失败日志,或进行其他操作
}
错误标识 | 错误描述 | 错误代码 |
---|---|---|
EQERR_SUCCESS | 成功 | 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要传什么?