企业微信

国金证券API简介

国金证券API是为投资者提供的程序化交易接口,支持股票和期货市场。期货交易使用CTP协议,通过API可获取实时行情、执行交易指令、管理持仓。API适用于量化交易者、高频交易者,需具备编程基础。

环境搭建与接入流程

获取API权限

向国金证券营业部申请API交易权限,签署协议,通过审核后获得API文档、SDK和测试账户。测试环境用于模拟交易,实盘环境需额外认证。

安装依赖

API支持Windows/Linux,提供C++、Python等接口。Python用户安装ctpbeevnpy等框架,简化连接。以下为Python安装示例:

如何通过国金证券API实现期货自动交易


pip install ctpbee

初始化连接

使用CTP接口时,需配置行情服务器和交易服务器地址、经纪商代码、用户ID、密码等。连接过程分两步:连接交易前置和行情前置。示例代码:


from ctpbee import CtpBee

app = CtpBee("demo", __name__)

info = {

    "CONNECT_INFO": {

        "userid": "你的账号",

        "password": "你的密码",

        "brokerid": "国金证券代码",

        "md_address": "tcp://行情地址:端口",

        "td_address": "tcp://交易地址:端口",

        "appid": "你的应用ID",

        "auth_code": "你的认证码"

    },

    "INTERFACE": "ctp",

    "TD_FUNC": True,

    "MD_FUNC": True

}

app.config.from_mapping(info)

app.start()

连接成功后,需订阅行情合约。

获取行情数据

订阅实时行情

通过API订阅合约的实时Tick数据,包含最新价、买一卖一、成交量等。使用subscribe方法:


def on_tick(self, tick):

    print(tick)

app.subscribe("rb2310")

历史数据获取

API通常不提供历史数据,可自行存储Tick或K线。框架如vnpy提供数据记录功能,可定时拉取并保存至数据库。

交易指令执行

下单流程

通过send_order函数下达交易指令,需指定合约、方向、开平、价格类型(限价或市价)、数量等。示例:


def on_bar(self, bar):

    if 策略条件:

        self.send_order(

            symbol="rb2310",

            direction="buy",

            offset="open",

            price_type="limit",

            price=bar.close_price,

            volume=1

        )

撤单与查询

使用cancel_order撤销未成交订单,query_order查询委托状态。确保订单状态同步。

策略开发与回测

策略逻辑编写

策略基于Tick或Bar数据,常用技术指标如均线、MACD。以下为双均线策略实例:


from ctpbee.constant import BarData, Direction, Offset

class DoubleMAStrategy:

    def __init__(self):

        self.fast_ma = None

        self.slow_ma = None

    def on_bar(self, bar: BarData):

        # 计算均线

        self.fast_ma = 均线计算(bar.close, 10)

        self.slow_ma = 均线计算(bar.close, 30)

        if self.fast_ma > self.slow_ma and 没有持仓:

            self.buy(bar.close_price, 1)

        elif self.fast_ma < self.slow_ma and 持有多单:

            self.sell(bar.close_price, 1)

回测验证

使用历史数据测试策略,注意滑点、手续费。框架提供回测引擎,如backtrader与API配合。

风险管理与风控模块

仓位管理

设定单笔最大亏损比例,根据账户权益计算手数。动态调整仓位,避免重仓。

止损止盈

在策略中加入止损单,当价格触及止损价时自动平仓。设置跟踪止损,保护利润。

实时监控

监控账户权益、持仓盈亏,异常时自动平仓或发警报。可定时检查未成交订单并撤销。

实际部署注意事项

系统稳定性

使用独立服务器运行,确保24小时不宕机。设置看门狗,检测程序崩溃自动重启。

网络延迟

尽量部署在离交易所近的机房,减少网络延迟。使用专线或低延迟网络。

合规与风险

遵守交易所规则,防止误操作。实盘前充分测试,模拟环境运行一段时间。

常见问题与解决方案

连接失败

检查服务器地址、端口、账号权限。确保防火墙开放相应端口。

下单不成交

可能原因:价格偏离、涨跌停限制、持仓限制。调整价格或检查合约状态。

持仓对不上

同步本地与服务器的持仓,确保订单回报及时处理。

进阶功能

跨合约套利

利用API同时监控多个合约,价差达到阈值后执行买卖。

高频交易

优化代码性能,使用C++编写核心逻辑,采用内存驻留。

国金证券API提供了强大的期货自动交易能力,从连接、数据、下单到风控,均可编程化。选择合适的框架,编写稳定策略,严格风控,方能在市场中立足。API使用需持续学习,结合实战经验,逐步优化系统。