mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 09:58:22 +08:00
c328e23278
- implement Net long & Net short interface
47 lines
1.4 KiB
Go
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
|
|
}
|