在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:adshao/go-binance开源软件地址:https://github.com/adshao/go-binance开源编程语言:Go 100.0%开源软件介绍:go-binanceA Golang SDK for binance API. All the REST APIs listed in binance API document are implemented, as well as the websocket APIs. For best compatibility, please use Go >= 1.8. Make sure you have read binance API document before continuing. API List
Installationgo get github.com/adshao/go-binance/v2 For v1 API, it has been moved to go get github.com/adshao/go-binance/v1 Importingimport (
"github.com/adshao/go-binance/v2"
) DocumentationREST APISetupInit client for API services. Get APIKey/SecretKey from your binance account. var (
apiKey = "your api key"
secretKey = "your secret key"
)
client := binance.NewClient(apiKey, secretKey)
futuresClient := binance.NewFuturesClient(apiKey, secretKey) // USDT-M Futures
deliveryClient := binance.NewDeliveryClient(apiKey, secretKey) // Coin-M Futures A service instance stands for a REST API endpoint and is initialized by client.NewXXXService function. Simply call API in chain style. Call Do() in the end to send HTTP request. Following are some simple examples, please refer to godoc for full references. Create Orderorder, err := client.NewCreateOrderService().Symbol("BNBETH").
Side(binance.SideTypeBuy).Type(binance.OrderTypeLimit).
TimeInForce(binance.TimeInForceTypeGTC).Quantity("5").
Price("0.0030000").Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
fmt.Println(order)
// Use Test() instead of Do() for testing. Get Orderorder, err := client.NewGetOrderService().Symbol("BNBETH").
OrderID(4432844).Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
fmt.Println(order) Cancel Order_, err := client.NewCancelOrderService().Symbol("BNBETH").
OrderID(4432844).Do(context.Background())
if err != nil {
fmt.Println(err)
return
} List Open OrdersopenOrders, err := client.NewListOpenOrdersService().Symbol("BNBETH").
Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
for _, o := range openOrders {
fmt.Println(o)
} List Ordersorders, err := client.NewListOrdersService().Symbol("BNBETH").
Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
for _, o := range orders {
fmt.Println(o)
} List Ticker Pricesprices, err := client.NewListPricesService().Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
for _, p := range prices {
fmt.Println(p)
} Show Depthres, err := client.NewDepthService().Symbol("LTCBTC").
Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res) List Klinesklines, err := client.NewKlinesService().Symbol("LTCBTC").
Interval("15m").Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
for _, k := range klines {
fmt.Println(k)
} List Aggregate Tradestrades, err := client.NewAggTradesService().
Symbol("LTCBTC").StartTime(1508673256594).EndTime(1508673256595).
Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
for _, t := range trades {
fmt.Println(t)
} Get Accountres, err := client.NewGetAccountService().Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res) Start User Streamres, err := client.NewStartUserStreamService().Do(context.Background())
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res) WebsocketYou don't need Client in websocket API. Just call binance.WsXxxServe(args, handler, errHandler).
DepthwsDepthHandler := func(event *binance.WsDepthEvent) {
fmt.Println(event)
}
errHandler := func(err error) {
fmt.Println(err)
}
doneC, stopC, err := binance.WsDepthServe("LTCBTC", wsDepthHandler, errHandler)
if err != nil {
fmt.Println(err)
return
}
// use stopC to exit
go func() {
time.Sleep(5 * time.Second)
stopC <- struct{}{}
}()
// remove this if you do not want to be blocked here
<-doneC KlinewsKlineHandler := func(event *binance.WsKlineEvent) {
fmt.Println(event)
}
errHandler := func(err error) {
fmt.Println(err)
}
doneC, _, err := binance.WsKlineServe("LTCBTC", "1m", wsKlineHandler, errHandler)
if err != nil {
fmt.Println(err)
return
}
<-doneC AggregatewsAggTradeHandler := func(event *binance.WsAggTradeEvent) {
fmt.Println(event)
}
errHandler := func(err error) {
fmt.Println(err)
}
doneC, _, err := binance.WsAggTradeServe("LTCBTC", wsAggTradeHandler, errHandler)
if err != nil {
fmt.Println(err)
return
}
<-doneC User DatawsHandler := func(message []byte) {
fmt.Println(string(message))
}
errHandler := func(err error) {
fmt.Println(err)
}
doneC, _, err := binance.WsUserDataServe(listenKey, wsHandler, errHandler)
if err != nil {
fmt.Println(err)
return
}
<-doneC Setting Server TimeYour system time may be incorrect and you may use following function to set the time offset based off Binance Server Time: // use the client future for Futures
client.NewSetServerTimeService().Do(context.Background()) Or you can also overwrite the client.TimeOffset = 123 TestnetYou can use the testnet by enabling the corresponding flag.
SpotUse the import (
"github.com/adshao/go-binance/v2"
)
binance.UseTestnet = true
client := binance.NewClient(apiKey, secretKey) Futures (usd(s)-m futures)Use the import (
"github.com/adshao/go-binance/v2/futures"
)
futures.UseTestnet = true
BinanceClient = futures.NewClient(ApiKey, SecretKey) Delivery (coin-m futures)Use the import (
"github.com/adshao/go-binance/v2/delivery"
)
delivery.UseTestnet = true
BinanceClient = delivery.NewClient(ApiKey, SecretKey) |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论