Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 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
  • protoid.QotPushIndicatorCalc // 3261
  • protoid.QotUpdateOptionEvent // 3310
  • protoid.QotUpdateEventContractOrderBook // 3450
  • protoid.QotUpdateEventContractKline // 3451
  • protoid.QotUpdateEventContractTicker // 3452

设置其他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 // 获取期权到期日
  • QotGetFinancialsEarningsPriceMove = 3225 // 获取财报盈利预测变动
  • QotGetFinancialsEarningsPriceHistory = 3226 // 获取财报盈利预测历史
  • QotGetFinancialsStatements = 3227 // 获取财务报表
  • QotGetFinancialsRevenueBreakdown = 3228 // 获取主营构成
  • QotGetResearchAnalystConsensus = 3229 // 获取分析师评级汇总
  • QotGetResearchRatingSummary = 3230 // 获取分析师评级详情
  • QotGetResearchMorningstarReport = 3231 // 获取晨星研报
  • QotGetValuationDetail = 3232 // 获取估值详情
  • QotGetValuationPlateStockList = 3233 // 获取板块估值股票列表
  • QotGetCorporateActionsDividends = 3234 // 获取除权除息
  • QotGetCorporateActionsBuybacks = 3235 // 获取回购
  • QotGetCorporateActionsStockSplits = 3236 // 获取拆合股
  • QotGetShareholdersOverview = 3237 // 获取股东概要
  • QotGetShareholdersHoldingChanges = 3238 // 获取持股变动
  • QotGetShareholdersHolderDetail = 3239 // 获取股东持仓明细
  • QotGetShareholdersInstitutional = 3240 // 获取机构持仓
  • QotGetInsiderHolderList = 3241 // 获取内部持有人列表
  • QotGetInsiderTradeList = 3242 // 获取内部人交易列表
  • QotGetCompanyProfile = 3243 // 获取公司资料
  • QotGetCompanyExecutives = 3244 // 获取公司高管
  • QotGetCompanyExecutiveBackground = 3245 // 获取高管背景
  • QotGetCompanyOperationalEfficiency = 3246 // 获取营运效率
  • QotGetTopTenBuySellBrokers = 3247 // 获取十大经纪商
  • QotGetDailyShortVolume = 3248 // 获取每日做空量
  • QotGetShortInterest = 3249 // 获取做空比例
  • QotGetOptionVolatility = 3250 // 获取期权波动率
  • QotGetOptionExerciseProbability = 3251 // 获取期权行权概率
  • QotStockScreen = 3252 // 条件选股
  • QotOptionScreen = 3253 // 期权筛选
  • QotWarrantScreen = 3254 // 窝轮筛选
  • QotGetOptionQuote = 3255 // 获取期权行情
  • QotGetOptionStrategy = 3256 // 获取期权策略
  • QotGetOptionStrategyAnalysis = 3257 // 获取期权策略分析
  • QotGetOptionStrategySpread = 3258 // 获取期权策略价差
  • QotGetIndicatorList = 3259 // 获取指标列表
  • QotRequestIndicatorCalc = 3260 // 异步发起指标计算
  • QotPushIndicatorCalc = 3261 // 指标异步计算结果推送
  • QotGetSearchQuote = 3262 // 搜索行情
  • QotGetSearchNews = 3263 // 搜索资讯
  • QotGetOptionMarketStatistic = 3301 // 获取期权市场统计
  • QotGetOptionUnderlyingHisStatistic = 3302 // 获取期权标的历史统计
  • QotGetOptionUnderlyingOverview = 3303 // 获取批量标的最新数据
  • QotGetOptionUnderlyingHisVolatility = 3304 // 获取历史波动率
  • QotGetOptionUnderlyingRank = 3305 // 获取标的排行
  • QotGetOptionRank = 3306 // 获取期权合约排行
  • QotGetOptionEvent = 3307 // 获取期权异动列表
  • QotGetOptionEventAlert = 3308 // 获取期权异动告警设置
  • QotSetOptionEventAlert = 3309 // 修改期权异动告警条件
  • QotUpdateOptionEvent = 3310 // 期权异动推送
  • QotGetOptionZeroDteScreener = 3311 // 获取末日期权标的列表
  • QotGetOptionZeroDteContract = 3312 // 获取末日期权合约列表
  • QotGetOptionEarningsScreener = 3313 // 获取财报期权标的列表
  • QotGetOptionSellerScreener = 3314 // 获取期权卖方策略列表
  • QotGetEarningsCalendar = 3401 // 获取财报日历
  • QotGetMacroIndicatorList = 3402 // 获取宏观指标列表
  • QotGetMacroIndicatorHistory = 3403 // 获取宏观指标历史数据
  • QotGetFedWatchTargetRate = 3404 // 获取美联储利率预测
  • QotGetFedWatchDotPlot = 3405 // 获取CME利率点阵图
  • QotGetEarningsBeatRank = 3406 // 获取盈利超预期排行
  • QotGetDividendRank = 3407 // 获取股息排行
  • QotGetDividendCalendar = 3408 // 获取派息日历
  • QotGetEconomicCalendar = 3409 // 获取财经日历
  • QotGetUSPreMarketRank = 3410 // 获取盘前榜
  • QotGetUSAfterHoursRank = 3411 // 获取盘后榜
  • QotGetUSOvernightRank = 3412 // 获取夜盘榜
  • QotGetTopMoversRank = 3413 // 获取领涨领跌榜
  • QotGetHotList = 3414 // 获取热议榜
  • QotGetShortSellingRank = 3415 // 获取卖空异动榜
  • QotGetPeriodChangeRank = 3416 // 获取区间涨跌幅
  • QotGetHighDividendSOERank = 3417 // 获取破净高股息国央企
  • QotGetInstitutionList = 3418 // 获取机构持仓列表
  • QotGetInstitutionProfile = 3419 // 获取机构概况
  • QotGetInstitutionDistribution = 3420 // 获取机构持仓行业分布
  • QotGetInstitutionHoldingChange = 3421 // 获取机构持仓变动
  • QotGetInstitutionHoldingList = 3422 // 获取机构持股列表
  • QotGetArkFundHolding = 3423 // 获取ARK基金持仓
  • QotGetArkStockDynamic = 3424 // 获取ARK个股交易动态
  • QotGetArkActiveTransaction = 3425 // 获取ARK主动交易聚合
  • QotGetRatingChange = 3426 // 获取评级变动
  • QotGetIndustrialChainList = 3427 // 获取产业链列表
  • QotGetIndustrialChainDetail = 3428 // 获取产业链详情
  • QotGetIndustrialChainByPlate = 3429 // 获取板块关联产业链
  • QotGetIndustrialPlateInfo = 3430 // 获取产业板块信息
  • QotGetIndustrialPlateStock = 3431 // 获取产业板块成分股
  • QotGetHeatMapData = 3432 // 获取热力图数据
  • QotGetRiseFallDistribution = 3433 // 获取涨跌分布
  • QotGetEventContractCategory = 3434 // 获取事件合约分类
  • QotFilterCompetition = 3435 // 获取赛事筛选选项
  • QotGetEventContractSeriesList = 3436 // 获取事件合约Series列表
  • QotGetEventContractEventList = 3437 // 获取事件合约Event列表
  • QotGetEventContract = 3438 // 获取事件合约
  • QotGetEventContractMilestoneList = 3439 // 获取事件合约里程碑列表
  • QotGetEventContractSnapshot = 3445 // 获取事件合约快照
  • QotGetEventContractOrderBook = 3446 // 获取事件合约摆盘
  • QotGetEventContractKline = 3447 // 获取事件合约K线
  • QotGetEventContractTicker = 3448 // 获取事件合约逐笔
  • QotUpdateEventContractOrderBook = 3450 // 事件合约摆盘推送
  • QotUpdateEventContractKline = 3451 // 事件合约K线推送
  • QotUpdateEventContractTicker = 3452 // 事件合约逐笔推送
  • QotGetEventContractComboList = 3453 // 获取事件合约可Combo列表
  • QotGetEventContractComboRfq = 3454 // 事件合约Combo询价
  • QotSubEventContract = 3455 // 事件合约订阅/反订阅
  • QotRequestHistoryEventContractKL = 3456 // 拉取事件合约历史K线

交易接口

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

About

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

Topics

Resources

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

Generated from hyperjiang/go-tpl