在程序股票交易接口的开发基础上,还能增加一个撤单的委托模块,因为程序股票交易接口的开发不单单是委托下单,那照样也能撤单,这两种的开发原理上,都不冲突,有的股票接口需要计算多种算法,算起来比较困难,所以股票交易接口一般在研发委托下单跟撤单方面会运用到算法,如下这几种类型:
一、被动型算法交易。也称结构型算法交易。该交易算法除利用历史数据估计交易模型的关键参数外,不会根据市场的状况主动选择交易时机和交易的数量,而是按照一个既定的交易方针进行交易。
二、主动型算法交易。也称机会型算法交易。这类交易算法根据市场的状况作出实时的决策,判断是否交易、交易的数量、交易的价格等。
三、综合型算法交易。该交易是前两者的结合。这类算法常见的方式是先把交易指令拆开,分布到若干个时间段内,每个时间段内具体如何交易由主动型交易算法进行判断,这两者结合可达到单纯一种算法无法达到的效果。
那么,如果要撤单,程序股票交易接口的前面的算法就会清除,具体开发文档表示:
签名 | void CancelOrder(int ClientId, const char* ExchangeId, const char* EntrustId, char* Result, char* ErrorInfo); | |
功能 | 委托撤单 | |
参数 | ClientId | 客户端Id |
| ExchangeId | 交易所Id 上海: "1" 深圳: "0" (招商证券普通账户深圳是"2") |
| EntrustId | 要撤单的委托编号 |
| Result | 撤单结果, 需要分配 1024*1024 字节的空间 格式请参阅[Result 格式] |
| ErrorInfo | 错误信息, 需要分配 256 字节的空间 |
返回值 | 无, 调用成功与否通过 ErrorInfo 是否为空字符串来判断 |
程序源码分享:
std::cout << "========== 查询当日委托: category = 2 ==========\n";
category = 2;
QueryData(clientId, category, result, errinfo);
if (NULL != errinfo[0]) {
std::cout << errinfo << std::endl;
} else {
std::cout << result << std::endl;
}
std::cout << std::endl;
std::cout << "========== 查询当日成交: category = 3 ==========\n";
category = 3;
QueryData(clientId, category, result, errinfo);
if (NULL != errinfo[0]) {
std::cout << errinfo << std::endl;
} else {
std::cout << result << std::endl;
}
std::cout << std::endl;
std::cout << "========== 查询可撤单: category = 4 ==========\n";
category = 4;
QueryData(clientId, category, result, errinfo);
if (NULL != errinfo[0]) {
std::cout << errinfo << std::endl;
} else {
std::cout << result << std::endl;
}
std::cout << std::endl;