通达信量化接口怎么开发的?

通达信量化接口从广义上看,其实是面对股市有利的系统开发,通过智能化或者说程序化的交易体系直接构建了持仓下单的简单运作方式,对此,通达信量化接口又是如何开发出来的呢?

一、函数的调用:

相关函数

调用结果

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; } /** * 下委托交易证券买入或卖出的股票数据信息程序编写出来*//

执行示例:

猜你喜欢

转载自blog.csdn.net/Q_121463726/article/details/129029444
今日推荐