okapi

package module
v0.0.0-...-3071a76 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

README

OKX API

This repo it's base amir-the-h/okex

NOTICE:

PACKAGE IS CURRENTLY UNDER HEAVY DEVELOPMENT AND THERE IS NO GUARANTY FOR STABILITY.

DISCLAIMER:

This package is provided as-is, without any express or implied warranties. The user assumes all risks associated with the use of this package. The author and contributors to this package shall not be held liable for any damages arising from the use of this package, including but not limited to direct, indirect, incidental, or consequential damages. This package is not intended to be used as a substitute for professional financial advice. Users are responsible for verifying the accuracy and reliability of the data generated by this package. Use of this package constitutes acceptance of these terms and conditions.

Okex V5 Golang API

EXAMPLE

import (
	"fmt"

	"github.com/james-zhang-bing/okapi"
	"github.com/james-zhang-bing/okapi/api/rest"
	pr "github.com/james-zhang-bing/okapi/api/websocket/private"
	"github.com/james-zhang-bing/okapi/api/websocket/public"
	"github.com/james-zhang-bing/okapi/requests/rest/market"
	"github.com/james-zhang-bing/okapi/requests/ws/private"
)

func main() {
	apikey := rest.NewAPIKey("your_key", "your_secret", "your_passphrase ")

	//for rest api
	restClient := rest.NewClient(apikey, okapi.AwsRestURL, okapi.AwsServer)

	res, err := restClient.Market.GetCandlesticks(market.GetCandlesticks{InstID: "BTC-USDT"})
	if err != nil {
		panic(err)
	}
	fmt.Println(res.Candles[0])

	//for websocket public channel
	pubws, err := public.NewPublicClient(okapi.AwsPublicWsURL)
	if err != nil {
		panic(err)
	}
	candleSub := public.NewCandleChannel(string(okapi.Bar1m), "BTC-USDT-SWAP")
	err = pubws.Subscribe(candleSub)
	if err != nil {
		panic(err)
	}
	for i := 0; i < 2; i++ {
		candle := <-candleSub.Received
		fmt.Println(candle)
	}

	//for websocket private channel

	priws, err := pr.NewPrivateClient(okapi.AwsPrivateWsURL, apikey)
	if err != nil {
		panic(err)
	}
	balanceCh, err := priws.SubscribeAccountChannel(&private.Account{})
	if err != nil {
		panic(err)
	}
	fmt.Println(<-balanceCh)
}

Documentation

Overview

Package okex is generally a golang Api wrapper of Okex V5 API

https://www.okex.com/docs-v5/en

Index

Constants

View Source
const (
	RestURL      = BaseURL("https://www.okx.com")
	PublicWsURL  = BaseURL("wss://ws.okx.com:8443/ws/v5/public")
	PrivateWsURL = BaseURL("wss://ws.okx.com:8443/ws/v5/private")

	AwsRestURL      = BaseURL("https://aws.okx.com")
	AwsPublicWsURL  = BaseURL("wss://wsaws.okx.com:8443/ws/v5/public")
	AwsPrivateWsURL = BaseURL("wss://wsaws.okx.com:8443/ws/v5/private")

	DemoRestURL      = BaseURL("https://www.okx.com")
	DemoPublicWsURL  = BaseURL("wss://wspap.okx.com:8443/ws/v5/public?brokerId=9999")
	DemoPrivateWsURL = BaseURL("wss://wspap.okx.com:8443/ws/v5/private?brokerId=9999")

	NormalServer = Destination(iota + 1)
	AwsServer    = NormalServer + 1
	DemoServer   = AwsServer + 1

	SpotInstrument    = InstrumentType("SPOT")
	MarginInstrument  = InstrumentType("MARGIN")
	SwapInstrument    = InstrumentType("SWAP")
	FuturesInstrument = InstrumentType("FUTURES")
	OptionsInstrument = InstrumentType("OPTION")

	MarginCrossMode    = MarginMode("cross")
	MarginIsolatedMode = MarginMode("isolated")

	ContractLinearType  = ContractType("linear")
	ContractInverseType = ContractType("inverse")

	BillTransferType              = BillType(1)
	BillTradeType                 = BillType(2)
	BillDeliveryType              = BillType(3)
	BillAutoTokenConversionType   = BillType(4)
	BillLiquidationType           = BillType(5)
	BillMarginTransferType        = BillType(6)
	BillInterestDeductionType     = BillType(7)
	BillFundingFeeType            = BillType(8)
	BillADLType                   = BillType(9)
	BillClawbackType              = BillType(10)
	BillSystemTokenConversionType = BillType(11)
	BillStrategyTransferType      = BillType(12)

	BillBuySubType                              = BillSubType(1)
	BillSellSubType                             = BillSubType(2)
	BillOpenLongSubType                         = BillSubType(3)
	BillOpenShortSubType                        = BillSubType(4)
	BillCloseLongSubType                        = BillSubType(5)
	BillCloseShortSubType                       = BillSubType(6)
	BillInterestDeductionSubType                = BillSubType(9)
	BillTransferInSubType                       = BillSubType(11)
	BillTransferOutSubType                      = BillSubType(12)
	BillManualMarginIncreaseSubType             = BillSubType(160)
	BillManualMarginDecreaseSubType             = BillSubType(161)
	BillAutoMarginIncreaseSubType               = BillSubType(162)
	BillAutoBuySubType                          = BillSubType(110)
	BillAutoSellSubType                         = BillSubType(111)
	BillSystemTokenConversionTransferInSubType  = BillSubType(118)
	BillSystemTokenConversionTransferOutSubType = BillSubType(119)
	BillPartialLiquidationCloseLongSubType      = BillSubType(100)
	BillPartialLiquidationCloseShortSubType     = BillSubType(101)
	BillPartialLiquidationBuySubType            = BillSubType(102)
	BillPartialLiquidationSellSubType           = BillSubType(103)
	BillLiquidationLongSubType                  = BillSubType(104)
	BillLiquidationShortSubType                 = BillSubType(105)
	BillLiquidationBuySubType                   = BillSubType(106)
	BillLiquidationSellSubType                  = BillSubType(107)
	BillLiquidationTransferInSubType            = BillSubType(110)
	BillLiquidationTransferOutSubType           = BillSubType(111)
	BillADLCloseLongSubType                     = BillSubType(125)
	BillADLCloseShortSubType                    = BillSubType(126)
	BillADLBuySubType                           = BillSubType(127)
	BillADLSellSubType                          = BillSubType(128)
	BillExercisedSubType                        = BillSubType(170)
	BillCounterpartyExercisedSubType            = BillSubType(171)
	BillExpiredOTMSubType                       = BillSubType(172)
	BillDeliveryLongSubType                     = BillSubType(112)
	BillDeliveryShortSubType                    = BillSubType(113)
	BillDeliveryExerciseClawbackSubType         = BillSubType(117)
	BillFundingFeeExpenseSubType                = BillSubType(173)
	BillFundingFeeIncomeSubType                 = BillSubType(174)
	BillSystemTransferInSubType                 = BillSubType(200)
	BillManuallyTransferInSubType               = BillSubType(201)
	BillSystemTransferOutSubType                = BillSubType(202)
	BillManuallyTransferOutSubType              = BillSubType(203)

	PositionLongShortMode = PositionType("long_short_mode")
	PositionNetMode       = PositionType("net_mode")

	PositionLongSide  = PositionSide("long")
	PositionShortSide = PositionSide("short")
	PositionNetSide   = PositionSide("net")

	TpSide = ActualSide("tp")
	SlSide = ActualSide("sl")

	TradeCrossMode    = TradeMode("cross")
	TradeIsolatedMode = TradeMode("isolated")
	TradeCashMode     = TradeMode("cash")

	CountIncrease = CountAction("add")
	CountDecrease = CountAction("reduce")

	OrderBuy  = OrderSide("buy")
	OrderSell = OrderSide("sell")

	GreekInCoin    = GreekType("PA")
	GreekInDollars = GreekType("PB")

	Bar1m  = BarSize("1m")
	Bar3m  = BarSize("3m")
	Bar5m  = BarSize("5m")
	Bar15m = BarSize("15m")
	Bar30m = BarSize("130")
	Bar1H  = BarSize("1H")
	Bar2H  = BarSize("2H")
	Bar4H  = BarSize("4H")
	Bar6H  = BarSize("6H")
	Bar8H  = BarSize("8H")
	Bar12H = BarSize("12H")
	Bar1D  = BarSize("1D")
	Bar1W  = BarSize("1W")
	Bar1M  = BarSize("1M")
	Bar3M  = BarSize("3M")
	Bar6M  = BarSize("6M")
	Bar1Y  = BarSize("1Y")

	TradeBuySide  = TradeSide("buy")
	TradeSellSide = TradeSide("sell")

	LoginOperation            = Operation("login")
	SubscribeOperation        = Operation("subscribe")
	UnsubscribeOperation      = Operation("unsubscribe")
	OrderOperation            = Operation("order")
	BatchOrderOperation       = Operation("batch-orders")
	CancelOrderOperation      = Operation("cancel-order")
	BatchCancelOrderOperation = Operation("batch-cancel-orders")
	AmendOrderOperation       = Operation("amend-order")
	BatchAmendOrderOperation  = Operation("batch-amend-orders")

	OrderMarket          = OrderType("market")
	OrderLimit           = OrderType("limit")
	OrderPostOnly        = OrderType("post_only")
	OrderFOK             = OrderType("fok")
	OrderIOC             = OrderType("ioc")
	OrderOptimalLimitIoc = OrderType("optimal_limit_ioc")

	AlgoOrderConditional = AlgoOrderType("conditional")
	AlgoOrderOCO         = AlgoOrderType("oco")
	AlgoOrderTrigger     = AlgoOrderType("trigger")
	AlgoOrderIceberg     = AlgoOrderType("iceberg")
	AlgoOrderTwap        = AlgoOrderType("twap")
	AlgoMoveOrderStop    = AlgoOrderType("move_order_stop")

	QuantityBaseCcy  = QuantityType("base_ccy")
	QuantityQuoteCcy = QuantityType("quote_ccy")

	OrderTakerFlow = OrderFlowType("T")
	OrderMakerFlow = OrderFlowType("M")

	ClassA = FeeCategory(1)
	ClassB = FeeCategory(2)
	ClassC = FeeCategory(3)
	ClassD = FeeCategory(4)

	OrderCancel          = OrderState("canceled")
	OrderPause           = OrderState("pause")
	OrderLive            = OrderState("live")
	OrderPartiallyFilled = OrderState("partially_filled")
	OrderFilled          = OrderState("filled")
	OrderUnfilled        = OrderState("unfilled")

	TransferWithinAccount     = TransferType(0)
	MasterAccountToSubAccount = TransferType(1)
	MasterSubAccountToAccount = TransferType(2)

	SpotAccount    = AccountType(1)
	FuturesAccount = AccountType(3)
	MarginAccount  = AccountType(5)
	FundingAccount = AccountType(6)
	SwapAccount    = AccountType(9)
	OptionsAccount = AccountType(12)
	UnifiedAccount = AccountType(18)

	WaitingForConfirmation     = DepositState(0)
	DepositCredited            = DepositState(1)
	DepositSuccessful          = DepositState(2)
	DepositTemporarySuspension = DepositState(8)

	WithdrawalOkexDestination           = WithdrawalDestination(3)
	WithdrawalDigitalAddressDestination = WithdrawalDestination(4)

	WithdrawalPendingCancel              = WithdrawalState(-3)
	WithdrawalCanceled                   = WithdrawalState(-2)
	WithdrawalFailed                     = WithdrawalState(-1)
	WithdrawalPending                    = WithdrawalState(0)
	WithdrawalSending                    = WithdrawalState(1)
	WithdrawalSent                       = WithdrawalState(2)
	WithdrawalAwaitingEmailVerification  = WithdrawalState(3)
	WithdrawalAwaitingManualVerification = WithdrawalState(4)
	WithdrawalIdentityManualVerification = WithdrawalState(5)

	ActionPurchase = ActionType("purchase")
	ActionRedempt  = ActionType("redempt")

	APIKeyReadOnly = APIKeyAccess("read_only")
	APIKeyTrade    = APIKeyAccess("trade")

	OptionCall = OptionType("C")
	OptionPut  = OptionType("P")

	AliasThisWeek    = AliasType("this_week")
	AliasNextWeek    = AliasType("next_week")
	AliasQuarter     = AliasType("quarter")
	AliasNextQuarter = AliasType("next_quarter")

	InstrumentLive    = InstrumentState("live")
	InstrumentSuspend = InstrumentState("suspend")
	InstrumentPreOpen = InstrumentState("preopen")

	Delivery   = DeliveryExerciseType("delivery")
	Exercise   = DeliveryExerciseType("exercised")
	ExpiredOtm = DeliveryExerciseType("expired_otm")

	CandleStick1Y  = CandleStickWsBarSize("candle1Y")
	CandleStick6M  = CandleStickWsBarSize("candle6M")
	CandleStick3M  = CandleStickWsBarSize("candle3M")
	CandleStick1M  = CandleStickWsBarSize("candle1M")
	CandleStick5D  = CandleStickWsBarSize("candle5D")
	CandleStick3D  = CandleStickWsBarSize("candle3D")
	CandleStick2D  = CandleStickWsBarSize("candle2D")
	CandleStick1D  = CandleStickWsBarSize("candle1D")
	CandleStick12H = CandleStickWsBarSize("candle12H")
	CandleStick6H  = CandleStickWsBarSize("candle6H")
	CandleStick4H  = CandleStickWsBarSize("candle4H")
	CandleStick2H  = CandleStickWsBarSize("candle2H")
	CandleStick1H  = CandleStickWsBarSize("candle1H")
	CandleStick30m = CandleStickWsBarSize("candle30m")
	CandleStick15m = CandleStickWsBarSize("candle15m")
	CandleStick5m  = CandleStickWsBarSize("candle5m")
	CandleStick3m  = CandleStickWsBarSize("candle3m")
	CandleStick1m  = CandleStickWsBarSize("candle1m")

	ToContractType = UnitType("1")
	ToCurrencyType = UnitType("2")
)

Variables

View Source
var OkxApiURL = struct {
	OrdersHistory        string
	OrdersHistoryArchive string
	FillsHistory         string
	MarketCandles        string //最大返回1440条数据
	MarketHistoryCandles string
	AccountBalance       string
	AccountPosition      string
}{
	OrdersHistory:        "/api/v5/trade/orders-historye",
	OrdersHistoryArchive: "/api/v5/trade/orders-history-archive",
	FillsHistory:         "/api/v5/trade/fills-history",
	MarketCandles:        "/api/v5/market/candles",
	MarketHistoryCandles: "/api/v5/market/history-candles",
	AccountBalance:       "/api/v5/account/balance",
	AccountPosition:      "/api/v5/account/positions",
}

Functions

func MI2MS

func MI2MS(i interface{}) map[string]string

func S2M

func S2M(i interface{}) map[string]interface{}

func S2SM

func S2SM(i interface{}) []map[string]interface{}

Types

type APIKeyAccess

type APIKeyAccess string

type AccountType

type AccountType uint8

func (*AccountType) UnmarshalJSON

func (t *AccountType) UnmarshalJSON(s []byte) (err error)

type ActionType

type ActionType string

type ActualSide

type ActualSide string

type AlgoOrderType

type AlgoOrderType string

type AliasType

