Class: FutuQuant

FutuQuant

封装FutuQuant底层协议模块


new FutuQuant(params [, logger])

Creates an instance of FutuQuant.

Parameters:
Name Type Argument Description
params object

初始化参数

Properties
Name Type Argument Description
ip string

FutuOpenD服务IP

port number

FutuOpenD服务端口

userID number

牛牛号

pwdMd5 string

解锁交易 md5

market TrdMarket <optional>

市场环境,默认为港股环境,1港股2美股3大陆市场4香港A股通市场

env TrdEnv <optional>

0为仿真环境,1为真实环境,2为回测环境,默认为1

logger object <optional>

日志对象,若不传入,则使用bunyan.createLogger创建

Source:

Members


<async, constant> subQotUpdateOrderBook :QotGetOrderBookResponse

注册买卖盘推送,需要先调用订阅接口 Qot_UpdateOrderBook.proto - 3013推送买卖盘

Type:
Source:

Methods


close()

断开连接

Source:

<async> getGlobalState()

GetGlobalState.proto - 1002获取全局状态

Source:
Returns:
Type
GetGlobalStateResponse

<async> init()

初始化处理

Source:

<async> initConnect(params)

InitConnect.proto - 1001初始化连接

nodejs版本会根据返回的keepAliveInterval字段自动保持心跳连接,不再需要手动调用ft.keepLive()方法。
请求其它协议前必须等InitConnect协议先完成
若FutuOpenD配置了加密, “connAESKey”将用于后续协议加密
keepAliveInterval 为建议client发起心跳 KeepAlive 的间隔
Parameters:
Name Type Description
params object

初始化参数

Properties
Name Type Description
clientVer number

客户端版本号,clientVer = "."以前的数 100 + "."以后的,举例:1.1版本的clientVer为1 100 + 1 = 101,2.21版本为2 * 100 + 21 = 221

clientID string

客户端唯一标识,无生具体生成规则,客户端自己保证唯一性即可

recvNotify boolean

此连接是否接收市场状态、交易需要重新解锁等等事件通知,true代表接收,FutuOpenD就会向此连接推送这些通知,反之false代表不接收不推送

Source:
Returns:
Type
InitConnectResponse

<async> keepAlive()

KeepAlive.proto - 1004保活心跳

Source:
Returns:

time 服务器回包时的格林威治时间戳,单位秒

Type
number

<async> limitExecTimes(interval, times, fn)

限制接口调用频率

Parameters:
Name Type Description
interval Number

限频间隔

times Number

次数

fn function

要执行的函数

Source:

<async> qotGetBasicQot(securityList)

Qot_GetBasicQot.proto - 3004获取股票基本行情

股票结构参考 Security
基本报价结构参考 BasicQot
Parameters:
Name Type Description
securityList Array.<Security>

股票列表

Source:
Returns:

basicQotList 股票基本报价

Type
Array.<BasicQot>

<async> qotGetBroker(security)

Qot_GetBroker.proto - 3014获取经纪队列

Parameters:
Name Type Description
security Security

Object 股票

Source:
Returns:
Type
QotGetBrokerResponse

<async> qotGetHistoryKL(params)

Qot_GetHistoryKL.proto - 3100获取单只股票一段历史K线

Parameters:
Name Type Description
params object
Properties
Name Type Argument Description
rehabType RehabType

Qot_Common.RehabType,复权类型

klType KLType

Qot_Common.KLType,K线类型

security Security

股票市场以及股票代码

beginTime string

开始时间字符串

endTime string

结束时间字符串

maxAckKLNum number <optional>

最多返回多少根K线,如果未指定表示不限制

needKLFieldsFlag number <optional>

指定返回K线结构体特定某几项数据,KLFields枚举值或组合,如果未指定返回全部字段

Source:
Returns:
Type
Array.<KLine>

<async> qotGetHistoryKLPoints(params)

Qot_GetHistoryKLPoints.proto - 3101获取多只股票多点历史K线

复权类型参考 RehabType
K线类型参考 KLType
股票结构参考 Security
K线结构参考 KLine
K线字段类型参考 KLFields
目前限制最多5个时间点,股票个数不做限制,但不建议传入过多股票,查询耗时过多会导致协议返回超时。
Parameters:
Name Type Description
params object
Properties
Name Type Argument Description
rehabType RehabType

Qot_Common.RehabType,复权类型

klType KLType

