hbdmlinearswap

package
v0.0.0-...-2b7de2f Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2024 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountInfo

type AccountInfo struct {
	Symbol            string  `json:"symbol"`
	MarginBalance     float64 `json:"margin_balance"`
	MarginPosition    float64 `json:"margin_position"`
	MarginFrozen      float64 `json:"margin_frozen"`
	MarginAvailable   float64 `json:"margin_available"`
	ProfitReal        float64 `json:"profit_real"`
	ProfitUnreal      float64 `json:"profit_unreal"`
	RiskRate          float64 `json:"risk_rate"` //*interface{}
	WithdrawAvailable float64 `json:"withdraw_available"`
	LiquidationPrice  float64 `json:"liquidation_price"` //*interface{}
	LeverRate         float64 `json:"lever_rate"`
	AdjustFactor      float64 `json:"adjust_factor"`
	MarginStatic      float64 `json:"margin_static"`
	ContractCode      string  `json:"contract_code"`
}

type AccountInfoResult

type AccountInfoResult struct {
	Status  string        `json:"status"` // "ok" , "error"
	ErrCode int           `json:"err_code"`
	ErrMsg  string        `json:"err_msg"`
	Data    []AccountInfo `json:"data"`
	Ts      int64         `json:"ts"`
}

type ApiParameter

type ApiParameter struct {
	Debug              bool
	AccessKey          string
	SecretKey          string
	EnablePrivateSign  bool
	BaseURL            string
	PrivateKeyPrime256 string
	HttpClient         *http.Client
	ProxyURL           string
}

type BBoResult

type BBoResult struct {
	Status string `json:"status"`
	Ticks  []struct {
		ContractCode string    `json:"contract_code"`
		Ask          []float64 `json:"ask"`
		Bid          []float64 `json:"bid"`
		Mrid         int64     `json:"mrid"`
		Ts           int64     `json:"ts"`
	} `json:"ticks"`
	Ts int64 `json:"ts"`
}

type BalanceValuation

type BalanceValuation struct {
	ValuationAsset string `json:"valuation_asset"`
	Balance        string `json:"balance"`
}

type BalanceValuationResult

type BalanceValuationResult struct {
	Status  string             `json:"status"` // "ok" , "error"
	ErrCode int                `json:"err_code"`
	ErrMsg  string             `json:"err_msg"`
	Data    []BalanceValuation `json:"data"`
	Ts      int64              `json:"ts"`
}

type CancelData

type CancelData struct {
	Errors    []CancelError `json:"errors"`
	Successes string        `json:"successes"`
}

type CancelError

type CancelError struct {
	OrderID string `json:"order_id"`
	ErrCode int    `json:"err_code"`
	ErrMsg  string `json:"err_msg"`
}

type CancelResult

type CancelResult struct {
	Status  string     `json:"status"`
	ErrCode int        `json:"err_code"`
	ErrMsg  string     `json:"err_msg"`
	Data    CancelData `json:"data"`
	Ts      int64      `json:"ts"`
}

type Client

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

func NewClient

func NewClient(params *ApiParameter) *Client

func (*Client) Cancel

func (c *Client) Cancel(contractCode string, orderID int64, clientOrderID int64) (result CancelResult, err error)

* Cancel 撤销订单

func (*Client) CancelAll

func (c *Client) CancelAll(contractCode string) (result CancelResult, err error)

func (*Client) CrossCancel

func (c *Client) CrossCancel(contractCode string, orderID int64, clientOrderID int64) (result CancelResult, err error)

func (*Client) CrossCancelAll

func (c *Client) CrossCancelAll(contractCode string) (result CancelResult, err error)

func (*Client) CrossOrder

func (c *Client) CrossOrder(contractCode string, clientOrderID int64, price float64,
	volume float64, direction string, offset string, leverRate int, orderPriceType string) (result OrderResult, err error)

func (*Client) CrossOrderBatch

func (c *Client) CrossOrderBatch(contractCode string, clientOrderID int64, price float64,
	volume float64, direction string, offset string, leverRate int, orderPriceType string) (result OrderResult, err error)

func (*Client) GetAccountInfo

func (c *Client) GetAccountInfo(contractCode string) (result AccountInfoResult, err error)

GetAccountInfo 获取用户账户信息

func (*Client) GetBalanceValuation

func (c *Client) GetBalanceValuation(coin string) (result BalanceValuationResult, err error)

【通用】获取账户总资产估值

func (*Client) GetBbo

func (c *Client) GetBbo(symbol string) (result BBoResult, err error)

func (*Client) GetContractInfo

func (c *Client) GetContractInfo(contractCode string, contractType string) (result ContractInfoResult, err error)

func (*Client) GetCorssOpenOrders

func (c *Client) GetCorssOpenOrders(contractCode string, pageIndex int, pageSize int) (result OpenOrdersResult, err error)

GetOpenOrders 获取合约当前未成交委托单 page_index: 1,2,3...

func (*Client) GetCorssPositionInfo

func (c *Client) GetCorssPositionInfo(contractCode string) (result PositionInfoResult, err error)

GetPositionInfo 用户持仓信息

func (*Client) GetCrossAccountInfo

func (c *Client) GetCrossAccountInfo(contractCode string) (result AccountInfoResult, err error)

GetAccountInfo 获取用户账户信息

func (*Client) GetCrossHisOrders

func (c *Client) GetCrossHisOrders(contractCode string, tradeType int, _type int, status int, createDate int,
	pageIndex int, pageSize int) (result HisOrdersResult, err error)

func (*Client) GetCrossMatchResults

func (c *Client) GetCrossMatchResults(contractCode string, tradeType int, createDate int, pageIndex int, pageSize int) (result HisOrdersResult, err error)

func (*Client) GetCrossUserSettlementRecords

func (c *Client) GetCrossUserSettlementRecords(marginAccount string, startTime int64, endTime int64) (result UserSettlementRecordsInfo, err error)

func (*Client) GetHisOrders

func (c *Client) GetHisOrders(contractCode string, tradeType int, _type int, status int, createDate int,
	pageIndex int, pageSize int) (result HisOrdersResult, err error)

GetHisOrders 获取合约历史委托

func (*Client) GetKLine

func (c *Client) GetKLine(symbol string, period string, size int, from int64, to int64) (result KLineResult, err error)

func (*Client) GetMarketDepth

func (c *Client) GetMarketDepth(contractCode string, _type string) (result MarketDepthResult, err error)

GetMarketDepth 获取行情深度数据 step0-150档 step6-20档 (150档数据) step0, step1, step2, step3, step4, step5(合并深度1-5);step0时,不合并深度, (20档数据) step6, step7, step8, step9, step10, step11(合并深度7-11);step6时,不合并深度

func (*Client) GetMatchResults

func (c *Client) GetMatchResults(contractCode string, tradeType int, createDate int, pageIndex int, pageSize int) (result HisOrdersResult, err error)

func (*Client) GetOpenOrders

func (c *Client) GetOpenOrders(contractCode string, pageIndex int, pageSize int) (result OpenOrdersResult, err error)

GetOpenOrders 获取合约当前未成交委托单 page_index: 1,2,3...

func (*Client) GetPositionInfo

func (c *Client) GetPositionInfo(contractCode string) (result PositionInfoResult, err error)

GetPositionInfo 用户持仓信息

func (*Client) GetSubCrossPositionInfo

func (c *Client) GetSubCrossPositionInfo(contractCode string, subUId string) (result PositionInfoResult, err error)

GetPositionInfo 用户持仓信息

func (*Client) GetSubPositionInfo

func (c *Client) GetSubPositionInfo(contractCode string, subId string) (result PositionInfoResult, err error)

GetPositionInfo 用户持仓信息

func (*Client) GetSwapFinancialRecord

func (c *Client) GetSwapFinancialRecord(marginAccount string, contractCode string, nType string, createDate int, pageIndex int, pageSize int) (result SwapFinancialRecordInfo, err error)

func (*Client) GetV3SwapFinancialRecord

func (c *Client) GetV3SwapFinancialRecord(marginAccount string, contractCode string, nType string, startTime int64, endTime int64, direct string, fromID int) (result SwapV3FinancialRecordInfo, err error)

func (*Client) Heartbeat

func (c *Client) Heartbeat() (result HeartbeatResult, err error)

func (*Client) LightningClosePosition

func (c *Client) LightningClosePosition(contractCode string, volume int,
	direction string, clientOrderID int64, orderPriceType string) (result LightningClosePositionResult, err error)

LightningClosePosition 闪电平仓下单

func (*Client) LightningCrossClosePosition

func (c *Client) LightningCrossClosePosition(contractCode string, volume float64,
	direction string, clientOrderID int64, orderPriceType string) (result LightningClosePositionResult, err error)

func (*Client) Order

func (c *Client) Order(contractCode string, clientOrderID int64, price float64,
	volume float64, direction string, offset string, leverRate int, orderPriceType string) (result OrderResult, err error)

Order 合约下单

contract_code: BTC-USD direction: "buy":买 "sell":卖 offset string true "open":开 "close":平 orderPriceType: 订单报价类型 "limit":限价 "opponent":对手价 "post_only":只做maker单,post only下单只受用户持仓数量限制,optimal_5:最优5档、optimal_10:最优10档、optimal_20:最优20档,"fok":FOK订单,"ioc":IOC订单, opponent_ioc": 对手价-IOC下单,"optimal_5_ioc":最优5档-IOC下单,"optimal_10_ioc":最优10档-IOC下单,"optimal_20_ioc":最优20档-IOC下单,"opponent_fok": 对手价-FOK下单,"optimal_5_fok":最优5档-FOK下单,"optimal_10_fok":最优10档-FOK下单,"optimal_20_fok":最优20档-FOK下单

func (*Client) OrderCrossDetail

func (c *Client) OrderCrossDetail(contractCode string, orderID string) (result OrderDetailResult, err error)

OrderCrossDetail 订单详情

func (*Client) OrderCrossInfo

func (c *Client) OrderCrossInfo(contractCode string, orderID string, clientOrderID int64) (result OrderInfoResult, err error)

func (*Client) OrderInfo

func (c *Client) OrderInfo(contractCode string, orderID int64, clientOrderID int64) (result OrderInfoResult, err error)

* OrderInfo 获取合约订单信息

type ContraceInfo

type ContraceInfo struct {
	Symbol            string  `json:"symbol"`
	ContractCode      string  `json:"contract_code"`
	ContractSize      float64 `json:"contract_size"`
	PriceTick         float64 `json:"price_tick"`
	DeliveryDate      string  `json:"delivery_date"`
	DeliveryTime      string  `json:"delivery_time"`
	CreateDate        string  `json:"create_date"`
	ContractStatus    int     `json:"contract_status"`
	SettlementDate    string  `json:"settlement_date"`
	SupportMarginMode string  `json:"support_margin_mode"`
	BusinessType      string  `json:"business_type"`
	Pair              string  `json:"pair"`
	ContractType      string  `json:"contract_type"`
}

type ContractInfoResult

type ContractInfoResult struct {
	Status string         `json:"status"`
	Data   []ContraceInfo `json:"data"`
	Ts     int64          `json:"ts"`
}

type Heartbeat

type Heartbeat struct {
	Heartbeat                 int         `json:"heartbeat"`
	EstimatedRecoveryTime     interface{} `json:"estimated_recovery_time"`
	SwapHeartbeat             int         `json:"swap_heartbeat"`
	SwapEstimatedRecoveryTime interface{} `json:"swap_estimated_recovery_time"`
}

type HeartbeatResult

type HeartbeatResult struct {
	Status string    `json:"status"`
	Data   Heartbeat `json:"data"`
	Ts     int64     `json:"ts"`
}

type HisOrdersData

type HisOrdersData struct {
	Orders      []Order `json:"orders"`
	TotalPage   int     `json:"total_page"`
	CurrentPage int     `json:"current_page"`
	TotalSize   int     `json:"total_size"`
}

type HisOrdersResult

type HisOrdersResult struct {
	Status  string        `json:"status"`
	ErrCode int           `json:"err_code"`
	ErrMsg  string        `json:"err_msg"`
	Data    HisOrdersData `json:"data"`
	Ts      int64         `json:"ts"`
}

type KLine

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

type KLineResult

type KLineResult struct {
	Ch      string  `json:"ch"`
	Data    []KLine `json:"data"`
	Status  string  `json:"status"`
	ErrCode int     `json:"err_code"`
	ErrMsg  string  `json:"err_msg"`
	Ts      int64   `json:"ts"`
}

type LightningClosePositionResult

type LightningClosePositionResult struct {
	Status  string    `json:"status"`
	ErrCode int       `json:"err_code"`
	ErrMsg  string    `json:"err_msg"`
	Data    OrderData `json:"data"`
	Ts      int64     `json:"ts"`
}

type MarketDepthResult

type MarketDepthResult struct {
	Ch      string `json:"ch"`
	Status  string `json:"status"`
	ErrCode int    `json:"err_code"`
	ErrMsg  string `json:"err_msg"`
	Tick    Tick   `json:"tick"`
	Ts      int64  `json:"ts"`
}

type NWS

type NWS struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

NWS WebSocket 订单和用户数据接口

func NewNWS

func NewNWS(wsURL string, accessKey string, secretKey string) *NWS

NewNWS 创建 NWS wsURL: 正式地址 wss://api.hbdm.com/swap-notification 开发地址 wss://api.btcgateway.pro/swap-notification

func (*NWS) Login

func (ws *NWS) Login() error

Login 授权接口

func (*NWS) SetAccountsCallback

func (ws *NWS) SetAccountsCallback(callback func(accounts *WSAccounts))

func (*NWS) SetLiquidationOrdersCallback

func (ws *NWS) SetLiquidationOrdersCallback(callback func(liquidationOrders *WSLiquidationOrders))

func (*NWS) SetOrdersCallback

func (ws *NWS) SetOrdersCallback(callback func(order *WSOrder))

func (*NWS) SetPositionsCallback

func (ws *NWS) SetPositionsCallback(callback func(positions *WSPositions))

func (*NWS) SetProxy

func (ws *NWS) SetProxy(proxyURL string) (err error)

SetProxy 设置代理地址 porxyURL: socks5://127.0.0.1:1080 https://127.0.0.1:1080

func (*NWS) Start

func (ws *NWS) Start()

func (*NWS) Subscribe

func (ws *NWS) Subscribe(id string, ch map[string]interface{}) error

Subscribe 订阅

func (*NWS) SubscribeAccounts

func (ws *NWS) SubscribeAccounts(id string, symbol string)

SubscribeAccounts 订阅资产变动数据 symbol: BTC-USD

func (*NWS) SubscribeLiquidationOrders

func (ws *NWS) SubscribeLiquidationOrders(id string, symbol string)

SubscribeLiquidationOrders 订阅强平订单数据 symbol: BTC-USD

func (*NWS) SubscribeOrders

func (ws *NWS) SubscribeOrders(id string, symbol string)

SubscribeOrders 订阅订单成交数据 symbol: BTC-USD

func (*NWS) SubscribePositions

func (ws *NWS) SubscribePositions(id string, symbol string)

SubscribePositions 订阅持仓变动更新数据 symbol: BTC-USD

func (*NWS) SubscribeTopic

func (ws *NWS) SubscribeTopic(id string, topic string)

SubscribeTopic 订阅

func (*NWS) Unsubscribe

func (ws *NWS) Unsubscribe(id string) error

Unsubscribe 取消订阅

type OpenOrdersData

type OpenOrdersData struct {
	Orders      []Order `json:"orders"`
	TotalPage   int     `json:"total_page"`
	CurrentPage int     `json:"current_page"`
	TotalSize   int     `json:"total_size"`
}

type OpenOrdersResult

type OpenOrdersResult struct {
	Status  string         `json:"status"`
	ErrCode int            `json:"err_code"`
	ErrMsg  string         `json:"err_msg"`
	Data    OpenOrdersData `json:"data"`
	Ts      int64          `json:"ts"`
}

type Order

type Order struct {
	Symbol            string           `json:"symbol"`
	ContractCode      string           `json:"contract_code"`
	Volume            float64          `json:"volume"`
	Price             float64          `json:"price"`
	OrderPriceTypeRaw sjson.RawMessage `json:"order_price_type"` // 1限价单,3对手价,4闪电平仓,5计划委托,6post_only
	OrderType         any              `json:"order_type"`
	Direction         string           `json:"direction"`
	Offset            string           `json:"offset"`
	LeverRate         int              `json:"lever_rate"`
	OrderID           int64            `json:"order_id"`
	ClientOrderID     int64            `json:"client_order_id"`
	CreatedAt         int64            `json:"created_at"`
	TradeVolume       float64          `json:"trade_volume"`
	TradeTurnover     float64          `json:"trade_turnover"`
	Fee               float64          `json:"fee"`
	TradeAvgPrice     float64          `json:"trade_avg_price"`
	MarginFrozen      float64          `json:"margin_frozen"`
	Profit            decimal.Decimal  `json:"profit"`
	Status            int              `json:"status"`
	OrderSource       string           `json:"order_source"`
	OrderIDStr        string           `json:"order_id_str"`
	FeeAsset          string           `json:"fee_asset"`
	CreateDate        int64            `json:"create_date"`
	RealProfit        decimal.Decimal  `json:"real_profit"`
}

func (*Order) OrderPriceType

func (o *Order) OrderPriceType() string

type OrderData

type OrderData struct {
	OrderID       int64  `json:"order_id"`
	OrderIDStr    string `json:"order_id_str"`
	ClientOrderID int64  `json:"client_order_id"`
}

type OrderDetailResult

type OrderDetailResult struct {
	Status  string `json:"status"`
	ErrCode int    `json:"err_code"`
	ErrMsg  string `json:"err_msg"`
	Data    *Order `json:"data"`
	Ts      int64  `json:"ts"`
}

type OrderInfoResult

type OrderInfoResult struct {
	Status  string  `json:"status"`
	ErrCode int     `json:"err_code"`
	ErrMsg  string  `json:"err_msg"`
	Data    []Order `json:"data"`
	Ts      int64   `json:"ts"`
}

type OrderResult

type OrderResult struct {
	Status  string    `json:"status"`
	ErrCode int       `json:"err_code"`
	ErrMsg  string    `json:"err_msg"`
	Data    OrderData `json:"data"`
	Ts      int64     `json:"ts"`
}

type Position

type Position struct {
	Symbol         string  `json:"symbol"`
	ContractCode   string  `json:"contract_code"`
	Volume         float64 `json:"volume"`
	Available      float64 `json:"available"`
	Frozen         float64 `json:"frozen"`
	CostOpen       float64 `json:"cost_open"`
	CostHold       float64 `json:"cost_hold"`
	ProfitUnreal   float64 `json:"profit_unreal"`
	ProfitRate     float64 `json:"profit_rate"`
	Profit         float64 `json:"profit"`
	PositionMargin float64 `json:"position_margin"`
	LeverRate      int     `json:"lever_rate"`
	Direction      string  `json:"direction"` // "buy":买 "sell":卖
	LastPrice      float64 `json:"last_price"`
}

type PositionInfoResult

type PositionInfoResult struct {
	Status  string     `json:"status"`
	ErrCode int        `json:"err_code"`
	ErrMsg  string     `json:"err_msg"`
	Data    []Position `json:"data"`
	Ts      int64      `json:"ts"`
}

type SwapFinancialRecordInfo

type SwapFinancialRecordInfo struct {
	Status  string `json:"status"`
	ErrCode int    `json:"err_code"`
	ErrMsg  string `json:"err_msg"`
	Ts      int64  `json:"ts"`
	Data    struct {
		TotalPage       int `json:"total_page"`
		CurrentPage     int `json:"current_page"`
		TotalSize       int `json:"total_size"`
		FinancialRecord []struct {
			Id                int     `json:"id"`
			Type              int     `json:"type"`
			Amount            float64 `json:"amount"`
			Ts                int64   `json:"ts"`
			ContractCode      string  `json:"contract_code"`
			Asset             string  `json:"asset"`
			MarginAccount     string  `json:"margin_account"`
			FaceMarginAccount string  `json:"face_margin_account"`
			TradePartition    string  `json:"trade_partition"`
		} `json:"financial_record"`
	} `json:"data"`
}

type SwapV3FinancialRecordInfo

type SwapV3FinancialRecordInfo struct {
	Code int    `json:"code"`
	Msg  string `json:"msg"`
	Ts   int64  `json:"ts"`
	Data []struct {
		Id                int     `json:"id"`
		Amount            float64 `json:"amount"`
		Asset             string  `json:"asset"`
		QueryId           int     `json:"query_id"`
		Type              int     `json:"type"`
		Ts                int64   `json:"ts"`
		ContractCode      string  `json:"contract_code"`
		MarginAccount     string  `json:"margin_account"`
		FaceMarginAccount string  `json:"face_margin_account"`
		TradePartition    string  `json:"trade_partition"`
	} `json:"data"`
}

type Tick

type Tick struct {
	Asks    [][]float64 `json:"asks"`
	Bids    [][]float64 `json:"bids"`
	Ch      string      `json:"ch"`
	ID      int64       `json:"id"`
	MrID    int64       `json:"mrid"`
	Ts      int64       `json:"ts"`
	Version int64       `json:"version"`
}

type UserSettlementRecordsInfo

type UserSettlementRecordsInfo struct {
	Status  string `json:"status"`
	ErrCode int    `json:"err_code"`
	ErrMsg  string `json:"err_msg"`
	Ts      int64  `json:"ts"`

	Data struct {
		TotalPage         int `json:"total_page"`
		CurrentPage       int `json:"current_page"`
		TotalSize         int `json:"total_size"`
		SettlementRecords []struct {
			MarginMode           string  `json:"margin_mode"`
			MarginAccount        string  `json:"margin_account"`
			MarginBalanceInit    float64 `json:"margin_balance_init"`
			MarginBalance        float64 `json:"margin_balance"`
			SettlementProfitReal float64 `json:"settlement_profit_real"`
			SettlementTime       int64   `json:"settlement_time"`
			Clawback             float64 `json:"clawback"`
			FundingFee           float64 `json:"funding_fee"`
			OffsetProfitloss     float64 `json:"offset_profitloss"`
			Fee                  float64 `json:"fee"`
			FeeAsset             string  `json:"fee_asset"`
			ContractDetail       []struct {
				Symbol           string  `json:"symbol"`
				ContractCode     string  `json:"contract_code"`
				OffsetProfitloss float64 `json:"offset_profitloss"`
				Fee              float64 `json:"fee"`
				FeeAsset         string  `json:"fee_asset"`
				Pair             string  `json:"pair"`
				Positions        []struct {
					Pair                   string  `json:"pair"`
					Symbol                 string  `json:"symbol"`
					ContractCode           string  `json:"contract_code"`
					Direction              string  `json:"direction"`
					Volume                 float64 `json:"volume"`
					CostOpen               float64 `json:"cost_open"`
					CostHoldPre            float64 `json:"cost_hold_pre"`
					CostHold               float64 `json:"cost_hold"`
					SettlementProfitUnreal float64 `json:"settlement_profit_unreal"`
					SettlementPrice        float64 `json:"settlement_price"`
					SettlementType         string  `json:"settlement_type"`
				} `json:"positions"`
				TradePartition string `json:"trade_partition"`
			} `json:"contract_detail"`
		} `json:"settlement_records"`
	} `json:"data"`
}

type WS

type WS struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

WS WebSocket 市场行情接口

func NewWS

func NewWS(wsURL string, accessKey string, secretKey string, debugMode bool) *WS

NewWS 创建 WS wsURL: 正式地址 wss://api.hbdm.com/swap-ws 开发地址 wss://api.btcgateway.pro/swap-ws

func (*WS) SetDepthCallback

func (ws *WS) SetDepthCallback(callback func(depth *WSDepth))

func (*WS) SetDepthHFCallback

func (ws *WS) SetDepthHFCallback(callback func(depth *WSDepthHF))

func (*WS) SetProxy

func (ws *WS) SetProxy(proxyURL string) (err error)

SetProxy 设置代理地址 porxyURL: socks5://127.0.0.1:1080 https://127.0.0.1:1080

func (*WS) SetTickerCallback

func (ws *WS) SetTickerCallback(callback func(ticker *WSTicker))

func (*WS) SetTradeCallback

func (ws *WS) SetTradeCallback(callback func(trade *WSTrade))

func (*WS) Start

func (ws *WS) Start()

func (*WS) Subscribe

func (ws *WS) Subscribe(id string, ch map[string]interface{}) error

Subscribe 订阅

func (*WS) SubscribeDepth

func (ws *WS) SubscribeDepth(id string, symbol string)

SubscribeDepth 订阅 Market Depth 数据 id: 订阅的编号 symbol: BTC_CQ

func (*WS) SubscribeDepthHF

func (ws *WS) SubscribeDepthHF(id string, symbol string, size int, dateType string)

SubscribeDepthHF 订阅增量深度 size: 20/150 档位数,20:表示20档不合并的深度,150:表示150档不合并的深度 dateType: 数据类型,不填默认为全量数据,"incremental":增量数据,"snapshot":全量数据

func (*WS) SubscribeTicker

func (ws *WS) SubscribeTicker(id string, symbol string)

SubscribeTicker 订阅 Market Ticker 数据 id: 订阅的编号 symbol: BTC_CQ

func (*WS) SubscribeTrade

func (ws *WS) SubscribeTrade(id string, symbol string)

SubscribeTrade 订阅 Market Trade 数据 id: 订阅的编号 symbol: BTC_CQ

func (*WS) Unsubscribe

func (ws *WS) Unsubscribe(id string) error

type WSAccountData

type WSAccountData struct {
	Symbol            string  `json:"symbol"`
	ContractCode      string  `json:"contract_code"`
	MarginBalance     float64 `json:"margin_balance"`
	MarginStatic      float64 `json:"margin_static"`
	MarginPosition    float64 `json:"margin_position"`
	MarginFrozen      float64 `json:"margin_frozen"`
	MarginAvailable   float64 `json:"margin_available"`
	ProfitReal        float64 `json:"profit_real"`
	ProfitUnreal      float64 `json:"profit_unreal"`
	WithdrawAvailable float64 `json:"withdraw_available"`
	RiskRate          float64 `json:"risk_rate"`
	LiquidationPrice  float64 `json:"liquidation_price"`
	LeverRate         float64 `json:"lever_rate"`
	AdjustFactor      float64 `json:"adjust_factor"`
}

type WSAccounts

type WSAccounts struct {
	Op    string          `json:"op"`
	Topic string          `json:"topic"`
	Ts    int64           `json:"ts"`
	Event string          `json:"event"`
	Data  []WSAccountData `json:"data"`
}

type WSDepth

type WSDepth struct {
	Ch   string `json:"ch"`
	Ts   int64  `json:"ts"`
	Tick Tick   `json:"tick"`
}

type WSDepthHF

type WSDepthHF struct {
	Ch   string   `json:"ch"`
	Tick WSTickHF `json:"tick"`
	Ts   int64    `json:"ts"`
}

type WSLiquidationOrderData

type WSLiquidationOrderData struct {
	Symbol       string  `json:"symbol"`
	ContractCode string  `json:"contract_code"`
	Direction    string  `json:"direction"`
	Offset       string  `json:"offset"`
	Volume       float64 `json:"volume"`
	Price        float64 `json:"price"`
	CreatedAt    int64   `json:"created_at"`
}

type WSLiquidationOrders

type WSLiquidationOrders struct {
	Op    string                   `json:"op"`
	Topic string                   `json:"topic"`
	Ts    int64                    `json:"ts"`
	Data  []WSLiquidationOrderData `json:"data"`
}

type WSMyTrade

type WSMyTrade struct {
	TradeID       int64   `json:"trade_id"`
	ID            string  `json:"id"`
	TradeVolume   float64 `json:"trade_volume"`
	TradePrice    float64 `json:"trade_price"`
	TradeFee      float64 `json:"trade_fee"`
	FeeAsset      string  `json:"fee_asset"`
	TradeTurnover float64 `json:"trade_turnover"`
	CreatedAt     int64   `json:"created_at"`
	Role          string  `json:"role"`
}

