量化股票池数据是怎么分析出来的呢?说到这个需要先来了解股票量化的基本原理,在正常的基础上,不是所有的股票数据都经过一一筛选,而是使用一些分析工具来执行,就像a股自动交易接口系统需要编写相符合条件的策略来执行,那么就很快得到量化股票池数据了,接着会执行自动选股分析,不需要人工去动一下。那么,像这样很快的就能把量化选股分析出来的股票拿捏了,会用到哪些基本原理呢?
就比如说股票自动交易接口的开发方面,涉及到开发,就会有不同的功能模块,像执行量化选股数据分析是比较精准的。
a股自动交易接口查询各类交易数据方面:
签名 | 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 是否为空字符串来判断 |
披露查询账户数据、量化股票数据池数据:
签名 | void QueryDatas(int ClientId, int Category[], int Count, char* Result[], char* ErrorInfo[]); | |
功能 | 单账户批量查询各类交易数据, 通过下标区分每项查询 | |
参数 | ClientId | 客户端 Id |
Category[] | 查询信息类别数组, 具体含义请参阅[查询信息类别] | |
Count | 查询项数, 即数组长度 | |
Result[] | 查询结果数组, 每项结果需要分配 1024*1024 字节的空间 格式请参阅[Result 格式] | |
ErrorInfo[] | 错误信息数组, 每项错误信息需要分配 256 字节的空间 | |
返回值 | 无, 第 i 项查询成功与否通过 ErrorInfo[i]是否为空字符串来判断 |
签名 | void QueryMultiAccountsDatas(int ClientId[], int Category[], int Count, char* Result[], char* ErrorInfo[]); | |
功能 | 多账户批量查询各类交易数据, 通过下标区分每项查询 | |
参数 | ClientId[] | 客户端 Id 数组 |
Category[] | 查询信息类别数组, 具体含义请参阅[查询信息类别] | |
Count | 查询项数, 即数组长度 | |
Result[] | 查询结果数组, 每项结果需要分配 1024*1024 字节的空 |
格式请参阅[Result 格式] | ||
ErrorInfo[] | 错误信息数组, 每项错误信息需要分配 256 字节的空间 | |
返回值 | 无, 第 i 项查询成功与否通过 ErrorInfo[i]是否为空字符串来判断 |
如果是从交易接口输入下单代码,获取量化股票池的数据,则可以分析:
std::cout << "========== 融资买入: category = 2 ==========\n";
category = 2; // 委托类别
entrustType = 0; // 限价委托
gddm = "9876543210"; // 股东代码(注意区分深圳和上海各自的股东代码)
zqdm = "600000"; // 证券代码
price = 7.61; // 委托价格
quantity = 100; // 委托股数
SendOrder(clientId, category, entrustType, gddm.c_str(), zqdm.c_str(), price,
quantity, result, errinfo);
if (NULL != errinfo[0]) {
std::cout << errinfo << std::endl;
} else {
std::cout << result << std::endl;
}
std::cout << std::endl;
// 委托撤单
// exchangeId: 0=>深证(东兴证券是A0, 招商证券普通账户是2)
// 1=>上证
typedef void (*CancelOrderProc)(int clientId, const char *exchangeId,
const char *entrustId, char *result,
char *errinfo);
const auto CancelOrder =
reinterpret_cast<CancelOrderProc>(GetProcAddress(hDLL, "CancelOrder"));
assert(CancelOrder);
std::cout << "========== 撤单委托 ==========\n";
std::string exchangeId = "1"; // 上海
std::string entrustId = "xxxxxx"; // 委托编号
CancelOrder(clientId, exchangeId.c_str(), entrustId.c_str(), result, errinfo);
if (NULL != errinfo[0]) {
std::cout << errinfo << std::endl;
} else {
std::cout << result << std::endl;
}
std::cout << std::endl;
然后,当我们根据选股流程筛选出自选股票池之后,量化股票交易接口下一步可以通过择时策略,判断股票池中的各个股票是否产生了买入信号!产生买入信号后会自动添加到“交易条件单”中,在实盘时机器人会按要求买入,再综合这些方面就能获取股票池的数据了。