type AliasType string

type BarSize

type BarSize string

func (BarSize) Duration

func (t BarSize) Duration() time.Duration

type BaseURL

type BaseURL string

type BillSubType

type BillSubType uint8

func (*BillSubType) UnmarshalJSON

func (t *BillSubType) UnmarshalJSON(s []byte) (err error)

type BillType

type BillType uint8

func (*BillType) UnmarshalJSON

func (t *BillType) UnmarshalJSON(s []byte) (err error)

type CandleStickWsBarSize

type CandleStickWsBarSize string

type ChannelName

type ChannelName string

type ClientError

type ClientError error

type ContractType

type ContractType string

type CountAction

type CountAction string

type DeliveryExerciseType

type DeliveryExerciseType string

type DepositState

type DepositState uint8

func (*DepositState) UnmarshalJSON

func (t *DepositState) UnmarshalJSON(s []byte) (err error)

type Destination

type Destination int

type EventType

type EventType string

type FeeCategory

type FeeCategory uint8

func (*FeeCategory) UnmarshalJSON

func (t *FeeCategory) UnmarshalJSON(s []byte) (err error)

type GreekType

type GreekType string

type InstrumentState

type InstrumentState string

type InstrumentType

type InstrumentType string

type JSONFloat64

type JSONFloat64 float64

func (*JSONFloat64) UnmarshalJSON

func (t *JSONFloat64) UnmarshalJSON(s []byte) (err error)

type JSONInt64

type JSONInt64 int64

func (*JSONInt64) UnmarshalJSON

func (t *JSONInt64) UnmarshalJSON(s []byte) (err error)

type JSONTime

type JSONTime time.Time

func (*JSONTime) MarshalJSON

func (t *JSONTime) MarshalJSON() ([]byte, error)

func (JSONTime) String

func (t JSONTime) String() string

func (*JSONTime) UnmarshalJSON

func (t *JSONTime) UnmarshalJSON(s []byte) (err error)

type MarginMode

type MarginMode string

type Operation

type Operation string

type OptionType

type OptionType string

type OrderFlowType

type OrderFlowType string

type OrderSide

type OrderSide string

type OrderState

type OrderState string

type OrderType

type OrderType string

type PositionSide

type PositionSide string

type PositionType

type PositionType string

type QuantityType

type QuantityType string

type TradeMode

type TradeMode string

type TradeSide

type TradeSide string

type TransferType

type TransferType uint8

type UnitType

type UnitType string

type WithdrawalDestination

type WithdrawalDestination uint8

type WithdrawalState

type WithdrawalState int8

func (*WithdrawalState) UnmarshalJSON

func (t *WithdrawalState) UnmarshalJSON(s []byte) (err error)

Jump to

Keyboard shortcuts

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