Skip to content
generated from hyperjiang/go-tpl

Futu open api golang client. 富途Open API最好用的Golang客户端

License

Notifications You must be signed in to change notification settings

hyperjiang/futu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Futu open api golang client

GoDoc CI codecov Release

富途牛牛 OpenAPI Golang 客户端,要求Golang版本 >= 1.21

Futu Open API 官方文档: https://openapi.futunn.com/futu-api-doc/

代码目录说明

  • 根目录: 提供用户友好的客户端SDK,对底层的client包做了一层用法包装
  • client: 基础客户端,拥有所有功能,需要用pb定义的结构体传参,可以直接使用,但是使用起来略繁琐
  • .proto: protobuf 定义文件
  • adapt: protobuf 结构体和普通类型的适配层
  • infra: 底层支持库,使用者无需关心
  • pb: 基于 protobuf 文件生成的 golang 代码
  • protoid: 接口ID常量列表

使用说明

本SDK跟FutuOpenD的通信协议格式是protobuf,使用FutuOpenD的默认配置即可,不要改成json格式。

具体用法可以参考单元测试,里面每个接口都有用例。

方法设计的原则是,必填参数显式要求传递,可选参数放在可变参数adapt.Option传递。但有部分必填参数实际上可以有默认值,这种情况不会显式要求传递。

每个接口都有一对方法,其中结尾有WithContext的方法是方便让使用者可以自己通过context设置超时时间,不带WithContext的方法使用了默认超时时间5s。

以下是一个简单示例:

import "github.com/hyperjiang/futu"

sdk, err := futu.NewSDK()
if err != nil {
    log.Fatal(err)
}

res, err := sdk.GetGlobalState()
fmt.Println(res)

对于系统推送过来的数据,需要调用RegisterHandler(protoID uint32, h Handler)来注册自己的处理逻辑。 如果没有设置,SDK会使用默认的Handler,只打印收到的消息到日志。 可以设置推送Handler的协议ID如下:

  • protoid.Notify // 1003
  • protoid.TrdUpdateOrder // 2208
  • protoid.TrdUpdateOrderFill // 2218
  • protoid.QotUpdateBasicQot // 3005
  • protoid.QotUpdateKL // 3007
  • protoid.QotUpdateRT // 3009
  • protoid.QotUpdateTicker // 3011
  • protoid.QotUpdateOrderBook // 3013
  • protoid.QotUpdateBroker // 3015
  • protoid.QotUpdatePriceReminder // 3019

设置其他ID没有任何作用,因为永远不可能触发到。

支持的功能

基础功能(用户无需调用)

  • 支持使用RSA和AES加解密
  • 初始化连接
  • 获取全局状态
  • 事件通知推送
  • 保活心跳

行情接口

  • QotSub = 3001 // 订阅或者反订阅
  • QotGetSubInfo = 3003 // 获取订阅信息
  • QotGetBasicQot = 3004 // 获取股票基本报价
  • QotUpdateBasicQot = 3005 // 推送股票基本报价
  • QotGetKL = 3006 // 获取K线
  • QotUpdateKL = 3007 // 推送K线
  • QotGetRT = 3008 // 获取分时
  • QotUpdateRT = 3009 // 推送分时
  • QotGetTicker = 3010 // 获取逐笔
  • QotUpdateTicker = 3011 // 推送逐笔
  • QotGetOrderBook = 3012 // 获取买卖盘
  • QotUpdateOrderBook = 3013 // 推送买卖盘
  • QotGetBroker = 3014 // 获取经纪队列
  • QotUpdateBroker = 3015 // 推送经纪队列
  • QotUpdatePriceReminder = 3019 // 到价提醒通知
  • QotRequestHistoryKL = 3103 // 在线获取单只股票一段历史K线
  • QotRequestHistoryKLQuota = 3104 // 获取历史K线额度
  • QotRequestRehab = 3105 // 在线获取单只股票复权信息
  • QotGetStaticInfo = 3202 // 获取股票静态信息
  • QotGetSecuritySnapshot = 3203 // 获取股票快照
  • QotGetPlateSet = 3204 // 获取板块集合下的板块
  • QotGetPlateSecurity = 3205 // 获取板块下的股票
  • QotGetReference = 3206 // 获取正股相关股票
  • QotGetOwnerPlate = 3207 // 获取股票所属板块
  • QotGetOptionChain = 3209 // 获取期权链
  • QotGetWarrant = 3210 // 获取窝轮
  • QotGetCapitalFlow = 3211 // 获取资金流向
  • QotGetCapitalDistribution = 3212 // 获取资金分布
  • QotGetUserSecurity = 3213 // 获取自选股分组下的股票
  • QotModifyUserSecurity = 3214 // 修改自选股分组下的股票
  • QotStockFilter = 3215 // 获取条件选股
  • QotGetIpoList = 3217 // 获取新股
  • QotGetFutureInfo = 3218 // 获取期货合约资料
  • QotRequestTradeDate = 3219 // 获取市场交易日,在线拉取不在本地计算
  • QotSetPriceReminder = 3220 // 设置到价提醒
  • QotGetPriceReminder = 3221 // 获取到价提醒
  • QotGetUserSecurityGroup = 3222 // 获取自选股分组列表
  • QotGetMarketState = 3223 // 获取指定品种的市场状态
  • QotGetOptionExpirationDate = 3224 // 获取期权到期日

交易接口

  • TrdGetAccList = 2001 // 获取交易业务账户列表
  • TrdUnlockTrade = 2005 // 解锁或锁定交易
  • TrdSubAccPush = 2008 // 订阅业务账户的交易推送数据
  • TrdGetFunds = 2101 // 获取账户资金
  • TrdGetPositionList = 2102 // 获取账户持仓
  • TrdGetMaxTrdQtys = 2111 // 获取最大交易数量
  • TrdGetOrderList = 2201 // 获取订单列表
  • TrdPlaceOrder = 2202 // 下单
  • TrdModifyOrder = 2205 // 修改订单
  • TrdUpdateOrder = 2208 // 推送订单状态变动通知
  • TrdGetOrderFillList = 2211 // 获取成交列表
  • TrdUpdateOrderFill = 2218 // 推送成交通知
  • TrdGetHistoryOrderList = 2221 // 获取历史订单列表
  • TrdGetHistoryOrderFillList = 2222 // 获取历史成交列表
  • TrdGetMarginRatio = 2223 // 获取融资融券数据
  • TrdGetOrderFee = 2225 // 获取订单费用
  • TrdFlowSummary = 2226 // 查询账户现金流水

About

Futu open api golang client. 富途Open API最好用的Golang客户端

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages