
接口类型与功能
平安证券为量化交易者提供两类接口:REST API和WebSocket接口。REST API适用于低频交易,支持账户查询、委托下单、撤单、持仓查询等基础功能,每次请求需携带签名令牌。WebSocket接口则适合高频交易,提供实时行情推送和快速下单通道,延迟低至毫秒级。两类接口均支持市价单、限价单和条件单,但条件单仅在WebSocket接口中开放。
获取接口权限
开通量化接口并非自动完成。投资者需满足两项硬性条件:账户资产不低于50万元,且通过量化交易知识测试(80分及格)。满足条件后,在平安证券官网下载《量化接口申请协议》,填写后提交至营业部柜台。审核周期约5个工作日。审核通过后,客户会收到一封包含API密钥(App Key和Secret Key)的邮件,密钥用于生成访问令牌。每次请求需在Header中携带令牌,令牌有效期2小时,过期后需重新获取。

接口文档与开发环境
平安证券提供详细的接口文档,涵盖接口列表、参数说明、错误码和示例代码。文档托管在平安证券开发者社区,需使用API密钥登录后才能访问。开发环境支持Python 3.8+和C++11,官方提供Python封装库(pingsafe_quant)和C++动态链接库。安装Python库只需执行pip install pingsafe_quant,而C++开发需下载SDK并配置依赖。建议使用PyCharm或Visual Studio进行调试,利用官方提供的沙箱环境(模拟交易)测试代码,沙箱环境与实盘数据隔离,但接口逻辑一致。
核心操作流程
身份认证:在代码中调用
get_token(app_key, secret_key)获取令牌。令牌存储于内存或环境变量,避免硬编码在代码中。连接行情:WebSocket接口需先建立连接,订阅股票代码(如
subscribe("600519")),回调函数实时接收行情快照。下单交易:调用
place_order(symbol, side, type, price, quantity),其中side为buy/sell,type为limit/market。下单成功返回订单ID,可通过query_order(order_id)查询状态。撤单操作:
cancel_order(order_id)用于撤销未成交订单。账户查询:
get_account()返回资金余额、可用余额和持仓明细。
安全与风控要求
平安证券对量化接口实施严格风控。单笔订单数量不得超过账户净资产的10%,单日最大委托笔数不超过500笔,市价单仅支持限价保护(即设定最大滑点百分比)。接口调用频率限制为每秒20次,超额会触发420错误码,并暂停接口使用10分钟。所有交易行为需符合《证券公司程序化交易管理细则》,避免异常交易行为导致监管处罚。
回测与实盘切换
开发完成后,先在沙箱环境进行回测。沙箱提供历史行情数据(近5年),可模拟撮合引擎,检验策略收益和最大回撤。回测通过后,申请实盘权限:需提交策略说明、风控参数和实盘测试报告。实盘交易初始资金建议不超过总资产的20%,运行期间需持续监控接口日志,使用set_log_level("INFO")记录操作。若连续3个交易日出现亏损超过5%,系统将强制暂停接口并通知用户。
常见错误处理
401 UNAUTHORIZED:令牌过期或密钥错误。重新调用
get_token()。403 FORBIDDEN:缺少交易权限。检查合约代码是否正确,或确认是否已开通该股票的交易权限。
429 TOO MANY REQUESTS:超出频率限制。使用sleep函数控制请求间隔,或升级接口套餐。
500 INTERNAL SERVER ERROR:服务器异常。稍后重试,若持续出现需联系运维。
性能优化建议
使用连接池管理WebSocket连接,避免频繁重连。
对高频行情数据采用本地缓存,减少不必要IO。
批量下单时,使用
place_batch_orders()一次提交多笔委托,减少网络往返。部署在券商机房附近或云服务器(如阿里云上海节点),降低网络延迟。
实战案例
一个简单的双均线策略:当5日均线上穿20日均线时买入,下穿时卖出。在Python中实现如下:
from pingsafe_quant import *
# 初始化连接
api = PingsafeAPI(app_key="your_key", secret_key="your_secret")
api.login()
# 订阅股票
defalut_symbol = "600519"
api.subscribe(defalut_symbol)
# 获取历史K线
bars = api.get_bars(defalut_symbol, freq="1d", count=30)
close = [bar.close for bar in bars]
# 计算均线
ma5 = sum(close[-5:]) / 5
ma20 = sum(close[-20:]) / 20
# 交易逻辑
if ma5 > ma20:
api.place_order(defalut_symbol, "buy", "limit", price=close[-1] * 1.01, quantity=100)
elif ma5 < ma20:
api.place_order(defalut_symbol, "sell", "limit", price=close[-1] * 0.99, quantity=100)
运行前需在沙箱环境测试,确保策略逻辑正确。实盘时注意设置止损和止盈,避免单一策略过度交易。
持续学习与支持
平安证券定期举办量化交易线上研讨会,分享接口更新、策略实战和风控技巧。遇到问题可参考官方社区的技术帖子,或拨打客服热线,技术专家提供7×12小时支持。建议订阅接口更新日志,及时了解新增功能和参数调整。
量化交易接口是手段,策略和风控才是核心。一旦掌握接口操作,反复打磨策略逻辑,就能在市场中占据优势。