123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- package yu_bitget
- type Contracts struct {
- Symbol string `json:"symbol"` // 产品名称
- BaseCoin string `json:"baseCoin"` // 基础币,如 ETHUSDT 中,特指ETH
- QuoteCoin string `json:"quoteCoin"` // 计价币,如 ETHUSDT 中,特指USDT
- BuyLimitPriceRatio string `json:"buyLimitPriceRatio"` // 买价限价比例
- SellLimitPriceRatio string `json:"sellLimitPriceRatio"` // 卖价限价比例
- FeeRateUpRatio string `json:"feeRateUpRatio"` // 手续费上浮比例
- MakerFeeRate string `json:"makerFeeRate"` // Maker手续费率
- TakerFeeRate string `json:"takerFeeRate"` // Taker手续费率
- OpenCostUpRatio string `json:"openCostUpRatio"` // 开仓成本上浮比例
- SupportMarginCoins []string `json:"supportMarginCoins"` // 支持保证金币种
- MinTradeNum string `json:"minTradeNum"` // 最小开单数量(基础币)
- PriceEndStep string `json:"priceEndStep"` // 价格步长
- VolumePlace string `json:"volumePlace"` // 数量小数位
- PricePlace string `json:"pricePlace"` // 价格小数位
- SizeMultiplier string `json:"sizeMultiplier"` // 下单数量要大于 minTradeNum 并且满足 sizeMultiplier 的倍数
- SymbolType string `json:"symbolType"` // 合约类型,perpetual 永续,delivery 交割
- MinTradeUSDT string `json:"minTradeUSDT"` // 最小USDT交易额
- MaxSymbolOrderNum string `json:"maxSymbolOrderNum"` // 最大持有订单数(symbol维度)
- MaxProductOrderNum string `json:"maxProductOrderNum"` // 最大持有订单数(产品类型维度)
- MaxPositionNum string `json:"maxPositionNum"` // 最大持有仓位数量
- SymbolStatus string `json:"symbolStatus"` // 交易对状态,listed 上架,normal 正常/开盘,maintain 禁止交易
- OffTime string `json:"offTime"` // 下架时间,'-1' 表示正常
- LimitOpenTime string `json:"limitOpenTime"` // 可开仓时间,'-1' 表示正常
- DeliveryTime string `json:"deliveryTime"` // 交割时间
- DeliveryStartTime string `json:"deliveryStartTime"` // 交割开始时间
- LaunchTime string `json:"launchTime"` // 上架时间
- FundInterval string `json:"fundInterval"` // 资金费结算周期
- MinLever string `json:"minLever"` // 最小杠杆
- MaxLever string `json:"maxLever"` // 最大杠杆
- PosLimit string `json:"posLimit"` // 持仓限制
- MaintainTime string `json:"maintainTime"` // 维护时间(状态处于维护/即将维护时会有值)
- }
- // Contracts 获取合约信息
- //
- // @Description:
- // @param productType 产品类型
- // @param symbol 交易币对
- func (t *V2Rest) Contracts(productType ProductType, symbol string) *Contracts {
- j_path, j_resp := "/api/v2/mix/market/contracts?productType="+string(productType)+"&symbol="+symbol, make([]*Contracts, 0)
- if t.request("GET", j_path, nil, &j_resp) {
- return j_resp[0]
- }
- return nil
- }
- type SymbolPrice struct {
- Symbol string `json:"symbol"` // 币对名称,如:"BTCUSDT"
- Price string `json:"price"` // 最新成交价格
- IndexPrice string `json:"indexPrice"` // 指数价格
- MarkPrice string `json:"markPrice"` // 标记价格
- Timestamp string `json:"ts"` // 当前数据时间戳,Unix时间戳的毫秒数格式,如1672410780000
- }
- // SymbolPrice 获取交易对市价/指数/标记价格
- //
- // @Description:
- // @param productType 产品类型
- // @param symbol 交易币对
- func (t *V2Rest) SymbolPrice(productType ProductType, symbol string) *SymbolPrice {
- j_path, j_resp := "/api/v2/mix/market/symbol-price?productType="+string(productType)+"&symbol="+symbol, make([]*SymbolPrice, 0)
- if t.request("GET", j_path, nil, &j_resp) {
- return j_resp[0]
- }
- return nil
- }
- type CurrentFundRate struct {
- Symbol string `json:"symbol"` // 币对名称,如:"BTCUSDT"
- FundingRate string `json:"fundingRate"` // 当前资金费率
- }
- // CurrentFundRate 获取当前资金费率
- //
- // @Description:
- // @param productType 产品类型
- // @param symbol 交易币对
- func (t *V2Rest) CurrentFundRate(productType ProductType, symbol string) *CurrentFundRate {
- j_path, j_resp := "/api/v2/mix/market/current-fund-rate?productType="+string(productType)+"&symbol="+symbol, make([]*CurrentFundRate, 0)
- if t.request("GET", j_path, nil, &j_resp) {
- return j_resp[0]
- }
- return nil
- }
- type HistoryCandlesArgs struct {
- Symbol string `json:"symbol"` // 交易币对名称
- ProductType ProductType `json:"productType"` // 产品类型
- Granularity Granularity `json:"granularity"` // K线粒度
- // 开始时间,查询该时间之后的K线
- // Unix时间戳的毫秒数格式,如1672410780000
- // 最大查询范围为90天
- StartTime string `json:"startTime,omitempty"`
- // 结束时间,查询该时间之前的K线
- // Unix时间戳的毫秒数格式,如1672410780000
- // 最大查询范围为90天
- EndTime string `json:"endTime,omitempty"`
- // 数据条数限制
- // 默认100,最大200
- Limit string `json:"limit,omitempty"`
- }
- type Granularity string
- const (
- G1m Granularity = "1m" // 1分钟
- G3m Granularity = "3m" // 3分钟
- G5m Granularity = "5m" // 5分钟
- G15m Granularity = "15m" // 15分钟
- G30m Granularity = "30m" // 30分钟
- G1H Granularity = "1H" // 1小时
- G4H Granularity = "4H" // 4小时
- G6H Granularity = "6H" // 6小时
- G12H Granularity = "12H" // 12小时
- G1D Granularity = "1D" // 1天
- G3D Granularity = "3D" // 3天
- G1W Granularity = "1W" // 1周
- G1M Granularity = "1M" // 月线
- G6Hutc Granularity = "6Hutc" // 零时区 6小时线
- G12Hutc Granularity = "12Hutc" // 零时区12小时线
- G1Dutc Granularity = "1Dutc" // 零时区 1日线
- G3Dutc Granularity = "3Dutc" // 零时区 3日线
- G1Wutc Granularity = "1Wutc" // 零时区 周线
- G1Mutc Granularity = "1Mutc" // 零时区 月线
- )
- // HistoryCandles
- //
- // [0] = 时间戳, Unix时间戳的毫秒数格式,如 1597026383085
- // [1] = 开盘价
- // [2] = 最高价
- // [3] = 最低价
- // [4] = 收盘价(只包含已完结K线)
- // [5] = 交易币成交量
- // [6] = 计价币成交量
- type HistoryCandles [7]string
- // HistoryCandles 合约历史k线
- func (t *V2Rest) HistoryCandles(args HistoryCandlesArgs) []*HistoryCandles {
- j_path, j_resp := "/api/v2/mix/market/history-candles?productType="+string(args.ProductType)+
- "&symbol="+args.Symbol+"&granularity="+string(args.Granularity)+
- "&startTime="+args.StartTime+"&endTime="+args.EndTime+
- "&limit="+args.Limit,
- make([]*HistoryCandles, 0)
- t.request("GET", j_path, nil, &j_resp)
- return j_resp
- }
|