Qot_Common.KLType,K线类型

noDataMode NoDataMode

NoDataMode,当请求时间点数据为空时,如何返回数据

securityList Array.<Security>

股票市场以及股票代码

timeList Array.<string>

时间字符串

maxReqSecurityNum number <optional>

最多返回多少只股票的数据,如果未指定表示不限制

needKLFieldsFlag KLFields <optional>

指定返回K线结构体特定某几项数据,KLFields枚举值或组合,如果未指定返回全部字段

Source:
Returns:
Type
Array.<SecurityHistoryKLPoints>

<async> qotGetKL(params)

Qot_GetKL.proto - 3006获取K线

复权类型参考 RehabType
K线类型参考 KLType
股票结构参考 Security
K线结构参考 KLine
请求K线目前最多最近1000根
Parameters:
Name Type Description
params object
Properties
Name Type Description
rehabType RehabType

Qot_Common.RehabType,复权类型

klType KLType

Qot_Common.KLType,K线类型

security Security

股票

reqNum number

请求K线根数

Source:
Returns:

k线点

Type
Array.<KLine>

<async> qotGetOrderBook(security, num)

Qot_GetOrderBook.proto - 3012获取买卖盘,需要先调用订阅接口

Parameters:
Name Type Default Description
security Security

股票

num number 10

请求的摆盘个数(1-10),默认10

Source:
Returns:
Type
QotGetOrderBookResponse

<async> qotGetPlateSecurity(plate)

Qot_GetPlateSecurity.proto - 3205获取板块下的股票

Parameters:
Name Type Description
plate Security

板块

Source:
Returns:

板块下的股票静态信息

Type
Array.<SecurityStaticInfo>

<async> qotGetPlateSet(market, plateSetType)

Qot_GetPlateSet.proto - 3204获取板块集合下的板块

Parameters:
Name Type Default Description
market QotMarket 1

Qot_Common.QotMarket,股票市场

plateSetType PlateSetType

Qot_Common.PlateSetType,板块集合的类型

Source:
Returns:

板块集合下的板块信息

Type
Array.<PlateInfo>

<async> qotGetReference(security [, referenceType])

Qot_GetReference.proto - 3206 获取正股相关股票

Parameters:
Name Type Argument Default Description
security security

股票

referenceType ReferenceType <optional>
1

相关类型,默认为1,获取正股相关的涡轮

Source:

<async> qotGetRehab(securityList)

Qot_GetRehab.proto - 3102获取复权信息

Parameters:
Name Type Description
securityList Array.<Security>

股票列表

Source:
Returns:

securityRehabList 多支股票的复权信息

Type
Array.<SecurityRehab>

<async> qotGetRT(security)

Qot_GetRT.proto - 3008获取分时

Parameters:
Name Type Description
security Security

股票

Source:
Returns:

分时点

Type
Array.<TimeShare>

<async> qotGetSecuritySnapShot(securityList)

Qot_GetSecuritySnapshot.proto - 3203获取股票快照

股票结构参考 Security
限频接口:30秒内最多10次
最多可传入200只股票
Parameters:
Name Type Description
securityList Array.<Security>

股票列表

Source:
Returns:

snapshotList 股票快照

Type
Array.<Snapshot>

<async> qotGetStaticInfo(market, secType)

Qot_GetStaticInfo.proto - 3202获取股票静态信息

Parameters:
Name Type Default Description
market QotMarket 1

Qot_Common.QotMarket,股票市场

secType SecurityType

Qot_Common.SecurityType,股票类型

Source:
Returns:

静态信息数组

Type
Array.<SecurityStaticInfo>

<async> qotGetSubInfo( [isReqAllConn])

Qot_GetSubInfo.proto - 3003获取订阅信息

Parameters:
Name Type Argument Default Description
isReqAllConn boolean <optional>
false

是否返回所有连接的订阅状态,默认false

Source:
Returns:
Type
QotGetSubInfoResponse

<async> qotGetTicker(security, maxRetNum)

Qot_GetTicker.proto - 3010获取逐笔

股票结构参考 Security
逐笔结构参考 Ticker
请求逐笔目前最多最近1000个
Parameters:
Name Type Default Description
security Security

股票

maxRetNum number 100

最多返回的逐笔个数,实际返回数量不一定会返回这么多,最多返回1000个,默认100

Source:
Returns:

逐笔

Type
Array.<Ticker>

