Files
wqqqqqq c328e23278 feat: implement coinank openapi netPositions interface (#1258)
- implement Net long & Net short interface
2025-12-23 00:06:14 +08:00

47 lines
1.4 KiB
Go

package coinank
import (
"context"
"encoding/json"
"nofx/provider/coinank/coinank_enum"
"strconv"
)
// NetPositions Net long & Net short
func (c *CoinankClient) NetPositions(ctx context.Context, exchange coinank_enum.Exchange,
symbol string, interval coinank_enum.Interval, endTime int64, size int) ([]NetPositionsResponse, error) {
paramsMap := make(map[string]string, 5)
paramsMap["exchange"] = string(exchange)
paramsMap["symbol"] = symbol
paramsMap["interval"] = string(interval)
paramsMap["endTime"] = strconv.FormatInt(endTime, 10)
if size < 1 {
size = 10
}
paramsMap["size"] = strconv.Itoa(size)
resp, err := c.Get(ctx, "/api/netPositions/getNetPositions", paramsMap)
if err != nil {
return nil, err
}
var result CoinankResponse[[]NetPositionsResponse]
err = json.Unmarshal([]byte(resp), &result)
if err != nil {
return nil, err
}
if !result.Success {
return nil, HttpError
}
return result.Data, nil
}
type NetPositionsResponse struct {
Begin int64 `json:"begin"` // begin timestamp
Interval string `json:"interval"`
NetLongsHigh int `json:"netLongsHigh"` // net long high
NetLongsClose int `json:"netLongsClose"` // net long close
NetLongsLow int `json:"netLongsLow"` // net long close
NetShortsClose int `json:"netShortsClose"` // net short close
NetShortsHigh int `json:"netShortsHigh"` // net short high
NetShortsLow int `json:"netShortsLow"` // net short low
}