okexapi

package
v1.17.1 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2021 License: MIT Imports: 16 Imported by: 4

Documentation

Index

Constants

View Source
const PrivateWebSocketURL = "wss://ws.okex.com:8443/ws/v5/private"
View Source
const PublicWebSocketURL = "wss://ws.okex.com:8443/ws/v5/public"
View Source
const RestBaseURL = "https://www.okex.com/"

Variables

This section is empty.

Functions

func Sign

func Sign(payload string, secret string) string

Types

type Account

type Account struct {
	TotalEquityInUSD fixedpoint.Value `json:"totalEq"`
	UpdateTime       string           `json:"uTime"`
	Details          []BalanceDetail  `json:"details"`
}

type AssetBalance

type AssetBalance struct {
	Currency  string           `json:"ccy"`
	Balance   fixedpoint.Value `json:"bal"`
	Frozen    fixedpoint.Value `json:"frozenBal,omitempty"`
	Available fixedpoint.Value `json:"availBal,omitempty"`
}

type AssetBalanceList

type AssetBalanceList []AssetBalance

type AssetCurrency

type AssetCurrency struct {
	Currency               string           `json:"ccy"`
	Name                   string           `json:"name"`
	Chain                  string           `json:"chain"`
	CanDeposit             bool             `json:"canDep"`
	CanWithdraw            bool             `json:"canWd"`
	CanInternal            bool             `json:"canInternal"`
	MinWithdrawalFee       fixedpoint.Value `json:"minFee"`
	MaxWithdrawalFee       fixedpoint.Value `json:"maxFee"`
	MinWithdrawalThreshold fixedpoint.Value `json:"minWd"`
}

type BalanceDetail

type BalanceDetail struct {
	Currency                string                     `json:"ccy"`
	Available               fixedpoint.Value           `json:"availEq"`
	CashBalance             fixedpoint.Value           `json:"cashBal"`
	OrderFrozen             fixedpoint.Value           `json:"ordFrozen"`
	Frozen                  fixedpoint.Value           `json:"frozenBal"`
	Equity                  fixedpoint.Value           `json:"eq"`
	EquityInUSD             fixedpoint.Value           `json:"eqUsd"`
	UpdateTime              types.MillisecondTimestamp `json:"uTime"`
	UnrealizedProfitAndLoss fixedpoint.Value           `json:"upl"`
}

type BatchCancelOrderRequest

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

func (*BatchCancelOrderRequest) Add

func (*BatchCancelOrderRequest) Do

type BatchPlaceOrderRequest

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

func (*BatchPlaceOrderRequest) Add

func (*BatchPlaceOrderRequest) Do

type CancelOrderRequest

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

func (*CancelOrderRequest) ClientOrderID

func (r *CancelOrderRequest) ClientOrderID(clientOrderID string) *CancelOrderRequest

func (*CancelOrderRequest) Do

func (*CancelOrderRequest) InstrumentID

func (r *CancelOrderRequest) InstrumentID(instId string) *CancelOrderRequest

func (*CancelOrderRequest) OrderID

func (r *CancelOrderRequest) OrderID(orderID string) *CancelOrderRequest

func (*CancelOrderRequest) Parameters

func (r *CancelOrderRequest) Parameters() map[string]interface{}

type Candle

type Candle struct {
	InstrumentID     string
	Interval         string
	Time             time.Time
	Open             fixedpoint.Value
	High             fixedpoint.Value
	Low              fixedpoint.Value
	Close            fixedpoint.Value
	Volume           fixedpoint.Value
	VolumeInCurrency fixedpoint.Value
}

type CandlesticksRequest

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

func (*CandlesticksRequest) After

func (*CandlesticksRequest) Bar

func (*CandlesticksRequest) Before

func (r *CandlesticksRequest) Before(before int64) *CandlesticksRequest

func (*CandlesticksRequest) Do

func (*CandlesticksRequest) InstrumentID

func (r *CandlesticksRequest) InstrumentID(instId string) *CandlesticksRequest

func (*CandlesticksRequest) Limit

func (r *CandlesticksRequest) Limit(limit int) *CandlesticksRequest

type FundingRate