<async> qotGetTradeDate(market, beginTime, endTime)

Qot_GetTradeDate.proto - 3200获取市场交易日

Parameters:
Name Type Default Description
market QotMarket 1

Qot_Common.QotMarket,股票市场

beginTime string

开始时间字符串 2018-01-01 00:00:00

endTime string

结束时间字符串 2018-02-01 00:00:00

Source:
Returns:

tradeDateList 交易日

Type
Array.<TradeDate>

<async> qotRegQotPush(params)

Qot_RegQotPush.proto - 3002注册行情推送

股票结构参考 Security
订阅数据类型参考 SubType
复权类型参考 RehabType
行情需要订阅成功才能注册推送
Parameters:
Name Type Description
params object

Object

Properties
Name Type Argument Default Description
securityList Array.<Security>

股票

subTypeList Array.<SubType>

Qot_Common.SubType,订阅数据类型

rehabTypeList Array.<SubType>

Qot_Common.RehabType,复权类型,注册K线类型才生效,其他订阅类型忽略该参数,注册K线时该参数不指定默认前复权

isRegOrUnReg boolean <optional>
true

注册或取消

isFirstPush boolean <optional>
true

注册后如果本地已有数据是否首推一次已存在数据,该参数不指定则默认true

Source:

<async> qotSub(params)

Qot_Sub.proto - 3001订阅或者反订阅

股票结构参考 Security
订阅数据类型参考 SubType
复权类型参考 RehabType
为控制定阅产生推送数据流量,股票定阅总量有额度控制,订阅规则参考 高频数据接口
高频数据接口需要订阅之后才能使用,注册推送之后才可以收到数据更新推送
Parameters:
Name Type Description
params object
Properties
Name Type Argument Default Description
securityList Array.<Security>

股票

subTypeList Array.<SubType>

Qot_Common.SubType,订阅数据类型

isSubOrUnSub boolean <optional>
true

ture表示订阅,false表示反订阅

isRegOrUnRegPush boolean <optional>
true

是否注册或反注册该连接上面行情的推送,该参数不指定不做注册反注册操作

regPushRehabTypeList number

Qot_Common.RehabType,复权类型,注册推送并且是K线类型才生效,其他订阅类型忽略该参数,注册K线推送时该参数不指定默认前复权

isFirstPush boolean <optional>
true

注册后如果本地已有数据是否首推一次已存在数据,该参数不指定则默认true

Source:

setCommonTradeHeader(trdEnv, accID [, trdMarket])

设置交易模块的公共header,调用交易相关接口前必须先调用此接口。

Parameters:
Name Type Argument Default Description
trdEnv TrdEnv 1

交易环境, 参见TrdEnv的枚举定义。0为仿真,1为真实,默认为1。

accID number

业务账号, 业务账号与交易环境、市场权限需要匹配,否则会返回错误,默认为当前userID

trdMarket TrdMarket <optional>
1

交易市场, 参见TrdMarket的枚举定义,默认为1,即香港市场。

Source:

<async> subQotUpdateBasicQot(callback)

注册股票基本报价通知,需要先调用订阅接口 Qot_UpdateBasicQot.proto - 3005推送股票基本报价

Parameters:
Name Type Description
callback function

回调

Source:
Returns:

basicQotList

Type
Array.<BasicQot>

<async> subQotUpdateBroker(callback)

注册经纪队列推送,需要先调用订阅接口 Qot_UpdateBroker.proto - 3015推送经纪队列

Parameters:
Name Type Description
callback function

回调

Source:
Returns:
Type
QotGetBrokerResponse

<async> subQotUpdateKL()

注册K线推送,需要先调用订阅接口 Qot_UpdateKL.proto - 3007推送K线

Source:
Returns:

推送的k线点

Type
QotUpdateKLResponse

<async> subQotUpdateRT()

注册分时推送,需要先调用订阅接口 Qot_UpdateRT.proto - 3009推送分时

Source:
Returns:

分时点

Type
Array.<TimeShare>

<async> subQotUpdateTicker(callback)

注册逐笔推送,需要先调用订阅接口 Qot_UpdateTicker.proto - 3011推送逐笔

Parameters:
Name Type Description
callback function

回调

Source:
Returns:

逐笔

Type
subQotUpdateTickerResponse

<async> subTrdUpdateOrder(callback)

注册订单更新通知 Trd_UpdateOrder.proto - 2208推送订单更新

