通达信量化接口从广义上看,其实是面对股市有利的系统开发,通过智能化或者说程序化的交易体系直接构建了持仓下单的简单运作方式,对此,通达信量化接口又是如何开发出来的呢?
一、函数的调用:
相关函数 | 调用结果 |
Deinit Logoff | 无 |
| |
Init | 返回值为授权成功的交易账户数量 返回值< 1 时, 无需调用 Deinit 接口, 也不能调用其它接口, 否则会出错! |
| |
Logon | 调用成功: 返回值为 客户端 Id 调用失败: 返回值 <= 0 |
参数ErrorInfo 保存错误信息, 需要分配 256 字节的空间 | |
| |
GetExpireDate | 返回值为API 授权到期日期 |
二、账户的多种持仓查询方式:
| 格式为yyyymmdd 整数, 如 2018 年 5 月 1 日为 20180501 |
| |
单项操作 | 调用成功: ErrorInfo 为空字符串 |
QueryData | 调用失败: ErrorInfo 为错误信息 |
QueryHistoryData | 参数Result 保存操作结果, 需要分配 1024*1024 字节的空间 |
SendOrder | Result 格式为表格数据, 每一行通过换行符\n 分割,每一列通过制表符\t 分割 |
CancelOrder | 例子: |
GetQuote | 股东代码\t 股东名称\t 帐号类别\t 保留信息\n |
Repay | 12345678\t\t0\t 信息 1\n |
| 87654321\t\t2\t 信息 2 |
| 注: 不同券商返回的字段会有所不同 |
| 参数ErrorInfo 保存错误信息, 需要分配 256 字节的空间 |
| |
批量操作 | 批量操作的参数通过数组方式传入, 用下标区分每项操作 |
QueryDatas | 第i 项操作调用成功: ErrorInfo[i]为空字符串 |
SendOrders | 第i 项操作调用失败: ErrorInfo[i]为错误信息 |
CancelOrders | 参数Result[]保存批量操作结果, Result[i]保存第 i 项操作结果 |
GetQuotes | 每项操作结果需要分配1024*1024 字节的空间 |
QueryMultiAccountsDatas | 每项操作结果的格式可参阅[Result 格式] |
SendMultiAccountsOrders | 参数ErrorInfo[]保存批量错误信息, ErrorInfo[i]保存第 i 项错误信息 |
CancelMultiAccountsOrders | 每项错误信息需要分配256 字节的空间 |
GetMultiAccountsQuotes |
对此,通达信量化接口可以通过与各组的数据持仓情况慢慢执行出来的系统,并且再结合这些交易平台直接进行量化便能增加这些api接口的支撑,例如通达信常见的接口委托下单程序:
* * 编写查询账户信息程序 *
@param string $IP 券商交易服务器IP *
@param integer $Version 设置客户端的版本号 *
@param integer $YybID 营业部代码 * @param string $AccountNo 完整的登录账号 *
@param string $TradeAccount 交易账号,一般与登录帐号相同. *
@param string $JyPassword 交易密码 *
@param string $Port 券商交易服务器端口 *
@param string $TxPassword 通讯密码 *
@param integer $Category 表示查询信息的种类,0资金 1股份 2当日委托 3当日成交 4可撤单 5股东代码 *
/ //获取账户的数据 function QueryData($IP,$Version,$YybID,$AccountNo,$TradeAccount,$JyPassword,$Port,$TxPassword,$Category){ $api = $this->API;
//接口地址 $data = 'IP='.$IP.'&Version='.$Version.'&YybID='.$YybID.'&AccountNo='.$AccountNo.'&TradeAccount='.$TradeAccount.'&JyPassword='.$JyPassword.'&Port='.$Port.'&TxPassword='.$TxPassword.'&Category='.$Category; $header = ['Content-Type'=>'application/x-www-form-urlencoded'];
//默认方式 $url = $api.'QueryData'; $res = $this->https_request($url,$header,$data);
//CURL获取数据 return $res; } /** * 可查询账户信息(多个种类) *
@param string $IP 券商交易服务器IP *
@param integer $Version 设置客户端的版本号 *
@param integer $YybID 营业部代码 *
@param string $AccountNo 完整的登录账号 *
@param string $TradeAccount 交易账号,一般与登录帐号相同. *
@param string $JyPassword 交易密码 *
@param string $Port 券商交易服务器端口 *
@param string $TxPassword 通讯密码 *
@param integer $Category 表示查询信息的种类,0资金 1股份 2当日委托 3当日成交 4可撤单 5股东代码 如0,1 *
@param string $Count 查询的个数 */ //获取账户的多项信息数据 function QueryDatas($IP,$Version,$YybID,$AccountNo,$TradeAccount,$JyPassword,$Port,$TxPassword,$Category,$Count){ $api = $this->API;//接口地址 $data = 'IP='.$IP.'&Version='.$Version.'&YybID='.$YybID.'&AccountNo='.$AccountNo.'&TradeAccount='.$TradeAccount.'&JyPassword='.$JyPassword.'&Port='.$Port.'&TxPassword='.$TxPassword.'&Category='.$Category.'&Count='.$Count; $url = $api.'QueryDatas'; $header = ['Content-Type'=>'application/x-www-form-urlencoded'];//默认方式 $res = $this->https_request($url,$header,$data);//CURL获取数据 return $res; } /** * 下委托交易证券买入或卖出的股票数据信息程序编写出来*//
执行示例:
