掘金SDK中的所有API的返回值均统一定义,包括系统级错误和业务级错误,错误信息处理接口和定义如下:

错误回调方法

当出现错误时,on_error(或OnError,不同语言命名可能不同)回调函数会被触发,并给出错误代码与错误描述信息。

查询错误方法

SDK也提供查询错误代码描述信息的函数,方便print具体代码的错误信息

C/C++

const char* gm_strerror(int errorno);

C#

string GetStrError(int errCode);

Python

get_strerror(err_code)

Matlab

function [ str ] =  StrError(errCode);

R

gmsdk::get_strerror

主要错误编码列表,其他未列错误,请调用上面的strerror函数获取相应文本信息

    # 共用的配置或通讯层面的错诿 1000~1499

SUCCESS                                  = 0     # "成功"

ERR_CONFIG_FILE_NOT_EXIST                = 1001  # "策略配置文件不存圿"
ERR_CONFIG_PARSE                         = 1002  # "策略配置文件格式错误"
ERR_AUTH_CONNECT                         = 1003  # "无法连接掘金认证服务"
ERR_AUTH_LOGIN                           = 1004  # "无法登录掘金认证服务"
ERR_REQUEST_TIMEOUT                      = 1005  # "请求超时"
ERR_INVALID_PARAMETER                    = 1006  # "非法参数"
ERR_STRATEGY_INIT                        = 1007  # "策略未初始化"
ERR_INTERNAL_INIT_ERROR                  = 1008  # "SDK内部初始化错诿"
ERR_API_SERVER_CONNECT                   = 1009  # "无法连接掘金API服务"

# 业务层面错误共有部分_ 1500~1999

ERR_INVALID_SYMBOL                       = 1501  # "非法证券代码"
ERR_INVALID_DATE                         = 1502  # "非法日期格式"
ERR_INVALID_STRATEGY_ID                  = 1503  # "非法策略ID"

# 交易部分 2000 ~ 2999

ERR_TD_CONNECT                           = 2000  # "交易服务连接失败"
ERR_TD_LOGIN                             = 2001  # "交易服务登录失败"
ERR_TD_TIMEOUT                           = 2002  # "交易命令请求超时"
ERR_TD_NO_RESULT                         = 2003  # "该条件没查到数据"
ERR_TD_INVALID_SESSION                   = 2004  # "交易请求没有登陆"
ERR_TD_INVALID_PARAMETER                 = 2005  # "交易请求参数非法"
ERR_TD_STRATEGY_LOCKED                   = 2006  # "策略被禁止交昿"
ERR_TD_SERVER_ERROR                      = 2007  # "交易服务内部错误"
ERR_TD_CORRUPT_DATA                      = 2008  # "返回数据包错诿"
ERR_TD_CONNECT_CLOSE                     = 2009  # "交易服务连接断开"


# 数据服务部分 3000~3999

ERR_MD_CONNECT                           = 3000  # "数据服务连接失败"
ERR_MD_LOGIN                             = 3001  # "数据服务登录失败"
ERR_MD_TIMEOUT                           = 3002  # "数据服务请求超时"
ERR_MD_NO_RESULT                         = 3003  # "该条件没查到数据"
ERR_MD_BUFFER_ALLOC                      = 3005  # "分配缓冲区错诿"
ERR_MD_INVALID_PARAMETER                 = 3006  # "数据请求参数非法"
ERR_MD_SERVER_ERROR                      = 3007  # "数据服务内部错误"
ERR_MD_CORRUPT_DATA                      = 3008  # "返回数据包错诿"
ERR_MD_CONNECT_CLOSE                     = 3009  # "数据服务连接断开"

#回测部分 4000~4999

ERR_BT_INVALID_TIMESPAN                  = 4000  # "回测时间区间错误"
ERR_BT_INVALID_INITIAL_CASH              = 4001  # "回测请求参数非法"
ERR_BT_INVALID_TRANSACTION_RATIO         = 4002  # "回测请求参数非法"
ERR_BT_INVALID_COMMISSION_RATIO          = 4003  # "回测请求参数非法"
ERR_BT_INVALID_SLIPPAGE_RATIO            = 4004  # "回测请求参数非法"
ERR_BT_READ_CACHE_ERROR                  = 4005  # "回测读取缓存数据错误"
ERR_BT_WRITE_CACHE_ERROR                 = 4006  # "回测写入缓存数据错误"
ERR_BT_CONNECT                           = 4007  # "终端未启动或无法连接到回测服务"

#网络错误 10000~19999
ERR_NET_ERROR                            = 10000 # "网络错误"