Parameters:
Name Type Description
callback function

回调

Source:
Returns:

订单结构

Type
Order

<async> subTrdUpdateOrderFill(callback)

注册新成交通知 Trd_UpdateOrderFill.proto - 2218推送新成交

Parameters:
Name Type Description
callback function

回调

Source:
Returns:

成交结构

Type
OrderFill

<async> trdGetAccList()

Trd_GetAccList.proto - 2001获取交易账户列表

Source:
Returns:

交易业务账户列表

Type
Array.<TrdAcc>

<async> trdGetFunds()

Trd_GetFunds.proto - 2101获取账户资金,需要先设置交易模块公共header

Source:
Returns:
Type
Funds

<async> trdGetHistoryOrderFillList(filterConditions)

Trd_GetHistoryOrderFillList.proto - 2222获取历史成交列表

交易公共参数头结构参考 TrdHeader
成交结构参考 OrderFill
过滤条件结构参考 TrdFilterConditions
限频接口:30秒内最多10次
Parameters:
Name Type Description
filterConditions TrdFilterConditions

过滤条件

Source:
Returns:

历史成交列表

Type
Array.<OrderFill>

<async> trdGetHistoryOrderList(filterConditions, filterStatusList)

Trd_GetHistoryOrderList.proto - 2221获取历史订单列表

交易公共参数头结构参考 TrdHeader
订单结构参考 Order
过滤条件结构参考 TrdFilterConditions
订单状态枚举参考 OrderStatus
限频接口:30秒内最多10次
Parameters:
Name Type Description
filterConditions TrdFilterConditions

过滤条件

filterStatusList OrderStatus

OrderStatus, 需要过滤的订单状态列表

Source:
Returns:

历史订单列表

Type
Array.<Order>

<async> trdGetMaxTrdQtys(params)

Trd_GetMaxTrdQtys.proto - 2111获取最大交易数量

Parameters:
Name Type Description
params object
Properties
Name Type Argument Description
header TrdHeader <optional>

交易公共参数头,默认不用填写

orderType OrderType

订单类型, 参见Trd_Common.OrderType的枚举定义

code string

代码

price number <optional>

价格,3位精度(A股2位)

orderID number

订单号,新下订单不需要,如果是修改订单就需要把原订单号带上才行,因为改单的最大买卖数量会包含原订单数量。 以下为调整价格使用,目前仅对港、A股有效,因为港股有价位,A股2位精度,美股不需要

adjustPrice boolean <optional>

是否调整价格,如果价格不合法,是否调整到合法价位,true调整,false不调整

adjustSideAndLimit number <optional>

调整方向和调整幅度百分比限制,正数代表向上调整,负数代表向下调整,具体值代表调整幅度限制,如:0.015代表向上调整且幅度不超过1.5%;-0.01代表向下调整且幅度不超过1%

Source:
Returns:

最大交易数量结构体

Type
MaxTrdQtys

<async> trdGetOrderFillList(filterConditions)

Trd_GetOrderFillList.proto - 2211获取成交列表

Parameters:
Name Type Description
filterConditions TrdFilterConditions

过滤条件

Source:
Returns:

成交列表

Type
Array.<OrderFill>

<async> trdGetOrderList(filterConditions, filterStatusList)

Trd_GetOrderList.proto - 2201获取订单列表

Parameters:
Name Type Description
filterConditions TrdFilterConditions

过滤条件

filterStatusList Array.<OrderStatus>

需要过滤的订单状态列表

Source:
Returns:

订单列表

Type
Array.<Order>

<async> trdGetPositionList(filterConditions, filterPLRatioMin, filterPLRatioMax)

Trd_GetPositionList.proto - 2102获取持仓列表

Parameters:
Name Type Description
filterConditions TrdFilterConditions

过滤条件

filterPLRatioMin number

过滤盈亏比例下限,高于此比例的会返回,如0.1,返回盈亏比例大于10%的持仓

filterPLRatioMax number

过滤盈亏比例上限,低于此比例的会返回,如0.2,返回盈亏比例小于20%的持仓

Source:
Returns:

持仓列表数组

Type
Array.<Position>

<async> trdModifyOrder(params)

Trd_ModifyOrder.proto - 2205修改订单(改价、改量、改状态等)

