通达信接口API是衔接通达信与交易所的重要桥梁,负责通达信的底层交易工作。通过Api.dll,可以直接对接通达信的交易服务器。
通达信的每一步操作,都离不开和驻留进程的通信。Api在进行功能性操作时(登录、交易、查询等),会首先创建一个任务,然后封装一个结构(使用TcSdk_CreateParameterSet创建),并把创建的结构的句柄和任务的句柄关联,然后将结构发送给驻留进程,接着调用ResumeTcJob恢复通达信的底层任务,通过驻留进程发送到交易服务器。
关于部分的API 接口说明:
签名 | int Init(); |
功能 | API 初始化 |
参数 | 无 |
返回值 | 授权成功的交易账户数量 返回值 < 1 时, 无需调用 Deinit 接口, 也不能调用其它接口, 否则会出错! |
签名 | void Deinit(); |
功能 | API 反初始化 |
参数 | 无 |
返回值 | 无 |
签名 | int Logon(const char* Ip, short Port, const char* Version, short Yybid, const char* Account, const char* TradeAccount, const char* JyPassword, const char* TxPassword, char* ErrorInfo); | |
功能 | 登录交易账户 | |
参数 | Ip | 券商交易服务器 IP, 注意区分普通和两融 |
Port | 券商交易服务器端口, 注意区分普通和两融 | |
Version | 客户端的版本号, 一般为空字符串 |
Yybid | 营业部代码, 一般为 0 | |
Account | 登录账号,一般为券商的资金账号或客户号 注: 两融账号需要额外添加 .C 结尾, 如 123456 变为 123456.C | |
TradeAccount | 交易账号, 一般与登录账号相同, 但无需额外添加 .C 结尾 可登录券商软件, 查看股东列表, 股东列表内的资金账号就是交易账号 | |
JyPassword | 交易密码 | |
TxPassword | 通讯密码, 一般为空字符串或与交易密码相同 | |
ErrorInfo | 错误信息, 需要分配 256 字节的空间 | |
返回值 | 调用成功: 客户端 Id 调用失败: 返回 <= 0 |
签名 | void Logoff(int ClientId); | |
功能 | 登出交易账户 | |
参数 | ClientId | 客户端 Id |
返回值 | 无 |
签 名 | void QueryData(int | ClientId, int Category, | char* Result, char* | ErrorInfo); | |
功能 | 查询各类交易数据 | ||||
参数 | ClientId | 客户端 Id | |||
Category | 查询信息类别 0: 资金, 1: 股份, 2: 当日委托, 3: 当日成交, 4: 可撤单, 5: 股东代码, 6: 融资余额, 7: 融券余额, 8: 可融证券, 9: 各券商不同, 10-11: 无, 12: 可申购新股查询, 13: 新股申购额度查询, 14: 配号查询, 15: 中签查询 | ||||
Result | 查询结果, 需要分配 1024*1024 字节的空间 格式请参阅[Result 格式] | ||||
ErrorInfo | 错误信息, 需要分配 256 字节的空间 | ||||
返回值 | 无, 查询成功与否通过 ErrorInfo 是否为空字符串来判断 |
全面去理解通达信接口API,其实通达信接口API就是一个标记接口,只有实现这个接口后,然后在类中重写Object中的clone方法,然后通过类调用clone方法才能克隆成功,如果不实现这个接口,则会抛出CloneNotSupportedException异常。