在股市中需要通过通达信股票接口连接数据的方式取决于具体的接口类型和使用的编程语言。以下是一般情况下的通达信股票接口连接数据的常见方式:
1. 安装通达信应用:首先,必须安装通达信系统之后并且开启软件,确保软件能够正常连接到股票交易市场并获取实时行情数据。
2. 配置接口参数:通达信股票接口需要配置一些参数,如服务IP、端口号、账号信息等。这些参数可以通过接口提供的函数或者在代码中配置的方式进行设置。
3. 建立连接:使用编程语言提供的网络通信库,通过指定IP地址和端口号,建立与通达信api接口的网络连接。具体的代码实现方法会因编程语言而异。
例如开发文档:
名称 |
功能 |
|
基本函数 |
Init |
API 初始化 |
Deinit |
API 反初始化 |
|
Logon |
登录交易账户 |
|
Logoff |
登出交易账户 |
|
QueryData |
查询各类交易数据 |
|
QueryHistoryData |
查询各类历史数据 |
|
SendOrder |
委托下单 |
|
CancelOrder |
委托撤单 |
|
GetQuote |
获取五档报价 |
|
Repay |
融资融券账户直接还款 |
|
GetExpireDate |
查询 API 授权到期日期 |
|
账户批量函数: |
||
单账户批量函数 |
QueryDatas |
单账户批量查询各类交易数据 |
SendOrders |
单账户批量下单 |
|
CancelOrders |
单账户批量撤单 |
|
GetQuotes |
单账户批量获取五档报价 |
|
多账户批量函数 |
QueryMultiAccountsDatas |
多账户批量查询各类交易数据 |
SendMultiAccountsOrders |
多账户批量下单 |
|
CancelMultiAccountsOrders |
多账户批量撤单 |
|
GetMultiAccountsQuotes |
多账户批量获取五档报价 |
|
MetaTradeAPI (metatradeapi) - Gitee.comhttps://gitee.com/metatradeapi
4. 发送数据请求:通过发送指定的请求命令,向通达信发送获取行情数据的请求。这些请求命令可以是特定的函数调用、指定的消息格式或是其他形式。
5. 接收和处理数据:一旦连接建立并发送了数据请求,通达信软件会回复相应的行情数据。使用编程语言提供的网络通信库,接收并解析通达信管理系统返回的数据,然后进行必要的处理和分析。
6. 断开连接:当不再需要获取数据时,需要断开与通达信系统的连接,释放资源。
7.获取数据源码:
// 接收缓冲区, 用于接收返回结果和错误信息
auto resultBuf = std::make_unique<char[]>(1024 * 1024);
auto errinfoBuf = std::make_unique<char[]>(256);
char *const result = resultBuf.get();
char *const errinfo = errinfoBuf.get();
// 登录 接口支持普通交易和两融交易账号, 以下例子使用两融账号
typedef int (*LogonProc)(const char *ip, short port, const char *version,
short yybid, const char *account,
const char *tradeAccount, const char *jyPassword,
const char *txPassword, char *errinfo);
const auto Logon = reinterpret_cast<LogonProc>(GetProcAddress(hDLL, "Logon"));
assert(Logon);
std::string ip = "1.2.3.4"; // 券商IP(注意区分两融和普通)
short port = 5678; // 券商端口(注意区分两融和普通)
std::string version = ""; // 版本号: 一般填空
short yybid = 0; // 营业部ID: 一般填0
std::string account = "12345678.C"; // 登录账号: 两融账号需添加.C结尾
std::string tradeAccount = "12345678"; // 交易账号: 一般与登录账号相同, 但不需添加.C结尾
std::string jyPassword = "password"; // 交易密码
std::string txPassword = ""; // 通讯密码: 一般填空
const int clientId = Logon(ip.c_str(), port, version.c_str(), yybid,
account.c_str(), tradeAccount.c_str(),
jyPassword.c_str(), txPassword.c_str(), errinfo);
assert(clientId >= 0);
std::cout << "登录成功, client = " << clientId << std::endl;
std::cout << std::endl;
但需要注意的是,不同的编程语言和接口库可能有不同的实现方式和调用接口。因此,在具体使用中,需要查阅相关的开发文档和示例代码,以了解具体的连接数据方式和使用方法。