请求包标识结构参考 PacketID
交易公共参数头结构参考 TrdHeader
修改操作枚举参考 ModifyOrderOp
限频接口:30秒内最多30次
Parameters:
Name Type Description
params object
Properties
Name Type Argument Description
packetID PacketID <optional>

交易写操作防重放攻击,默认不用填写

header TrdHeader <optional>

交易公共参数头,默认不用填写

orderID number

订单号,forAll为true时,传0

modifyOrderOp ModifyOrderOp

修改操作类型,参见Trd_Common.ModifyOrderOp的枚举定义

forAll boolean <optional>

是否对此业务账户的全部订单操作,true是,false否(对单个订单),无此字段代表false,仅对单个订单 下面的字段仅在modifyOrderOp为ModifyOrderOp_Normal有效

qty number <optional>

数量,2位精度,期权单位是"张"

price number <optional>

价格,3位精度(A股2位) 以下为调整价格使用,目前仅对港、A股有效,因为港股有价位,A股2位精度,美股不需要

adjustPrice boolean <optional>

是否调整价格,如果价格不合法,是否调整到合法价位,true调整,false不调整

adjustSideAndLimit number <optional>

调整方向和调整幅度百分比限制,正数代表向上调整,负数代表向下调整,具体值代表调整幅度限制,如:0.015代表向上调整且幅度不超过1.5%;-0.01代表向下调整且幅度不超过1%

Source:
Returns:

orderID 订单号

Type
number

<async> trdPlaceOrder(params)

Trd_PlaceOrder.proto - 2202下单

请求包标识结构参考 PacketID
交易公共参数头结构参考 TrdHeader
交易方向枚举参考 TrdSide
订单类型枚举参考 OrderType
限频接口:30秒内最多30次
Parameters:
Name Type Description
params object
Properties
Name Type Argument Description
packetID PacketID <optional>

交易写操作防重放攻击,默认不用填写

header TrdHeader <optional>

交易公共参数头,默认不用填写

trdSide TrdSide

交易方向, 参见Trd_Common.TrdSide的枚举定义

orderType OrderType

订单类型, 参见Trd_Common.OrderType的枚举定义

code string

代码

qty number

数量,2位精度,期权单位是"张"

price number <optional>

价格,3位精度(A股2位) 以下为调整价格使用,目前仅对港、A股有效,因为港股有价位,A股2位精度,美股不需要

adjustPrice boolean <optional>

是否调整价格,如果价格不合法,是否调整到合法价位,true调整,false不调整

adjustSideAndLimit number <optional>

调整方向和调整幅度百分比限制,正数代表向上调整,负数代表向下调整,具体值代表调整幅度限制,如:0.015代表向上调整且幅度不超过1.5%;-0.01代表向下调整且幅度不超过1%

Source:
Returns:

orderID 订单号

Type
number

<async> trdPlaceOrderMarket(param)

2202市价下单,直到成功为止,返回买入/卖出的总价格

Parameters:
Name Type Description
param object
params.trdSide TrdSide

交易方向, 参见Trd_Common.TrdSide的枚举定义

params.code string

代码

params.qty number

数量,2位精度,期权单位是"张"

Source:
Returns:

卖出/买入总价

Type
number

<async> trdSubAccPush(accIDList)

Trd_SubAccPush.proto - 2008订阅接收交易账户的推送数据

Parameters:
Name Type Description
accIDList Array.<number>

要接收推送数据的业务账号列表,全量非增量,即使用者请每次传需要接收推送数据的所有业务账号

Source:

<async> trdUnlockTrade( [unlock] [, pwdMD5])

Trd_UnlockTrade.proto - 2005解锁或锁定交易

除2001协议外,所有交易协议请求都需要FutuOpenD先解锁交易
密码MD5方式获取请参考 FutuOpenD配置 内的login_pwd_md5字段
解锁或锁定交易针对与FutuOpenD,只要有一个连接解锁,其他连接都可以调用交易接口
强烈建议有实盘交易的用户使用加密通道,参考 加密通信流程
限频接口:30秒内最多10次
Parameters:
Name Type Argument Default Description
unlock boolean <optional>
true

true解锁交易,false锁定交易,默认true

pwdMD5 string <optional>

交易密码的MD5转16进制(全小写),解锁交易必须要填密码,锁定交易不需要验证密码,可不填

Source:

<async> unsubTrdUpdateOrder()

取消注册订单更新通知 Trd_UpdateOrder.proto - 2208推送订单更新

Source: