huobi

package
v0.0.0-...-d95647c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2019 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ConnectionClosedError = fmt.Errorf("websocket connection closed")

ConnectionClosedError Websocket未连接错误

View Source
var Endpoint = "wss://api.huobi.pro/ws"

Endpoint 行情的Websocket入口

Functions

func MapSortByKey

func MapSortByKey(mapValue map[string]string) map[string]string

对Map按着ASCII码进行排序 mapValue: 需要进行排序的map return: 排序后的map

Types

type Account

type Account struct {
	ID     int64
	Type   string
	State  string
	UserID int64
}

type AccountsData

type AccountsData struct {
	ID     int64  `json:"id"`      // Account ID
	Type   string `json:"type"`    // 账户类型, spot: 现货账户
	State  string `json:"state"`   // 账户状态, working: 正常, lock: 账户被锁定
	UserID int64  `json:"user-id"` // 用户ID
}

type AccountsReturn

type AccountsReturn struct {
	Status  string         `json:"status"` // 请求状态
	Data    []AccountsData `json:"data"`   // 用户数据
	ErrCode string         `json:"err-code"`
	ErrMsg  string         `json:"err-msg"`
}

type Balance

type Balance struct {
	ID     int64        `json:"id"`    // 账户ID
	State  string       `json:"state"` // 账户状态, working: 正常, lock: 账户被锁定
	Type   string       `json:"type"`  // 账户类型, spot: 现货账户
	List   []SubAccount `json:"list"`  // 子账户数组
	UserID int64        `json:"user-id"`
}

type BalanceReturn

type BalanceReturn struct {
	Status  string  `json:"status"` // 请求状态
	Data    Balance `json:"data"`   // 账户余额
	ErrCode string  `json:"err-code"`
	ErrMsg  string  `json:"err-msg"`
}

type DepthlListener

type DepthlListener func(symbol string, depth *MarketDepth)

Listener 订阅事件监听器

type DetailListener

type DetailListener func(symbol string, detail *MarketTradeDetail)

Listener 订阅事件监听器

type Huobi

type Huobi struct {
	// contains filtered or unexported fields
}

func NewHuobi

func NewHuobi(accesskey, secretkey string) (*Huobi, error)

NewHuobi :

func (*Huobi) ApplyLoan

func (h *Huobi) ApplyLoan(symbol, currency string, amount float64) (err error)

ApplyLoan :

func (*Huobi) CloseWebsocket

func (h *Huobi) CloseWebsocket() error

func (*Huobi) GetAccountBalance

func (h *Huobi) GetAccountBalance() ([]proto.AccountBalance, error)

GetAccountBalance : 根据账户ID查询账户余额 return: BalanceReturn对象

func (*Huobi) GetAccounts

func (h *Huobi) GetAccounts() (AccountsReturn, error)

GetAccounts : 查询当前用户的所有账户, 根据包含的私钥查询 return: AccountsReturn对象

func (*Huobi) GetExchangeType

func (h *Huobi) GetExchangeType() string

func (*Huobi) GetKLines

func (h *Huobi) GetKLines(symbol, period string, size int) (kl RespGetKLines, err error)

查询当前用户的K线数据

func (*Huobi) GetMarginBalances

func (h *Huobi) GetMarginBalances(baseSym string) ([]MarginBalance, error)

GetMarginBalances : 根据账户ID查询账户余额

func (*Huobi) GetMarginLoanOrders

func (h *Huobi) GetMarginLoanOrders(params map[string]string) ([]LoanOrder, error)

GetMarginLoanOrders : 参数名称 是否必须 类型 描述 默认值 取值范围 symbol true string 交易对 start-date false string 查询开始日期, 日期格式yyyy-mm-dd end-date false string 查询结束日期, 日期格式yyyy-mm-dd states false string 状态 from false string 查询起始 ID direct false string 查询方向 prev 向前,next 向后 size false string 查询记录大小 只需要"symbol":"xxxxxx"和 "states":"accrual", 其他应该都不需要

func (*Huobi) GetOpenOrders

func (h *Huobi) GetOpenOrders(params *proto.OrdersParams) ([]proto.Order, error)

GetOpenOrders :

func (*Huobi) GetOrderInfo

func (h *Huobi) GetOrderInfo(params *proto.OrderInfoParams) (*proto.Order, error)

查询订单详情 strOrderID: 订单ID return: OrderReturn对象

func (*Huobi) GetOrders

func (h *Huobi) GetOrders(params *proto.OrdersParams) ([]proto.Order, error)

GetOrders :

func (*Huobi) GetPointOrders

func (h *Huobi) GetPointOrders() (*proto.Order, error)

查询订单详情 strOrderID: 订单ID return: OrderReturn对象

func (*Huobi) GetSymbols

func (h *Huobi) GetSymbols() (descs []SymbolDesc, err error)

GetSymbols :

func (*Huobi) GetTickers

func (h *Huobi) GetTickers() (tickerMap map[string]*TickData, err error)

GetTickers :

func (*Huobi) MarginIO

func (h *Huobi) MarginIO(symbol, currency string, dirIn bool, amount float64) error

MarginIO :

func (*Huobi) OpenWebsocket

func (h *Huobi) OpenWebsocket() error

func (*Huobi) OrderCancel

func (h *Huobi) OrderCancel(params *proto.OrderCancelParams) error

OrderCancel : 申请撤销一个订单请求 strOrderID: 订单ID return: PlaceReturn对象

func (*Huobi) OrderPlace

func (h *Huobi) OrderPlace(params *proto.OrderPlaceParams) (*proto.OrderPlaceReturn, error)

OrderPlace :下单 placeRequestParams: 下单信息 return: OrderID

func (*Huobi) RepayLoan

func (h *Huobi) RepayLoan(loanID int, amount string) (err error)

RepayLoan :

func (*Huobi) SetDepthlListener

func (h *Huobi) SetDepthlListener(listener DepthlListener)

func (*Huobi) SetDetailListener

func (h *Huobi) SetDetailListener(listener DetailListener)

func (*Huobi) SetKLineUpListener

func (h *Huobi) SetKLineUpListener(listener KLineUpListener)

func (*Huobi) SetOrderListener

func (h *Huobi) SetOrderListener(listener OrderListener)

func (*Huobi) SubscribeDepth

func (h *Huobi) SubscribeDepth(symbols ...string)

func (*Huobi) SubscribeDetail

func (h *Huobi) SubscribeDetail(symbols ...string) (err error)

func (*Huobi) SubscribeKLine

func (h *Huobi) SubscribeKLine(period string, symbols ...string) error

SubscribeKLine :

func (*Huobi) SubscribeOrder

func (h *Huobi) SubscribeOrder(symbols ...string) (err error)

SubscribeOrder :

type KLine

type KLine struct {
	ID     int     `json:"id"`
	Open   float64 `json:"open"`
	Close  float64 `json:"close"`
	Low    float64 `json:"low"`
	High   float64 `json:"high"`
	Amount float64 `json:"amount"`
	Vol    float64 `json:"vol"`
	Count  int     `json:"count"`
}

type KLineUpListener

type KLineUpListener func(symbol string, kline *KLineUpdate)

KLineUpListener :

type KLineUpdate

type KLineUpdate struct {
	Ch    string `json:"ch"`
	Ts    int64  `json:"ts"`
	Kline KLine  `json:"tick"`
}

type Listener

type Listener func(topic string, json *simplejson.Json)

Listener 订阅事件监听器

type LoanOrder

type LoanOrder struct {
	AccountID       int     `json:"account-id"`
	AccruedAt       int     `json:"accrued-at"`
	CreatedAt       int     `json:"created-at"`
	Currency        string  `json:"currency"`
	ID              int     `json:"id"`
	InterestAmount  string  `json:"interest-amount"`
	InterestBalance float64 `json:"interest-balance,string"`
	InterestRate    string  `json:"interest-rate"`
	LoanAmount      string  `json:"loan-amount"`
	LoanBalance     float64 `json:"loan-balance,string"`
	State           string  `json:"state"`
	Symbol          string  `json:"symbol"`
	UserID          int     `json:"user-id"`
}

LoanOrder :

type LoanOrderResp

type LoanOrderResp struct {
	Orders []LoanOrder `json:"data"`
	Status string      `json:"status"`
}

LoanOrderResp :

type MarginBalance

type MarginBalance struct {
	FlPrice  string              `json:"fl-price"`
	FlType   string              `json:"fl-type"`
	ID       int                 `json:"id"`
	List     []MarginBalanceItem `json:"list"`
	RiskRate string              `json:"risk-rate"`
	State    string              `json:"state"`
	Symbol   string              `json:"symbol"`
	Type     string              `json:"type"`
}

MarginBalance :

func (*MarginBalance) FindMBItem

func (mb *MarginBalance) FindMBItem(currency, tp string) *MarginBalanceItem

FindMBItem :

type MarginBalanceItem

type MarginBalanceItem struct {
	Balance  float64 `json:"balance,string"`
	Currency string  `json:"currency"`
	Type     string  `json:"type"`
}

MarginBalanceItem :

type MarginBalanceResp

type MarginBalanceResp struct {
	Balances []MarginBalance `json:"data"`
	Status   string          `json:"status"`
}

MarginBalanceResp :

type Market

type Market struct {

	// 主动发送心跳的时间间隔,默认5秒
	HeartbeatInterval time.Duration
	// 接收消息超时时间,默认10秒
	ReceiveTimeout time.Duration
	// contains filtered or unexported fields
}

func NewMarket

func NewMarket() (m *Market, err error)

NewMarket 创建Market实例

func (*Market) Close

func (m *Market) Close() error

Close 关闭连接

func (*Market) Loop

func (m *Market) Loop()

Loop 进入循环

func (*Market) ReConnect

func (m *Market) ReConnect() (err error)

ReConnect 重新连接

func (*Market) Request

func (m *Market) Request(req string) (*simplejson.Json, error)

Request 请求行情信息

func (*Market) Subscribe

func (m *Market) Subscribe(topic string, listener Listener) error

Subscribe 订阅

func (*Market) SubscribeEx

func (m *Market) SubscribeEx(topic string, data interface{}, listener Listener) error

SubscribeEx : 订阅

func (*Market) Unsubscribe

func (m *Market) Unsubscribe(topic string)

Unsubscribe 取消订阅

type MarketDepth

type MarketDepth struct {
	Ch   string `json:"ch"`
	Tick struct {
		Asks [][]float64 `json:"asks"`
		Bids [][]float64 `json:"bids"`
		TS   int64       `json:"ts"`
	} `json:"tick"`
}

type MarketTradeDetail

type MarketTradeDetail struct {
	Ch   string `json:"ch"`
	Tick struct {
		Data []TickData `json:"data"`
	} `json:"tick"`
}

MarketTradeDetail :

func (*MarketTradeDetail) String

func (m *MarketTradeDetail) String() string

type OpenOrder

type OpenOrder struct {
	ID               int     `json:"id"`
	Symbol           string  `json:"symbol"`
	AccountID        int     `json:"account-id"`
	Amount           float64 `json:"amount,string"`
	Price            float64 `json:"price,string"`
	CreatedSec       int64   `json:"created-at"`
	Type             string  `json:"type"`
	FilledAmount     float64 `json:"filled-amount,string"`
	FilledCashAmount float64 `json:"filled-cash-amount,string"`
	FilledFees       float64 `json:"filled-fees,string"`
	Source           string  `json:"source"`
	State            string  `json:"state"`
}

type OpenOrdersReturn

type OpenOrdersReturn struct {
	Status string      `json:"status"`
	Data   []OpenOrder `json:"data"`
}

type Order

type Order struct {
	ID          int64  `json:"id"`
	Symbol      string `json:"symbol"`
	State       string `json:"state"`
	Amount      string `json:"amount"`
	FieldAmount string `json:"field-amount"`
	Price       string `json:"price"`
	Type        string `json:"type"`
	CreatedSec  int64  `json:"created-at"`
}

type OrderListener

type OrderListener func(symbol string, od *OrderUpdate)

OrderListener : 订阅事件监听器

type OrderReturn

type OrderReturn struct {
	Status  string `json:"status"`
	Data    Order  `json:"data"`
	ErrCode string `json:"err-code"`
	ErrMsg  string `json:"err-msg"`
}

type OrderUpdate

type OrderUpdate struct {
	OP    string `json:"op"`
	Topic string `json:"topic"`

	Order OrderUpdateData `json:"data"`
	// contains filtered or unexported fields
}

OrderUpdate :

type OrderUpdateData

type OrderUpdateData struct {
	AccountID        int    `json:"account-id"`
	CreatedAt        int    `json:"created-at"`
	FilledAmount     string `json:"filled-amount"`
	FilledCashAmount string `json:"filled-cash-amount"`
	FilledFees       string `json:"filled-fees"`
	OrderAmount      string `json:"order-amount"`
	OrderID          int    `json:"order-id"`
	OrderPrice       string `json:"order-price"`
	OrderSource      string `json:"order-source"`
	OrderState       string `json:"order-state"`
	OrderType        string `json:"order-type"`
	Price            string `json:"price"`
	Role             string `json:"role"`
	SeqID            int    `json:"seq-id"`
	Symbol           string `json:"symbol"`
	UnfilledAmount   string `json:"unfilled-amount"`
}

OrderUpdateData :

type OrdersRequestParams

type OrdersRequestParams struct {
	Symbol string `json:"symbol"`
	States string `json:"states"`
}

type OrdersReturn

type OrdersReturn struct {
	Status  string  `json:"status"`
	Data    []Order `json:"data"`
	ErrCode string  `json:"err-code"`
	ErrMsg  string  `json:"err-msg"`
}

type PlaceRequestParams

type PlaceRequestParams struct {
	AccountID string `json:"account-id"` // 账户ID
	Amount    string `json:"amount"`     // 限价表示下单数量, 市价买单时表示买多少钱, 市价卖单时表示卖多少币
	Price     string `json:"price"`      // 下单价格, 市价单不传该参数
	Source    string `json:"source"`     // 订单来源, api: API调用, margin-api: 借贷资产交易
	Symbol    string `json:"symbol"`     // 交易对, btcusdt, bccbtc......
	Type      string `json:"type"`       // 订单类型, buy-market: 市价买, sell-market: 市价卖, buy-limit: 限价买, sell-limit: 限价卖
}

type PlaceReturn

type PlaceReturn struct {
	Status  string `json:"status"`
	Data    string `json:"data"`
	ErrCode string `json:"err-code"`
	ErrMsg  string `json:"err-msg"`
}

type RespGetKLines

type RespGetKLines struct {
	Status string  `json:"status"`
	Ch     string  `json:"ch"`
	Ts     int64   `json:"ts"`
	KLines []KLine `json:"data"`
}

type SubAccount

type SubAccount struct {
	Currency string  `json:"currency"`       // 币种
	Balance  float64 `json:"balance,string"` // 结余
	Type     string  `json:"type"`           // 类型, trade: 交易余额, frozen: 冻结余额
}

子账户结构

type SymbolDesc

type SymbolDesc struct {
	BaseCurrency    string `json:"base-currency"`
	QuoteCurrency   string `json:"quote-currency"`
	PricePrecision  int    `json:"price-precision"`
	AmountPrecision int    `json:"amount-precision"`
	SymbolPartition string `json:"symbol-partition"`
	Symbol          string `json:"symbol"`
}

SymbolDesc :

type TickData

type TickData struct {
	Amount    float64 `json:"amount"`
	Direction string  `json:"direction"`
	Price     float64 `json:"price"`
	TS        int64   `json:"ts"`
}

TickData :

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL