相关参数开发文档
1、
签名 | 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]是否为空字符串来判断 |
2、
签名 | void SendOrders(int ClientId, int Category[], int EntrustType[], const char* Gddm[], const char* Zqdm[], float Price[], int Quantity[], int Count, char* Result[], char* ErrorInfo[]); | |
功能 | 单账户批量下单, 通过下标区分每项委托 | |
参数 | ClientId | 客户端 Id |
Category[] | 委托类别数组, 具体含义请参阅[委托类别] | |
EntrustType[] | 报价方式数组, 具体含义请参阅[报价方式] | |
Gddm[] | 股东代码数组 | |
Zqdm[] | 证券代码数组 | |
Price[] | 委托价格数组 | |
Quantity[] | 委托数量数组 | |
Count | 委托项数, 即数组长度 | |
Result[] | 委托结果数组, 每项结果需要分配 1024*1024 字节的空间 格式请参阅[Result 格式] | |
ErrorInfo[] | 错误信息数组, 每项错误信息需要分配 256 字节的空间 | |
返回值 | 无, 第 i 项委托成功与否通过 ErrorInfo[i]是否为空字符串来判断 |
3、
签名 | void QueryHistoryData(int ClientId, int Category, const char* StartDate, const char* EndDate, char* Result, char* ErrorInfo) ; | |
功能 | 查询各类历史数据 | |
参数 | ClientId | 客户端 Id |
Category | 查询信息类别 0: 历史委托, 1: 历史成交, 2: 交割单 | |
StartDate | 开始日期 格式为 yyyymmdd 字符串, 如 2018 年 5 月 1 日为 20180501 | |
EndDate | 结束日期, 格式同开始日期 | |
Result | 查询结果, 需要分配 1024*1024 字节的空间 格式请参阅[Result 格式] | |
ErrorInfo | 错误信息, 需要分配 256 字节的空间 | |
返回值 | 无, 调用成功与否通过 ErrorInfo 是否为空字符串来判断 |
4、
签名 | 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 是否为空字符串来判断 |
5、
Yybid | 营业部代码, 一般为 0 | |
Account | 登录账号,一般为券商的资金账号或客户号 注: 两融账号需要额外添加 .C 结尾, 如 123456 变为 123456.C | |
TradeAccount | 交易账号, 一般与登录账号相同, 但无需额外添加 .C 结尾 可登录券商软件, 查看股东列表, 股东列表内的资金账号就是交易账号 | |
JyPassword | 交易密码 | |
TxPassword | 通讯密码, 一般为空字符串或与交易密码相同 | |
ErrorInfo | 错误信息, 需要分配 256 字节的空间 | |
返回值 | 调用成功: 客户端 Id 调用失败: 返回 <= 0 |
python程序化交易接口
# 多账号批量查询各类交易数据
# 要使用批量功能应创建多个 Result 和 ErrorInfo 空间 Result = create_string_buffer(1024 * 1024) ErrorInfo = create_string_buffer(256)
# -*- coding: utf-8 -*- """ 此 DLL 接口为 32 位,用 python 解释器调用此接口的时候必须要用 python32 位解释器 用 32 位系统的直接安装 32 位 python 解释器 用 64 位系统的要设置兼容 32 位 python 解释器 """ from ctypes import *
# Count 参数和单账户批量查询意义一样 CategoryList = [Category1, Category2] CategoryArray = (c_int * len(CategoryList))(*CategoryList) EntrustTypeList = [EntrustType1, EntrustType2] EntrustTypeArray = (c_int * len(EntrustTypeList))(*EntrustTypeList) GddmList = [b'Gddm1', b'Gddm2'] GddmArray = (c_char_p * len(GddmList))(*GddmList) ZqdmList = [b'Zqdm1', b'Zqdm2'] ZqdmArray = (c_char_p * len(ZqdmList))(*ZqdmList) PriceList = [Price1, Price2] PriceArray = (c_float * len(PriceList))(*PriceList) QuantityList = [Quantity1, Quantity2] QuantityArray = (c_int * len(QuantityList))(*QuantityList) Count = len(CategoryList) ResultList = [cast(Result1, c_char_p), cast(Result2, c_char_p)] ResultArray = (c_char_p * len(ResultList))(*ResultList) ErrorInfoList = [cast(ErrorInfo1, c_char_p), cast(ErrorInfo2, c_char_p)] ErrorInfoArray = (c_char_p * len(ErrorInfoList))(*ErrorInfoList) Dll.SendOrders(ClientId, CategoryArray, EntrustTypeArray, GddmArray, ZqdmArray, PriceArray, Quant ityArray, c_int(Count), ResultArray, ErrorInfoArray)
# 单账户批量撤单 ExchangeIdList = [b'ExchangeId1', b'ExchangeId2'] ExchangeIdArray = (c_char_p * len(ExchangeIdList))(*ExchangeIdList) EntrustIdList = [b'EntrustId1', b'EntrustId2'] EntrustIdArray = (c_char_p * len(EntrustIdList))(*EntrustIdList) Count = len(ExchangeIdList) ResultList = [cast(Result1, c_char_p), cast(Result2, c_char_p)] ResultArray = (c_char_p * len(ResultList))(*ResultList) ErrorInfoList = [cast(ErrorInfo1, c_char_p), cast(ErrorInfo2, c_char_p)] ErrorInfoArray = (c_char_p * len(ErrorInfoList))(*ErrorInfoList) Dll.CancelOrders(ClientId, ExchangeIdArray, EntrustIdArray, c_int(Count), ResultArray, ErrorInfoA rray)
# 要使用批量功能应要创建多个 ClientId ClientId = Dll.Logon(c_char_p(Ip), c_int(Port), c_char_p(Version), c_int(YyBid), c_char_p(Account), c_char_p(TradeAccount), c_char_p(JyPassword), c_char_p(TxPassword), ErrorInfo)
# Count 参数和多账号批量查询意义一样 ClientIdList = [ClientId1, ClientId2] ClientIdArray = (c_int * len(ClientIdList))(*ClientIdList) CategoryList = [Category1, Category2] CategoryArray = (c_int * len(CategoryList))(*CategoryList) EntrustTypeList = [EntrustType1, EntrustType2] EntrustTypeArray = (c_int * len(EntrustTypeList))(*EntrustTypeList) GddmList = [b'Gddm1', b'Gddm2'] GddmArray = (c_char_p * len(GddmList))(*GddmList) ZqdmList = [b'Zqdm1', b'Zqdm2'] ZqdmArray = (c_char_p * len(ZqdmList))(*ZqdmList) PriceList = [Price1, Price2] PriceArray = (c_float * len(PriceList))(*PriceList) QuantityList = [Quantity1, Quantity2] QuantityArray = (c_int * len(QuantityList))(*QuantityList) Count = len(CategoryList) ResultList = [cast(Result1, c_char_p), cast(Result2, c_char_p)] ResultArray = (c_char_p * len(ResultList))(*ResultList) ErrorInfoList = [cast(ErrorInfo1, c_char_p), cast(ErrorInfo2, c_char_p)] ErrorInfoArray = (c_char_p * len(ErrorInfoList))(*ErrorInfoList) Dll.SendMultiAccountsOrders(ClientIdArray, CategoryArray, EntrustTypeArray, GddmArray, ZqdmArray, PriceArray, QuantityArray, c_int(Count), ResultArray, ErrorInfoArray)
# 返回结果和返回错误分配空间,结果信息空间为 1024*1024 字节,错误信息空间为 256 字节
文章为作者独立观点,不代表股票量化交易软件接口观点
Information2023-05-15
不能借钱炒股,加杠杆就是借钱,一定不能加杠杆。如果赚了,或者亏得不多,最好清仓转钱到银行,股票小散绝大多数亏,95%以上都是亏,小散进入股票就是送钱。远离股票是小散最好的选择。量化定投策略2023-02-14
中航电测打开一字涨停,集合竞价高开45%,该股此前连续8个股票日20CM涨停,为创业板史上首次,期间累计涨幅超330%。北极星2022-08-27
煤炭股要调整一段时间了,有的逢高派发。这种文章在低位时不推荐,涨到次高点,或者高点时让股票买濑二2022-07-12
我问应女士几个问题:一是应女士有没有投资咨询资格证书?二是应女士自己投资股票的水平如何?三是一个公民还是要遵纪守法,生活才会快乐幸福。量化指数策略2022-06-11
淡定,外资股票的研究员很多就这么交流的,本来也不是给别的受众看的,没有大V转发不会有交集的,不用这么义愤填膺