goex

package module
v2.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2023 License: MIT Imports: 7 Imported by: 0

README

Introduction

  • Unified and standardize the interfaces of various cryptocurrency trading platforms.

goex

Donate

  • [BTC] 1GoEXwVvXG7kNdQSFaUNF35A3izHojLGxP
  • [USDT-TRC20] TGoExC6xvzE4wSA9cYZnwcPaXEjibA5Vtc

Example

package main

import (
	goexv2 "github.com/0xmetaofo/goex/v2"
	"github.com/0xmetaofo/goex/v2/logger"
	"github.com/0xmetaofo/goex/v2/model"
	"github.com/0xmetaofo/goex/v2/options"
	"log"
)

func main() {
	logger.SetLevel(logger.DEBUG)                             //设置日志输出级别
	//goexv2.DefaultHttpCli.SetProxy("socks5://127.0.0.1:1080") //socks代理
	goexv2.DefaultHttpCli.SetTimeout(5)                       // 5 second

	_, _, err := goexv2.OKx.Spot.GetExchangeInfo() //建议调用
	if err != nil {
		panic(err)
	}
	btcUSDTCurrencyPair, err := goexv2.OKx.Spot.NewCurrencyPair(model.BTC, model.USDT)//建议这样构建CurrencyPair
	if err != nil {
		panic(err)
	}
		
	//共有api调用
	log.Println(goexv2.OKx.Spot.GetTicker(btcUSDTCurrencyPair))

	//私有API调用
	okxPrvApi := goexv2.OKx.Spot.NewPrvApi(
		options.WithApiKey(""), 
		options.WithApiSecretKey(""), 
		options.WithPassphrase(""))
	
	//创建订单
	order, _, err := okxPrvApi.CreateOrder(btcUSDTCurrencyPair, 0.01, 18000, model.Spot_Buy, model.OrderType_Limit)
	log.Println(err)
	log.Println(order)
}

Thanks

JetBrains

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	OKx     = okx.New()
	Binance = binance.New()
	HuoBi   = huobi.New()
)
View Source
var (
	DefaultHttpCli = httpcli.Cli
)

Functions

func SetDefaultHttpCli

func SetDefaultHttpCli(cli httpcli.IHttpClient)

Types

type IFuturesPrvRest

type IFuturesPrvRest interface {
	IPrvRest
	GetFuturesAccount(coin string) (acc map[string]model.FuturesAccount, responseBody []byte, err error)
	//GetPositions 获取持仓数据
	//@returns
	//	positions    仓位数据
	//	responseBody 交易所接口返回的原始字节数据
	//	err          错误
	GetPositions(pair model.CurrencyPair, opts ...model.OptionParameter) (positions []model.FuturesPosition, responseBody []byte, err error)
}

IFuturesPrvRest includes some special interface implementations for futures supplement.

type IPrvRest

type IPrvRest interface {
	GetAccount(coin string) (map[string]model.Account, []byte, error)
	//CreateOrder
	//@returns
	//  order        包含订单ID信息
	//  responseBody 交易所接口返回的原始字节数据
	//  err          错误
	CreateOrder(pair model.CurrencyPair, qty, price float64, side model.OrderSide, orderTy model.OrderType, opt ...model.OptionParameter) (order *model.Order, responseBody []byte, err error)
	ClosePosition(pair model.CurrencyPair, posSide string, mgnMode string, opts ...model.OptionParameter) ([]byte, error)
	GetOrderInfo(pair model.CurrencyPair, id string, opt ...model.OptionParameter) (order *model.Order, responseBody []byte, err error)
	GetPendingOrders(pair model.CurrencyPair, opt ...model.OptionParameter) (orders []model.Order, responseBody []byte, err error)
	GetHistoryOrders(pair model.CurrencyPair, opt ...model.OptionParameter) (orders []model.Order, responseBody []byte, err error)
	CancelOrder(pair model.CurrencyPair, id string, opt ...model.OptionParameter) (responseBody []byte, err error)
}

IPrvRest is a private interface specification that requires authorization to call.

type IPubRest

type IPubRest interface {
	GetName() string //获取交易所名字/域名
	// GetDepth
	//    bids: 降序
	//    asks: 升序
	GetDepth(pair model.CurrencyPair, limit int, opt ...model.OptionParameter) (depth *model.Depth, responseBody []byte, err error)
	GetTicker(pair model.CurrencyPair, opt ...model.OptionParameter) (ticker *model.Ticker, responseBody []byte, err error)
	GetKline(pair model.CurrencyPair, period model.KlinePeriod, opt ...model.OptionParameter) (klines []model.Kline, responseBody []byte, err error)
	GetExchangeInfo() (map[string]model.CurrencyPair, []byte, error)
	// NewCurrencyPair 同时支持现货和期货
	//@parameter
	//  - bashSym
	//  - quoteSym
	//	- opts 交割合约的时候传入contract alias name: this_week,next_week, quarter ...
	NewCurrencyPair(baseSym, quoteSym string, opts ...model.OptionParameter) (model.CurrencyPair, error)
}

IPubRest is a public interface that does not require authorization."

type ISpotPrvRest

type ISpotPrvRest interface {
	IPrvRest
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL