3.3 KiB
3.3 KiB
类与接口
Exchange
- 描述:
Exchange
是一个表示交易所的基本结构体。它包含了交易所的名称、API密钥等信息,并实现了一系列用于交互的方法。
OKXExchange(示例)
- 描述:
OKXExchange
是继承自Exchange
的一个具体实现,专门为OKX交易所提供API调用功能。
方法说明
Exchange 类中的公共方法
-
NewExchange
- 整体说明: 创建并返回一个新的
Exchange
实例。 - 方法签名:
func NewExchange(config Config) (*Exchange, error)
- 入参:
config
: 用于配置交易所信息的结构体。
- 整体说明: 创建并返回一个新的
-
GetTicker
- 整体说明: 获取当前市场的最新价格。
- 方法签名:
func (e *Exchange) GetTicker(symbol string) (*Ticker, error)
- 入参:
symbol
: 表示货币对,如 "BTC/USDT"。
-
PlaceOrder
- 整体说明: 在交易所下单。
- 方法签名:
func (e *Exchange) PlaceOrder(order Order) (*OrderResponse, error)
- 入参:
order
: 包含订单信息的结构体,如买卖类型、价格等。
OKXExchange 类中的公共方法
- FetchOHLCV
- 整体说明: 从OKX交易所获取K线数据。
- 方法签名:
func (o *OKXExchange) FetchOHLCV(symbol string, interval time.Duration, since, limit int64) ([]OHLCV, error)
- 入参:
symbol
: 货币对,如 "BTC/USDT"。interval
: K线周期,如1分钟、5分钟等。since
: 从该时间戳开始获取数据。limit
: 获取的K线数量限制。
使用示例
以下是一个使用 Exchange
和 OKXExchange
的示例代码:
package main
import (
"fmt"
"time"
)
func main() {
// 创建配置结构体,填入必要信息
config := Config{
APIKey: "your_api_key",
SecretKey: "your_secret_key",
BaseURL: "https://www.okx.com/api/v5/",
EnableRateLimit: true,
}
// 使用NewExchange创建一个新的交易所实例
exchange, err := NewExchange(config)
if err != nil {
fmt.Println("Error creating exchange:", err)
return
}
// 获取BTC/USDT的最新价格
ticker, err := exchange.GetTicker("BTC/USDT")
if err != nil {
fmt.Println("Error fetching ticker:", err)
return
}
fmt.Printf("Latest Ticker: %+v\n", ticker)
// 创建一个OKXExchange实例
okxExchange := &OKXExchange{
Exchange: exchange,
}
// 获取BTC/USDT的1分钟K线数据
ohlcv, err := okxExchange.FetchOHLCV("BTC/USDT", 1*time.Minute, 0, 10)
if err != nil {
fmt.Println("Error fetching OHLCV:", err)
return
}
fmt.Printf("Latest OHLCV: %+v\n", ohlcv)
// 下单示例(假设Order结构体已定义)
order := Order{
Symbol: "BTC/USDT",
Type: "buy",
Price: 50000,
Amount: 0.01,
}
response, err := exchange.PlaceOrder(order)
if err != nil {
fmt.Println("Error placing order:", err)
return
}
fmt.Printf("Order Response: %+v\n", response)
}
在这个示例中,我们展示了如何创建交易所实例、获取最新价格和K线数据,并下单。请根据实际情况调整API密钥和其他配置信息。