type FundingRate struct {
	InstrumentType  string                     `json:"instType"`
	InstrumentID    string                     `json:"instId"`
	FundingRate     fixedpoint.Value           `json:"fundingRate"`
	NextFundingRate fixedpoint.Value           `json:"nextFundingRate"`
	FundingTime     types.MillisecondTimestamp `json:"fundingTime"`
}

type GetFundingRateRequest

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

func (*GetFundingRateRequest) Do

func (*GetFundingRateRequest) InstrumentID

func (r *GetFundingRateRequest) InstrumentID(instId string) *GetFundingRateRequest

type GetInstrumentsRequest

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

func (*GetInstrumentsRequest) Do

func (*GetInstrumentsRequest) InstrumentID

func (r *GetInstrumentsRequest) InstrumentID(instId string) *GetInstrumentsRequest

func (*GetInstrumentsRequest) InstrumentType

func (r *GetInstrumentsRequest) InstrumentType(instType InstrumentType) *GetInstrumentsRequest

type GetOrderDetailsRequest

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

func (*GetOrderDetailsRequest) ClientOrderID

func (r *GetOrderDetailsRequest) ClientOrderID(clientOrderID string) *GetOrderDetailsRequest

func (*GetOrderDetailsRequest) Do

func (*GetOrderDetailsRequest) InstrumentID

func (r *GetOrderDetailsRequest) InstrumentID(instId string) *GetOrderDetailsRequest

func (*GetOrderDetailsRequest) OrderID

func (*GetOrderDetailsRequest) QueryParameters

func (r *GetOrderDetailsRequest) QueryParameters() url.Values

type GetPendingOrderRequest

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

func (*GetPendingOrderRequest) AddOrderTypes

func (r *GetPendingOrderRequest) AddOrderTypes(orderTypes ...string) *GetPendingOrderRequest

func (*GetPendingOrderRequest) Do

func (*GetPendingOrderRequest) InstrumentID

func (r *GetPendingOrderRequest) InstrumentID(instId string) *GetPendingOrderRequest

func (*GetPendingOrderRequest) InstrumentType

func (r *GetPendingOrderRequest) InstrumentType(instType InstrumentType) *GetPendingOrderRequest

func (*GetPendingOrderRequest) OrderTypes

func (r *GetPendingOrderRequest) OrderTypes(orderTypes []string) *GetPendingOrderRequest

func (*GetPendingOrderRequest) Parameters

func (r *GetPendingOrderRequest) Parameters() map[string]interface{}

func (*GetPendingOrderRequest) State

type GetTransactionDetailsRequest

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

func (*GetTransactionDetailsRequest) Do

func (*GetTransactionDetailsRequest) InstrumentID

func (*GetTransactionDetailsRequest) InstrumentType

func (*GetTransactionDetailsRequest) OrderID

func (*GetTransactionDetailsRequest) Parameters

func (r *GetTransactionDetailsRequest) Parameters() map[string]interface{}

type Instrument

type Instrument struct {
	InstrumentType        string                     `json:"instType"`
	InstrumentID          string                     `json:"instId"`
	BaseCurrency          string                     `json:"baseCcy"`
	QuoteCurrency         string                     `json:"quoteCcy"`
	SettleCurrency        string                     `json:"settleCcy"`
	ContractValue         string                     `json:"ctVal"`
	ContractMultiplier    string                     `json:"ctMult"`
	ContractValueCurrency string                     `json:"ctValCcy"`
	ListTime              types.MillisecondTimestamp `json:"listTime"`
	ExpiryTime            types.MillisecondTimestamp `json:"expTime"`
	TickSize              fixedpoint.Value           `json:"tickSz"`
	LotSize               fixedpoint.Value           `json:"lotSz"`

	// MinSize = min order size
	MinSize fixedpoint.Value `json:"minSz"`

	// instrument status
	State string `json:"state"`
}

type InstrumentType

type InstrumentType string
const (
	InstrumentTypeSpot    InstrumentType = "SPOT"
	InstrumentTypeSwap    InstrumentType = "SWAP"
	InstrumentTypeFutures InstrumentType = "FUTURES"
	InstrumentTypeOption  InstrumentType = "OPTION"
)

type MarketDataService

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

func (*MarketDataService) NewCandlesticksRequest

