Skip to content

Commit

Permalink
feat: update
Browse files Browse the repository at this point in the history
  • Loading branch information
linstohu committed Nov 29, 2023
1 parent a8e2c69 commit cd7061e
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 4 deletions.
27 changes: 27 additions & 0 deletions okx/publicdata/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,3 +83,30 @@ func (p *PublicDataClient) GetInstruments(ctx context.Context, param types.GetIn

return &ret, nil
}

func (p *PublicDataClient) GetMarketTickers(ctx context.Context, param types.GetMarketTickersParam) (*types.GetMarketTickersResp, error) {
req := okxutils.HTTPRequest{
BaseURL: p.GetBaseURL(),
Path: "/api/v5/market/tickers",
Method: http.MethodGet,
Query: param,
}

headers, err := p.GenPubHeaders()
if err != nil {
return nil, err
}
req.Headers = headers

resp, err := p.SendHTTPRequest(ctx, req)
if err != nil {
return nil, err
}

var ret types.GetMarketTickersResp
if err := json.Unmarshal(resp, &ret); err != nil {
return nil, err
}

return &ret, nil
}
59 changes: 59 additions & 0 deletions okx/publicdata/types/tickers.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright (c) 2023, LinstoHu
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package types

import okxutils "github.com/linstohu/nexapi/okx/utils"

type GetMarketTickersParam struct {
InstType InstrumentType `url:"instType,omitempty" validate:"omitempty,oneof=SPOT SWAP FUTURES OPTION"`
Uly string `url:"uly,omitempty"`
InstFamily string `url:"instFamily,omitempty"`
}

type InstrumentType = string

const (
Spot = "SPOT"
Swap = "SWAP"
Futures = "FUTURES"
Option = "OPTION"
)

type GetMarketTickersResp struct {
okxutils.Response
Data []*MarketTicker `json:"data"`
}

type MarketTicker struct {
InstType string `json:"instType,string"`
InstID string `json:"instId"`
Last string `json:"last"`
LastSz string `json:"lastSz"`
AskPx string `json:"askPx"`
AskSz string `json:"askSz"`
BidPx string `json:"bidPx"`
BidSz string `json:"bidSz"`
Open24h string `json:"open24h"`
High24h string `json:"high24h"`
Low24h string `json:"low24h"`
VolCcy24h string `json:"volCcy24h"`
Vol24h string `json:"vol24h"`
SodUtc0 string `json:"sodUtc0"`
SodUtc8 string `json:"sodUtc8"`
TS string `json:"ts"`
}
8 changes: 4 additions & 4 deletions okx/tradingaccount/types/positions.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ package types
import okxutils "github.com/linstohu/nexapi/okx/utils"

type GetPositionsParam struct {
InstType InstrumentType `url:"instType,omitempty" validate:"omitempty,oneof=MARGIN SWAP FUTURES OPTION"`
InstId string `url:"instId,omitempty"`
PosId string `url:"posId,omitempty"`
InstType PosInstType `url:"instType,omitempty" validate:"omitempty,oneof=MARGIN SWAP FUTURES OPTION"`
InstId string `url:"instId,omitempty"`
PosId string `url:"posId,omitempty"`
}

type InstrumentType = string
type PosInstType = string

const (
Margin = "MARGIN"
Expand Down

0 comments on commit cd7061e

Please sign in to comment.