指数实时行情|全球股票指数实时API

524 阅读2分钟

全球股票指数实时 API 提供了获取全球股票指数实时行情的便捷途径,通过它能快速、准确地获取各指数的最新数据,满足投资者对免费指数 API、免费股票 API、免费实时指数行情的需求。

请求K线


"""

**iTick**:是一家数据代理机构,为金融科技公司和开发者提供可靠的数据源APIs,涵盖外汇API、股票API、加密货币API、指数API等,#帮助构建创新的交易和分析工具,目前有免费的套餐可以使用基本可以满足个人量化开发者需求

开源股票数据接口地址

https://github.com/itick-org

申请免费Apikey地址

https://itick.org

"""

  


package main

  


import (

"fmt"

"net/http"

"io"

)

  


func main() {

  


url := "https://api.itick.org/indices/kline?region=gb&code=HSI&kType=1"

  


req, _ := http.NewRequest("GET", url, nil)

  


req.Header.Add("accept", "application/json")

req.Header.Add("token", "you_apikey")

  


res, _ := http.DefaultClient.Do(req)

  


defer res.Body.Close()

body, _ := io.ReadAll(res.Body)

  


fmt.Println(string(body))

  


}

订阅实时报价

确保你已经安装了golang.org/x/net/websocket包。如果你的 Go 环境支持go get命令,可以通过以下命令进行安装:go get golang.org/x/net/websocket


"""

**iTick**:是一家数据代理机构,为金融科技公司和开发者提供可靠的数据源APIs,涵盖外汇API、股票API、加密货币API、指数API等,#帮助构建创新的交易和分析工具,目前有免费的套餐可以使用基本可以满足个人量化开发者需求

开源股票数据接口地址

https://github.com/itick-org

申请免费Apikey地址

https://itick.org

"""

  


package main

  


import (

"fmt"

"golang.org/x/net/websocket"

"io"

"log"

"net/url"

)

  


// WebSocket服务器的地址

const websocketServerURL = "wss://api.itick.org/iws"

  


// 授权信息

type AuthMessage struct {

Ac string `json:"ac"`

Params string `json:"params"`

}

  


// 用于订阅的消息格式,这里假设订阅一个名为 "your_channel" 的频道

type SubscribeMessage struct {

Ac string `json:"ac"`

Params string `json:"params"`

Types string `json:"types"`

}

  


func main() {

  


// 用于鉴权

authMessage := AuthMessage{

Ac: "auth",

Params: "you_apikey",

}

// 创建订阅消息结构体实例

subscribeMessage := SubscribeMessage{

Ac: "subscribe",

Params: "HSI",

Types: "depth,quote",

}

  


// 解析WebSocket服务器地址为URL对象

u, err := url.Parse(websocketServerURL)

if err!= nil {

log.Fatal(err)

}

  


// 创建WebSocket连接

ws, err := websocket.Dial(u.String(), "", websocketServerURL)

if err!= nil {

log.Fatal(err)

}

defer ws.Close()

// 用于鉴权

err = websocket.JSON.Send(ws, authMessage)

if err!= nil {

log.Fatal(err)

}

  


// 将订阅消息转换为JSON格式并发送

err = websocket.JSON.Send(ws, subscribeMessage)

if err!= nil {

log.Fatal(err)

}

  


// 循环接收服务器发送的消息

for {

var message string

err := websocket.JSON.Receive(ws, &message)

if err == io.EOF {

break

} else if err!= nil {

log.Fatal(err)

}

fmt.Println("收到消息:", message)

// 这里可以根据收到的消息内容进行进一步的处理,比如解析JSON数据等

}

}