type WSOrder

type WSOrder struct {
	Op             string      `json:"op"`
	Topic          string      `json:"topic"`
	Ts             int64       `json:"ts"`
	Symbol         string      `json:"symbol"`
	ContractCode   string      `json:"contract_code"`
	Volume         float64     `json:"volume"`
	Price          float64     `json:"price"`
	OrderPriceType string      `json:"order_price_type"`
	Direction      string      `json:"direction"`
	Offset         string      `json:"offset"`
	Status         int         `json:"status"`
	LeverRate      float64     `json:"lever_rate"`
	OrderID        int64       `json:"order_id"`
	OrderIDStr     string      `json:"order_id_str"`
	ClientOrderID  int64       `json:"client_order_id"`
	OrderSource    string      `json:"order_source"`
	OrderType      int         `json:"order_type"`
	CreatedAt      int64       `json:"created_at"`
	TradeVolume    float64     `json:"trade_volume"`
	TradeTurnover  float64     `json:"trade_turnover"`
	Fee            float64     `json:"fee"`
	TradeAvgPrice  float64     `json:"trade_avg_price"`
	MarginFrozen   float64     `json:"margin_frozen"`
	Profit         float64     `json:"profit"`
	Trade          []WSMyTrade `json:"trade"`
}

type WSPositionData

type WSPositionData struct {
	Symbol         string  `json:"symbol"`
	ContractCode   string  `json:"contract_code"`
	Volume         float64 `json:"volume"`
	Available      float64 `json:"available"`
	Frozen         float64 `json:"frozen"`
	CostOpen       float64 `json:"cost_open"`
	CostHold       float64 `json:"cost_hold"`
	ProfitUnreal   float64 `json:"profit_unreal"`
	ProfitRate     float64 `json:"profit_rate"`
	Profit         float64 `json:"profit"`
	PositionMargin float64 `json:"position_margin"`
	LeverRate      float64 `json:"lever_rate"`
	Direction      string  `json:"direction"`
	LastPrice      float64 `json:"last_price"`
}

type WSPositions

type WSPositions struct {
	Op    string           `json:"op"`
	Topic string           `json:"topic"`
	Ts    int64            `json:"ts"`
	Event string           `json:"event"`
	Data  []WSPositionData `json:"data"`
}

type WSTick

type WSTick struct {
	MrID    int64       `json:"mrid"`
	ID      int         `json:"id"`
	Bids    [][]float64 `json:"bids"`
	Asks    [][]float64 `json:"asks"`
	Ts      int64       `json:"ts"`
	Version int         `json:"version"`
	Ch      string      `json:"ch"`
}

type WSTickHF

type WSTickHF struct {
	Asks    [][]float64 `json:"asks"`
	Bids    [][]float64 `json:"bids"`
	Ch      string      `json:"ch"`
	Event   string      `json:"event"`
	ID      int64       `json:"id"`
	Mrid    int64       `json:"mrid"`
	Ts      int64       `json:"ts"`
	Version int         `json:"version"`
}

type WSTicker

type WSTicker struct {
	Ch   string       `json:"ch"`
	Ts   int64        `json:"ts"`
	Tick WSTickerTick `json:"tick"`
}

type WSTickerTick

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

type WSTrade

type WSTrade struct {
	Ch   string      `json:"ch"`
	Ts   int64       `json:"ts"`
	Tick WSTradeTick `json:"tick"`
}

type WSTradeItem

type WSTradeItem struct {
	Amount    int     `json:"amount"`
	Ts        int64   `json:"ts"`
	ID        int64   `json:"id"`
	Price     float64 `json:"price"`
	Direction string  `json:"direction"`
}

type WSTradeTick

type WSTradeTick struct {
	ID   int64         `json:"id"`
	Ts   int64         `json:"ts"`
	Data []WSTradeItem `json:"data"`
}

Jump to

Keyboard shortcuts

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