func (c *MarketDataService) NewCandlesticksRequest(instId string) *CandlesticksRequest

func (*MarketDataService) NewMarketTickerRequest

func (c *MarketDataService) NewMarketTickerRequest(instId string) *MarketTickerRequest

func (*MarketDataService) NewMarketTickersRequest

func (c *MarketDataService) NewMarketTickersRequest(instType string) *MarketTickersRequest

type MarketTicker

type MarketTicker struct {
	InstrumentType string `json:"instType"`
	InstrumentID   string `json:"instId"`

	// last traded price
	Last fixedpoint.Value `json:"last"`

	// last traded size
	LastSize fixedpoint.Value `json:"lastSz"`

	AskPrice fixedpoint.Value `json:"askPx"`
	AskSize  fixedpoint.Value `json:"askSz"`

	BidPrice fixedpoint.Value `json:"bidPx"`
	BidSize  fixedpoint.Value `json:"bidSz"`

	Open24H           fixedpoint.Value `json:"open24h"`
	High24H           fixedpoint.Value `json:"high24H"`
	Low24H            fixedpoint.Value `json:"low24H"`
	Volume24H         fixedpoint.Value `json:"vol24h"`
	VolumeCurrency24H fixedpoint.Value `json:"volCcy24h"`

	// Millisecond timestamp
	Timestamp types.MillisecondTimestamp `json:"ts"`
}

type MarketTickerRequest

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

func (*MarketTickerRequest) Do

func (*MarketTickerRequest) InstrumentID

func (r *MarketTickerRequest) InstrumentID(instId string) *MarketTickerRequest

type MarketTickersRequest

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

func (*MarketTickersRequest) Do

func (*MarketTickersRequest) InstrumentType

func (r *MarketTickersRequest) InstrumentType(instType string) *MarketTickersRequest

type OrderDetails

type OrderDetails struct {
	InstrumentType string           `json:"instType"`
	InstrumentID   string           `json:"instId"`
	Tag            string           `json:"tag"`
	Price          fixedpoint.Value `json:"px"`
	Quantity       fixedpoint.Value `json:"sz"`

	OrderID       string    `json:"ordId"`
	ClientOrderID string    `json:"clOrdId"`
	OrderType     OrderType `json:"ordType"`
	Side          SideType  `json:"side"`

	// Accumulated fill quantity
	FilledQuantity fixedpoint.Value `json:"accFillSz"`

	FeeCurrency string           `json:"feeCcy"`
	Fee         fixedpoint.Value `json:"fee"`

	// trade related fields
	LastTradeID           string                     `json:"tradeId,omitempty"`
	LastFilledPrice       fixedpoint.Value           `json:"fillPx"`
	LastFilledQuantity    fixedpoint.Value           `json:"fillSz"`
	LastFilledTime        types.MillisecondTimestamp `json:"fillTime"`
	LastFilledFee         fixedpoint.Value           `json:"fillFee"`
	LastFilledFeeCurrency string                     `json:"fillFeeCcy"`

	// ExecutionType = liquidity (M = maker or T = taker)
	ExecutionType string `json:"execType"`

	// Average filled price. If none is filled, it will return 0.
	AveragePrice fixedpoint.Value `json:"avgPx"`

	// Currency = Margin currency
	// Only applicable to cross MARGIN orders in Single-currency margin.
	Currency string `json:"ccy"`

	// Leverage = from 0.01 to 125.
	//Only applicable to MARGIN/FUTURES/SWAP
	Leverage fixedpoint.Value `json:"lever"`

	RebateCurrency string           `json:"rebateCcy"`
	Rebate         fixedpoint.Value `json:"rebate"`

	PnL fixedpoint.Value `json:"pnl"`

	UpdateTime   types.MillisecondTimestamp `json:"uTime"`
	CreationTime types.MillisecondTimestamp `json:"cTime"`

	State OrderState `json:"state"`
}

type OrderResponse

type OrderResponse struct {
	OrderID       string `json:"ordId"`
	ClientOrderID string `json:"clOrdId"`
	Tag           string `json:"tag"`
	Code          string `json:"sCode"`
	Message       string `json:"sMsg"`
}

type OrderState

