quant

package
v0.0.0-...-4d8ee2f Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Overview

Package quant provides a minimal AI-friendly interface to crypto exchanges. Currently supports Binance (Spot) via environment variables.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BinanceFuturesRequest

func BinanceFuturesRequest(method, endpoint string, params url.Values, result interface{}) error

BinanceFuturesRequest 通用的 Binance Futures API 请求函数 method: HTTP 方法 (GET, POST, etc.) endpoint: API 端点路径 (e.g., "/fapi/v1/commissionRate") params: 请求参数 result: 用于存储响应数据的指针

func BuyMarket

func BuyMarket(symbol string, quoteAmount float64) (*binance.CreateOrderResponse, error)

BuyMarket buys using quote currency (e.g., USDT).

func CreateSignature

func CreateSignature(queryString, secretKey string) string

CreateSignature 创建 HMAC SHA256 签名 queryString: 需要签名的查询参数字符串 secretKey: API密钥 返回: 十六进制格式的签名字符串

func CreateSignatureFromParams

func CreateSignatureFromParams(params url.Values, secretKey string) (signature, queryString string)

CreateSignatureFromParams 从 url.Values 创建签名 params: 请求参数 secretKey: API密钥 返回: 签名和编码后的查询字符串

func FetchHistoricalPrices

func FetchHistoricalPrices(symbol, interval string, limit int) ([]*binance.Kline, error)

FetchHistoricalPrices returns historical klines.

func FetchLatestPrice

func FetchLatestPrice(symbol string) (*binance.SymbolPrice, error)

FetchLatestPrice returns the latest price as a binance.SymbolPrice.

func Format

func Format(t time.Time) string

时间格式化

func FuturesBuyMarket

func FuturesBuyMarket(symbol string, quantity float64) (*futures.CreateOrderResponse, error)

FuturesBuyMarket opens a long position with market order

func FuturesClosePosition

func FuturesClosePosition(symbol string) (*futures.CreateOrderResponse, error)

FuturesClosePosition closes current position (auto detect direction)

func FuturesGetAccountDefaultFeeRate

func FuturesGetAccountDefaultFeeRate() (makerFeeRate string, takerFeeRate string, err error)

FuturesGetAccountDefaultFeeRate 获取账户的默认交易手续费率

func FuturesGetBalance

func FuturesGetBalance(asset string) (string, error)

FuturesGetBalance returns USDT-margined futures account balance

func FuturesGetCurrentFundingRate

func FuturesGetCurrentFundingRate(symbol string) (fundingRate string, nextFundingTime int64, err error)

FuturesGetCurrentFundingRate 获取指定交易对的当前资金费率 返回资金费率 (例如 0.0001 表示 0.01%) 和下次更新时间戳

func FuturesGetFeeRateForSymbol

func FuturesGetFeeRateForSymbol(symbol string) (makerFeeRate string, takerFeeRate string, err error)

FuturesGetFeeRateForSymbol 获取指定交易对的当前交易手续费率

func FuturesGetKlines

func FuturesGetKlines(symbol, interval string, limit int) ([]*futures.Kline, error)

FuturesGetKlines returns historical futures klines

func FuturesGetPosition

func FuturesGetPosition(symbol string) (*futures.PositionRisk, error)

FuturesGetPosition returns position info for a symbol

func FuturesGetTickerPrice

func FuturesGetTickerPrice(symbol string) (string, error)

func FuturesSellMarket

func FuturesSellMarket(symbol string, quantity float64) (*futures.CreateOrderResponse, error)

FuturesSellMarket opens a short position or closes long

func GetAccountBalance

func GetAccountBalance(currency string) (string, error)

GetAccountBalance returns the free balance of a currency.

func ListOpenOrders

func ListOpenOrders(symbol string) ([]*binance.Order, error)

ListOpenOrders returns open orders as []*binance.Order.

func SellMarket

func SellMarket(symbol string, baseAmount float64) (*binance.CreateOrderResponse, error)

SellMarket sells base asset.

Types

type CommissionRateResponse

type CommissionRateResponse struct {
	Symbol              string `json:"symbol"`
	MakerCommissionRate string `json:"makerCommissionRate"` // 例如 "0.000200" 表示 0.02%
	TakerCommissionRate string `json:"takerCommissionRate"` // 例如 "0.000400" 表示 0.04%
}

CommissionRateResponse 定义 API 响应结构

type IndicatorConfig

type IndicatorConfig struct {
	EMAs       []int `json:"emas"`       // [12, 26, 50]
	MAs        []int `json:"mas"`        // [20, 50]
	RSI        []int `json:"rsi"`        // [14]
	MACD       bool  `json:"macd"`       // 是否计算MACD
	Stochastic []int `json:"stochastic"` // [14, 3]
	ATR        []int `json:"atr"`        // [14]
	Bollinger  []int `json:"bollinger"`  // [20, 2]
}

技术指标配置

type MultiTimeframeIndicator

type MultiTimeframeIndicator struct {
	Timestamp  time.Time                      `json:"timestamp"`
	Symbol     string                         `json:"symbol"`
	Timeframes map[string]*TechnicalIndicator `json:"timeframes"` // 周期 -> 指标
}

多周期技术指标

func (*MultiTimeframeIndicator) ToJSON

func (multi *MultiTimeframeIndicator) ToJSON() string

输出原始JSON数据

func (*MultiTimeframeIndicator) ToSimpleString

func (multi *MultiTimeframeIndicator) ToSimpleString(timeframeOrder []string) string

输出清晰格式(适合AI分析)

type ProfessionalIndicatorCalculator

type ProfessionalIndicatorCalculator struct {
	// contains filtered or unexported fields
}

专业指标计算器(使用go-talib)

func NewIndicatorCalculator

func NewIndicatorCalculator(config *IndicatorConfig) *ProfessionalIndicatorCalculator

func (*ProfessionalIndicatorCalculator) Calculate

func (pic *ProfessionalIndicatorCalculator) Calculate(symbol, timeframe string, klines []*futures.Kline) *TechnicalIndicator

计算单个周期指标 计算单个周期指标

func (*ProfessionalIndicatorCalculator) CalculateMultiTimeframe

func (pic *ProfessionalIndicatorCalculator) CalculateMultiTimeframe(symbol string, timeframeData map[string][]*futures.Kline) *MultiTimeframeIndicator

计算多周期指标

type TechnicalIndicator

type TechnicalIndicator struct {
	Timestamp  time.Time          `json:"timestamp"`
	Symbol     string             `json:"symbol"`
	Price      float64            `json:"price"`
	Indicators map[string]float64 `json:"indicators"` // 指标值
}

单个周期技术指标

Jump to

Keyboard shortcuts

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