Files
gocryptotrader/cmd/documentation/exchanges_templates/huobi.tmpl
cranktakular 2fd4f5ec5b cmd/exchange_template: Update wrapper template, improve documentation (#2009)
* Updating wrapper template, updating documentation, regenerating documentation

* Renaming "streaming api" to "websocket"

* Context is now t

* Update docs/ADD_NEW_EXCHANGE.md

Co-authored-by: Adrian Gallagher <adrian.gallagher@thrasher.io>

* Update cmd/documentation/root_templates/root_readme.tmpl

Co-authored-by: Adrian Gallagher <adrian.gallagher@thrasher.io>

* Fixes an improper example and regenerates documentation

* Corrects typos

* Makes a table label consistent across files

---------

Co-authored-by: Adrian Gallagher <adrian.gallagher@thrasher.io>
2025-11-11 11:07:26 +11:00

116 lines
2.5 KiB
Cheetah

{{define "exchanges huobi" -}}
{{template "header" .}}
## Huobi Exchange
### Current Features
+ REST Support
+ Websocket Support
### How to enable
+ [Enable via configuration](https://github.com/thrasher-corp/gocryptotrader/tree/master/config#enable-exchange-via-config-example)
+ Individual package example below:
```go
// Exchanges will be abstracted out in further updates and examples will be
// supplied then
```
### How to do REST public/private calls
+ If enabled via "configuration".json file the exchange will be added to the
IBotExchange array in the ```go var bot Bot``` and you will only be able to use
the wrapper interface functions for accessing exchange data. View routines.go
for an example of integration usage with GoCryptoTrader. Rudimentary example
below:
main.go
```go
var h exchange.IBotExchange
for i := range bot.Exchanges {
if bot.Exchanges[i].GetName() == "Huobi" {
h = bot.Exchanges[i]
}
}
// Public calls - wrapper functions
// Fetches current ticker information
tick, err := h.UpdateTicker(...)
if err != nil {
// Handle error
}
// Fetches current orderbook information
ob, err := h.UpdateOrderbook(...)
if err != nil {
// Handle error
}
// Private calls - wrapper functions - make sure your APIKEY and APISECRET are
// set and AuthenticatedAPISupport is set to true
// Fetches current account information
accountInfo, err := h.GetAccountInfo()
if err != nil {
// Handle error
}
```
+ If enabled via individually importing package, rudimentary example below:
```go
// Public calls
// Fetches current ticker information
ticker, err := h.GetTicker()
if err != nil {
// Handle error
}
// Fetches current orderbook information
ob, err := h.GetOrderBook()
if err != nil {
// Handle error
}
// Private calls - make sure your APIKEY and APISECRET are set and
// AuthenticatedAPISupport is set to true
// GetUserInfo returns account info
accountInfo, err := h.GetUserInfo(...)
if err != nil {
// Handle error
}
// Submits an order to the exchange and returns its tradeID
tradeID, err := h.Trade(...)
if err != nil {
// Handle error
}
```
### Subscriptions
All subscriptions are for spot only.
Default Public Subscriptions:
- Ticker
- Candles ( Interval: 1min )
- Orderbook ( Level: 0 - No aggregation )
- Configure Level: 1-5 for depth aggregation, for example:
```json
{"enabled": true, "channel": "orderbook", "asset": "spot", "levels": 1}
```
- Trades
Default Authenticated Subscriptions:
- Account Trades
- Account Orders
- Account Updates
{{template "donations" .}}
{{end}}