type OrderState string
const (
	OrderStateCanceled        OrderState = "canceled"
	OrderStateLive            OrderState = "live"
	OrderStatePartiallyFilled OrderState = "partially_filled"
	OrderStateFilled          OrderState = "filled"
)

type OrderType

type OrderType string
const (
	OrderTypeMarket   OrderType = "market"
	OrderTypeLimit    OrderType = "limit"
	OrderTypePostOnly OrderType = "post_only"
	OrderTypeFOK      OrderType = "fok"
	OrderTypeIOC      OrderType = "ioc"
)

type PlaceOrderRequest

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

func (*PlaceOrderRequest) ClientOrderID

func (r *PlaceOrderRequest) ClientOrderID(clientOrderID string) *PlaceOrderRequest

func (*PlaceOrderRequest) Do

func (*PlaceOrderRequest) InstrumentID

func (r *PlaceOrderRequest) InstrumentID(instID string) *PlaceOrderRequest

func (*PlaceOrderRequest) OrderType

func (r *PlaceOrderRequest) OrderType(orderType OrderType) *PlaceOrderRequest

func (*PlaceOrderRequest) Parameters

func (r *PlaceOrderRequest) Parameters() map[string]interface{}

func (*PlaceOrderRequest) Price

func (r *PlaceOrderRequest) Price(price string) *PlaceOrderRequest

func (*PlaceOrderRequest) Quantity

func (r *PlaceOrderRequest) Quantity(quantity string) *PlaceOrderRequest

func (*PlaceOrderRequest) Side

func (*PlaceOrderRequest) TradeMode

func (r *PlaceOrderRequest) TradeMode(mode string) *PlaceOrderRequest

type PublicDataService

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

func (*PublicDataService) NewGetFundingRate

func (s *PublicDataService) NewGetFundingRate() *GetFundingRateRequest

func (*PublicDataService) NewGetInstrumentsRequest

func (s *PublicDataService) NewGetInstrumentsRequest() *GetInstrumentsRequest

type RestClient

type RestClient struct {
	BaseURL *url.URL

	Key, Secret, Passphrase string

	TradeService      *TradeService
	PublicDataService *PublicDataService
	MarketDataService *MarketDataService
	// contains filtered or unexported fields
}

func NewClient

func NewClient() *RestClient

func (*RestClient) AccountBalances

func (c *RestClient) AccountBalances() (*Account, error)

func (*RestClient) AssetBalances

func (c *RestClient) AssetBalances() (AssetBalanceList, error)

func (*RestClient) AssetCurrencies

func (c *RestClient) AssetCurrencies() ([]AssetCurrency, error)

func (*RestClient) Auth

func (c *RestClient) Auth(key, secret, passphrase string)

func (*RestClient) MarketTicker

func (c *RestClient) MarketTicker(instId string) (*MarketTicker, error)

func (*RestClient) MarketTickers

func (c *RestClient) MarketTickers(instType InstrumentType) ([]MarketTicker, error)

type SideType

type SideType string
const (
	SideTypeBuy  SideType = "buy"
	SideTypeSell SideType = "sell"
)

type TradeService

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

func (*TradeService) NewBatchCancelOrderRequest

func (c *TradeService) NewBatchCancelOrderRequest() *BatchCancelOrderRequest

func (*TradeService) NewBatchPlaceOrderRequest

func (c *TradeService) NewBatchPlaceOrderRequest() *BatchPlaceOrderRequest

func (*TradeService) NewCancelOrderRequest

func (c *TradeService) NewCancelOrderRequest() *CancelOrderRequest

func (*TradeService) NewGetOrderDetailsRequest

func (c *TradeService) NewGetOrderDetailsRequest() *GetOrderDetailsRequest

func (*TradeService) NewGetPendingOrderRequest

func (c *TradeService) NewGetPendingOrderRequest() *GetPendingOrderRequest

func (*TradeService) NewGetTransactionDetailsRequest

func (c *TradeService) NewGetTransactionDetailsRequest() *GetTransactionDetailsRequest

func (*TradeService) NewPlaceOrderRequest

func (c *TradeService) NewPlaceOrderRequest() *PlaceOrderRequest

Jump to

Keyboard shortcuts

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