华西证券API怎么使用
摘要:
掌握华西证券API的接入方式与交易功能,可实现股票、期货自动化下单与行情获取,提升交易效率。

华西证券API的基本架构
华西证券API为开发者提供了一套基于TCP长连接的通信协议,支持行情数据订阅、委托下单、撤单、持仓查询等核心功能。该接口采用私有协议封装,需通过官方提供的SDK进行调用,目前主要支持Windows平台下的C++和C#语言开发。用户在开通账户后,需申请API权限,并获取专用的接入地址、端口、客户号、交易密码及认证令牌。
接口分为行情接口与交易接口两个独立通道。行情通道用于实时接收市场行情数据,包括逐笔成交、五档盘口、K线数据等;交易通道则负责处理委托申报、撤单请求、资金与持仓查询等操作。两个通道需分别建立连接并维持心跳,确保通信稳定。

接入准备与环境配置
使用华西证券API前,必须完成账户权限开通。投资者需登录华西证券官网或联系客户经理,提交API使用申请,签署相关协议。审核通过后,系统将分配专属的API接入参数,包括前置机IP、端口号、投资账号、交易单元编号以及加密密钥。
开发环境建议使用Visual Studio系列IDE,导入官方提供的动态链接库(DLL)文件。以C#为例,需引用THSTraderApi.dll和THSQuoteApi.dll两个核心组件。项目中添加对应命名空间后,即可实例化交易与行情对象。
using THS.Trade.Api;
using THS.Quote.Api;
IThsTraderApi traderApi = ThsTraderApi.CreateThsTraderApi();
IThsQuoteApi quoteApi = ThsQuoteApi.CreateThsQuoteApi();
网络配置方面,需确保防火墙允许指定端口通信,推荐使用专线或高稳定性宽带连接,避免因网络延迟导致委托失败或数据丢失。
行情数据订阅流程
行情接口初始化后,需调用RegisterFront方法注册前置机地址,随后启动连接。连接成功触发OnRspUserLogin回调,此时可开始订阅标的行情。
支持的市场包括沪深A股、新三板、债券及部分期货合约。通过SubscribeMarketData方法传入证券代码数组,即可接收实时报价。返回数据包含最新价、昨收、今开、最高、最低、成交量、成交额及买卖五档挂单。
quoteApi.RegisterFront("tcp://120.24.127.23:6002");
quoteApi.Init();
// 登录成功后订阅行情
quoteApi.SubscribeMarketData(new string[] { "600519", "000001" });
对于高频策略用户,可启用逐笔委托与逐笔成交推送模式,精确捕捉市场微观结构变化。每秒可处理数千条行情更新,适用于算法交易中的流动性判断与价差套利。
股票委托下单操作
交易接口的使用遵循“登录—报单—反馈—查询”流程。首先调用RegisterFront绑定交易前置机,然后执行ReqUserLogin发起登录请求。认证通过后,系统返回OnRspUserLogin事件,携带会话ID与最大报单引用号。
委托下单使用ReqOrderInsert方法,传入订单结构体。关键字段包括证券代码、交易所代码(如SZSE、SSE)、买卖方向(BUY/SELL)、订单类型(限价单、市价单)、价格、数量等。市价单支持对手方最优价、本方最优价等多种撮合逻辑。
ThsOrderInsertRequest order = new ThsOrderInsertRequest
{
InstrumentID = "600519",
ExchangeID = "SSE",
Direction = ThsDirectionType.BUY,
Price = 1800.00,
Volume = 100,
OrderPriceType = ThsOrderPriceType.LIMIT
};
traderApi.ReqOrderInsert(order, requestId++);
下单结果通过异步回调OnRtnOrder返回,包含委托状态(已报、废单、部分成交、全部成交)。若发生错误,OnErrRtnOrderInsert将返回具体错误码,如资金不足、超出涨跌停价、代码无效等。
期货交易适配机制
华西证券API同样支持部分期货品种交易,接入逻辑与股票一致,但需注意合约代码的特殊性。例如,螺纹钢主力合约表示为rb2510,需提前查询可交易合约列表。期货交易涉及保证金、杠杆、多空方向、持仓限额等规则,在下单时必须明确开平标志(OPEN/CLOSE)。
order.InstrumentID = "rb2510";
order.CombOffsetFlag = ThsOffsetFlagType.OPEN;
order.CombHedgeFlag = ThsHedgeFlagType.SPECULATION;
期货行情更新频率更高,建议设置独立线程处理数据流。由于期货存在夜盘交易时段,程序需具备跨日运行能力,并监控结算单变化,及时调整风险参数。
撤单与持仓管理
未成交的委托可通过ReqOrderAction发起撤单请求。输入原订单的交易所代码、证券代码及报单引用号,系统将在短时间内响应并返回撤单回报。已部分成交的订单仅能撤销剩余数量。
traderApi.ReqOrderAction(new ThsOrderActionRequest
{
InstrumentID = "000001",
OrderRef = "123456"
});
持仓查询使用ReqQryInvestorPosition,返回当前所有持有仓位,含可用数量、成本价、浮动盈亏。结合资金账户查询ReqQryTradingAccount,可完整掌握资产状况。
风控与异常处理
API调用过程中可能遇到网络中断、服务器重启、报单超限等问题。程序应实现自动重连机制,在OnFrontDisconnected触发后定时尝试恢复连接,并重新登录与订阅。同时记录日志文件,便于事后回溯。
华西证券对API调用频率设有阈值限制,通常每秒不超过20次请求。高频策略需内置节流控制,避免被系统封锁。对于重要交易指令,建议增加本地校验逻辑,防止误操作。
策略集成与实盘应用
将API嵌入量化策略框架后,可实现趋势跟踪、均值回归、跨市场套利等模型的自动化执行。结合Python中间层(通过CLR调用.NET库),可在Jupyter环境中调试策略逻辑,再部署至Windows服务后台运行。
实际应用中,需定期检查接口版本更新,配合券商升级SDK。同时关注交易所规则变动,如涨跌停幅度调整、交易手续费变化等,确保策略持续有效。
安全与合规要求
API账户不得出借或共享,所有操作视为本人行为。程序中禁止使用暴力刷单、虚假报价等扰乱市场秩序的行为。敏感信息如密码、密钥应加密存储,避免硬编码于源码中。
日终需核对成交明细与清算数据,确认无异常交易。监管机构可随时调取API日志,因此保留至少六个月的操作记录是必要措施。
声明
转载声明:欢迎分享本文,转载请注明出处!
点击复制: