企业微信

华西证券API的基本架构

华西证券API为开发者提供了一套基于TCP长连接的通信协议,支持行情数据订阅、委托下单、撤单、持仓查询等核心功能。该接口采用私有协议封装,需通过官方提供的SDK进行调用,目前主要支持Windows平台下的C++和C#语言开发。用户在开通账户后,需申请API权限,并获取专用的接入地址、端口、客户号、交易密码及认证令牌。

接口分为行情接口与交易接口两个独立通道。行情通道用于实时接收市场行情数据,包括逐笔成交、五档盘口、K线数据等;交易通道则负责处理委托申报、撤单请求、资金与持仓查询等操作。两个通道需分别建立连接并维持心跳,确保通信稳定。

华西证券API怎么使用

接入准备与环境配置

使用华西证券API前,必须完成账户权限开通。投资者需登录华西证券官网或联系客户经理,提交API使用申请,签署相关协议。审核通过后,系统将分配专属的API接入参数,包括前置机IP、端口号、投资账号、交易单元编号以及加密密钥。

开发环境建议使用Visual Studio系列IDE,导入官方提供的动态链接库(DLL)文件。以C#为例,需引用THSTraderApi.dllTHSQuoteApi.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日志,因此保留至少六个月的操作记录是必要措施。