Documentation ¶
Index ¶
- Constants
- Variables
- type AccountConfigUpdateEvent
- type AccountUpdate
- type AccountUpdateEvent
- type AccountUpdateEventReasonType
- type AggTradeEvent
- type Balance
- type BalanceUpdateEvent
- type BookTickerEvent
- type BorrowRepayType
- type ContinuousKLineEvent
- type DepthEntry
- type DepthEvent
- type EventBase
- type EventType
- type Exchange
- func (e *Exchange) BorrowMarginAsset(ctx context.Context, asset string, amount fixedpoint.Value) error
- func (e *Exchange) CancelOrders(ctx context.Context, orders ...types.Order) (err error)
- func (e *Exchange) CancelReplace(ctx context.Context, cancelReplaceMode types.CancelReplaceModeType, ...) (*types.Order, error)
- func (e *Exchange) DefaultFeeRates() types.ExchangeFee
- func (e *Exchange) GetFuturesClient() *binanceapi.FuturesRestClient
- func (e *Exchange) IsSupportedInterval(interval types.Interval) bool
- func (e *Exchange) Name() types.ExchangeName
- func (e *Exchange) NewStream() types.Stream
- func (e *Exchange) PlatformFeeCurrency() string
- func (e *Exchange) QueryAccount(ctx context.Context) (*types.Account, error)
- func (e *Exchange) QueryAccountBalances(ctx context.Context) (types.BalanceMap, error)
- func (e *Exchange) QueryAveragePrice(ctx context.Context, symbol string) (fixedpoint.Value, error)
- func (e *Exchange) QueryClosedOrders(ctx context.Context, symbol string, since, until time.Time, lastOrderID uint64) (orders []types.Order, err error)
- func (e *Exchange) QueryCrossMarginAccount(ctx context.Context) (*types.Account, error)
- func (e *Exchange) QueryDepositHistory(ctx context.Context, asset string, since, until time.Time) (allDeposits []types.Deposit, err error)
- func (e *Exchange) QueryDepth(ctx context.Context, symbol string) (snapshot types.SliceOrderBook, finalUpdateID int64, err error)
- func (e *Exchange) QueryFundingRateHistory(ctx context.Context, symbol string) (*types.FundingRate, error)
- func (e *Exchange) QueryFuturesAccount(ctx context.Context) (*types.Account, error)
- func (e *Exchange) QueryFuturesIncomeHistory(ctx context.Context, symbol string, incomeType binanceapi.FuturesIncomeType, ...) ([]binanceapi.FuturesIncome, error)
- func (e *Exchange) QueryFuturesKLines(ctx context.Context, symbol string, interval types.Interval, ...) ([]types.KLine, error)
- func (e *Exchange) QueryFuturesPositionRisks(ctx context.Context, symbol string) error
- func (e *Exchange) QueryHistoricalTrades(ctx context.Context, symbol string, limit uint64) ([]types.Trade, error)
- func (e *Exchange) QueryInterestHistory(ctx context.Context, asset string, startTime, endTime *time.Time) ([]types.MarginInterest, error)
- func (e *Exchange) QueryIsolatedMarginAccount(ctx context.Context) (*types.Account, error)
- func (e *Exchange) QueryKLines(ctx context.Context, symbol string, interval types.Interval, ...) ([]types.KLine, error)
- func (e *Exchange) QueryLiquidationHistory(ctx context.Context, startTime, endTime *time.Time) ([]types.MarginLiquidation, error)
- func (e *Exchange) QueryLoanHistory(ctx context.Context, asset string, startTime, endTime *time.Time) ([]types.MarginLoan, error)
- func (e *Exchange) QueryMarginAssetMaxBorrowable(ctx context.Context, asset string) (amount fixedpoint.Value, err error)
- func (e *Exchange) QueryMarginBorrowHistory(ctx context.Context, asset string) error
- func (e *Exchange) QueryMarkets(ctx context.Context) (types.MarketMap, error)
- func (e *Exchange) QueryOpenOrders(ctx context.Context, symbol string) (orders []types.Order, err error)
- func (e *Exchange) QueryOrder(ctx context.Context, q types.OrderQuery) (*types.Order, error)
- func (e *Exchange) QueryOrderTrades(ctx context.Context, q types.OrderQuery) ([]types.Trade, error)
- func (e *Exchange) QueryPositionRisk(ctx context.Context, symbol string) (*types.PositionRisk, error)
- func (e *Exchange) QueryPremiumIndex(ctx context.Context, symbol string) (*types.PremiumIndex, error)
- func (e *Exchange) QueryRepayHistory(ctx context.Context, asset string, startTime, endTime *time.Time) ([]types.MarginRepay, error)
- func (e *Exchange) QueryRewards(ctx context.Context, startTime time.Time) ([]types.Reward, error)
- func (e *Exchange) QuerySpotAccount(ctx context.Context) (*types.Account, error)
- func (e *Exchange) QueryTicker(ctx context.Context, symbol string) (*types.Ticker, error)
- func (e *Exchange) QueryTickers(ctx context.Context, symbol ...string) (map[string]types.Ticker, error)
- func (e *Exchange) QueryTrades(ctx context.Context, symbol string, options *types.TradeQueryOptions) ([]types.Trade, error)
- func (e *Exchange) QueryWithdrawHistory(ctx context.Context, asset string, since, until time.Time) (withdraws []types.Withdraw, err error)
- func (e *Exchange) RepayMarginAsset(ctx context.Context, asset string, amount fixedpoint.Value) error
- func (e *Exchange) SubmitOrder(ctx context.Context, order types.SubmitOrder) (createdOrder *types.Order, err error)
- func (e *Exchange) SupportedInterval() map[types.Interval]int
- func (e *Exchange) TransferFuturesAccountAsset(ctx context.Context, asset string, amount fixedpoint.Value, ...) error
- func (e *Exchange) TransferMarginAccountAsset(ctx context.Context, asset string, amount fixedpoint.Value, ...) error
- func (e *Exchange) Withdraw(ctx context.Context, asset string, amount fixedpoint.Value, address string, ...) error
- type ExecutionReportEvent
- type ForceOrderEvent
- type ForceOrderEventInner
- type FuturesStreamBalance
- type FuturesStreamPosition
- type KLine
- type KLineEvent
- type ListenKeyExpired
- type MarginCallEvent
- type MarkPriceUpdateEvent
- type MarketTradeEvent
- type OrderTrade
- type OrderTradeUpdateEvent
- type OutboundAccountInfoEvent
- type OutboundAccountPositionEvent
- type PartialDepthEvent
- type ResultEvent
- type Stream
- func (s *Stream) EmitAccountConfigUpdateEvent(e *AccountConfigUpdateEvent)
- func (s *Stream) EmitAccountUpdateEvent(e *AccountUpdateEvent)
- func (s *Stream) EmitAggTradeEvent(e *AggTradeEvent)
- func (s *Stream) EmitBalanceUpdateEvent(event *BalanceUpdateEvent)
- func (s *Stream) EmitBookTickerEvent(event *BookTickerEvent)
- func (s *Stream) EmitContinuousKLineClosedEvent(e *ContinuousKLineEvent)
- func (s *Stream) EmitContinuousKLineEvent(e *ContinuousKLineEvent)
- func (s *Stream) EmitDepthEvent(e *DepthEvent)
- func (s *Stream) EmitExecutionReportEvent(event *ExecutionReportEvent)
- func (s *Stream) EmitForceOrderEvent(e *ForceOrderEvent)
- func (s *Stream) EmitKLineClosedEvent(e *KLineEvent)
- func (s *Stream) EmitKLineEvent(e *KLineEvent)
- func (s *Stream) EmitListenKeyExpired(e *ListenKeyExpired)
- func (s *Stream) EmitMarginCallEvent(e *MarginCallEvent)
- func (s *Stream) EmitMarkPriceUpdateEvent(e *MarkPriceUpdateEvent)
- func (s *Stream) EmitMarketTradeEvent(e *MarketTradeEvent)
- func (s *Stream) EmitOrderTradeUpdateEvent(e *OrderTradeUpdateEvent)
- func (s *Stream) EmitOutboundAccountInfoEvent(event *OutboundAccountInfoEvent)
- func (s *Stream) EmitOutboundAccountPositionEvent(event *OutboundAccountPositionEvent)
- func (s *Stream) OnAccountConfigUpdateEvent(cb func(e *AccountConfigUpdateEvent))
- func (s *Stream) OnAccountUpdateEvent(cb func(e *AccountUpdateEvent))
- func (s *Stream) OnAggTradeEvent(cb func(e *AggTradeEvent))
- func (s *Stream) OnBalanceUpdateEvent(cb func(event *BalanceUpdateEvent))
- func (s *Stream) OnBookTickerEvent(cb func(event *BookTickerEvent))
- func (s *Stream) OnContinuousKLineClosedEvent(cb func(e *ContinuousKLineEvent))
- func (s *Stream) OnContinuousKLineEvent(cb func(e *ContinuousKLineEvent))
- func (s *Stream) OnDepthEvent(cb func(e *DepthEvent))
- func (s *Stream) OnExecutionReportEvent(cb func(event *ExecutionReportEvent))
- func (s *Stream) OnForceOrderEvent(cb func(e *ForceOrderEvent))
- func (s *Stream) OnKLineClosedEvent(cb func(e *KLineEvent))
- func (s *Stream) OnKLineEvent(cb func(e *KLineEvent))
- func (s *Stream) OnListenKeyExpired(cb func(e *ListenKeyExpired))
- func (s *Stream) OnMarginCallEvent(cb func(e *MarginCallEvent))
- func (s *Stream) OnMarkPriceUpdateEvent(cb func(e *MarkPriceUpdateEvent))
- func (s *Stream) OnMarketTradeEvent(cb func(e *MarketTradeEvent))
- func (s *Stream) OnOrderTradeUpdateEvent(cb func(e *OrderTradeUpdateEvent))
- func (s *Stream) OnOutboundAccountInfoEvent(cb func(event *OutboundAccountInfoEvent))
- func (s *Stream) OnOutboundAccountPositionEvent(cb func(event *OutboundAccountPositionEvent))
- type StreamEventHub
- type WebSocketCommand
Constants ¶
const BNB = "BNB"
const BinanceTestBaseURL = "https://testnet.binance.vision"
const BinanceUSBaseURL = "https://api.binance.us"
const BinanceUSWebSocketURL = "wss://stream.binance.us:9443"
const DefaultDepthLimit = 5000
const FutureTestBaseURL = "https://testnet.binancefuture.com"
const FuturesWebSocketTestURL = "wss://stream.binancefuture.com"
const FuturesWebSocketURL = "wss://fstream.binance.com"
const WebSocketTestURL = "wss://testnet.binance.vision"
const WebSocketURL = "wss://stream.binance.com:9443"
Variables ¶
var SupportedIntervals = map[types.Interval]int{ types.Interval1s: 1, types.Interval1m: 1 * 60, types.Interval5m: 5 * 60, types.Interval15m: 15 * 60, types.Interval30m: 30 * 60, types.Interval1h: 60 * 60, types.Interval2h: 60 * 60 * 2, types.Interval4h: 60 * 60 * 4, types.Interval6h: 60 * 60 * 6, types.Interval12h: 60 * 60 * 12, types.Interval1d: 60 * 60 * 24, types.Interval3d: 60 * 60 * 24 * 3, types.Interval1w: 60 * 60 * 24 * 7, }
in seconds
Functions ¶
This section is empty.
Types ¶
type AccountConfigUpdateEvent ¶
type AccountConfigUpdateEvent struct { EventBase Transaction int64 `json:"T"` // When the leverage of a trade pair changes, // the payload will contain the object ac to represent the account configuration of the trade pair, // where s represents the specific trade pair and l represents the leverage AccountConfig struct { Symbol string `json:"s"` Leverage fixedpoint.Value `json:"l"` } `json:"ac"` // When the user Multi-Assets margin mode changes the payload will contain the object ai representing the user account configuration, // where j represents the user Multi-Assets margin mode MarginModeConfig struct { MultiAssetsMode bool `json:"j"` } `json:"ai"` }
type AccountUpdate ¶
type AccountUpdate struct { // m: DEPOSIT WITHDRAW // ORDER FUNDING_FEE // WITHDRAW_REJECT ADJUSTMENT // INSURANCE_CLEAR // ADMIN_DEPOSIT ADMIN_WITHDRAW // MARGIN_TRANSFER MARGIN_TYPE_CHANGE // ASSET_TRANSFER // OPTIONS_PREMIUM_FEE OPTIONS_SETTLE_PROFIT // AUTO_EXCHANGE // COIN_SWAP_DEPOSIT COIN_SWAP_WITHDRAW EventReasonType AccountUpdateEventReasonType `json:"m"` Balances []FuturesStreamBalance `json:"B,omitempty"` Positions []FuturesStreamPosition `json:"P,omitempty"` }
type AccountUpdateEvent ¶
type AccountUpdateEvent struct { EventBase Transaction int64 `json:"T"` AccountUpdate AccountUpdate `json:"a"` }
AccountUpdateEvent is only used in the futures user data stream
type AccountUpdateEventReasonType ¶
type AccountUpdateEventReasonType string
const ( AccountUpdateEventReasonDeposit AccountUpdateEventReasonType = "DEPOSIT" AccountUpdateEventReasonWithdraw AccountUpdateEventReasonType = "WITHDRAW" AccountUpdateEventReasonOrder AccountUpdateEventReasonType = "ORDER" AccountUpdateEventReasonFundingFee AccountUpdateEventReasonType = "FUNDING_FEE" AccountUpdateEventReasonMarginTransfer AccountUpdateEventReasonType = "MARGIN_TRANSFER" AccountUpdateEventReasonMarginTypeChange AccountUpdateEventReasonType = "MARGIN_TYPE_CHANGE" AccountUpdateEventReasonAssetTransfer AccountUpdateEventReasonType = "ASSET_TRANSFER" AccountUpdateEventReasonAdminDeposit AccountUpdateEventReasonType = "ADMIN_DEPOSIT" AccountUpdateEventReasonAdminWithdraw AccountUpdateEventReasonType = "ADMIN_WITHDRAW" )
type AggTradeEvent ¶
type AggTradeEvent struct { EventBase Symbol string `json:"s"` Quantity fixedpoint.Value `json:"q"` Price fixedpoint.Value `json:"p"` FirstTradeId int64 `json:"f"` LastTradeId int64 `json:"l"` OrderTradeTime int64 `json:"T"` IsMaker bool `json:"m"` Dummy bool `json:"M"` }
func (*AggTradeEvent) Trade ¶
func (e *AggTradeEvent) Trade() types.Trade
type Balance ¶
type Balance struct { Asset string `json:"a"` Free fixedpoint.Value `json:"f"` Locked fixedpoint.Value `json:"l"` }
outboundAccountInfo
{ "e": "outboundAccountInfo", // KLineEvent type "E": 1499405658849, // KLineEvent time "m": 0, // Maker commission rate (bips) "t": 0, // Taker commission rate (bips) "b": 0, // Buyer commission rate (bips) "s": 0, // Seller commission rate (bips) "T": true, // Can trade? "W": true, // Can withdraw? "D": true, // Can deposit? "u": 1499405658848, // Time of last account update "B": [ // AccountBalances array { "a": "LTC", // Asset "f": "17366.18538083", // Free amount "l": "0.00000000" // Locked amount }, { "a": "BTC", "f": "10537.85314051", "l": "2.19464093" }, { "a": "ETH", "f": "17902.35190619", "l": "0.00000000" }, { "a": "BNC", "f": "1114503.29769312", "l": "0.00000000" }, { "a": "NEO", "f": "0.00000000", "l": "0.00000000" } ], "P": [ // Account Permissions "SPOT" ] }
type BalanceUpdateEvent ¶
type BalanceUpdateEvent struct { EventBase Asset string `json:"a"` Delta fixedpoint.Value `json:"d"` ClearTime types.MillisecondTimestamp `json:"T"` }
event: balanceUpdate
Balance Update occurs during the following:
Deposits or withdrawals from the account Transfer of funds between accounts (e.g. Spot to Margin)
{ "e": "balanceUpdate", //KLineEvent Type "E": 1573200697110, //KLineEvent Time "a": "BTC", //Asset "d": "100.00000000", //Balance Delta "T": 1573200697068 //Clear Time }
This event is only for Spot
func (*BalanceUpdateEvent) SlackAttachment ¶
func (e *BalanceUpdateEvent) SlackAttachment() slack.Attachment
type BookTickerEvent ¶
type BookTickerEvent struct { EventBase UpdateID int64 `json:"u"` Symbol string `json:"s"` Buy fixedpoint.Value `json:"b"` BuySize fixedpoint.Value `json:"B"` Sell fixedpoint.Value `json:"a"` SellSize fixedpoint.Value `json:"A"` }
{ "u":400900217, // order book updateId "s":"BNBUSDT", // symbol "b":"25.35190000", // best bid price "B":"31.21000000", // best bid qty "a":"25.36520000", // best ask price "A":"40.66000000" // best ask qty }
func (*BookTickerEvent) BookTicker ¶
func (k *BookTickerEvent) BookTicker() types.BookTicker
type BorrowRepayType ¶
type BorrowRepayType interface { types.MarginLoan | types.MarginRepay }
type ContinuousKLineEvent ¶
type DepthEntry ¶
type DepthEntry struct { PriceLevel fixedpoint.Value Quantity fixedpoint.Value }
type DepthEvent ¶
type DepthEvent struct { EventBase Symbol string `json:"s"` FirstUpdateID int64 `json:"U"` FinalUpdateID int64 `json:"u"` Bids types.PriceVolumeSlice `json:"b"` Asks types.PriceVolumeSlice `json:"a"` }
func (*DepthEvent) OrderBook ¶
func (e *DepthEvent) OrderBook() (book types.SliceOrderBook, err error)
func (*DepthEvent) String ¶
func (e *DepthEvent) String() (o string)
type EventBase ¶
type EventBase struct { Event string `json:"e"` // event name Time types.MillisecondTimestamp `json:"E"` // event time }
type EventType ¶
type EventType = string
const ( EventTypeKLine EventType = "kline" EventTypeOutboundAccountPosition EventType = "outboundAccountPosition" EventTypeOutboundAccountInfo EventType = "outboundAccountInfo" EventTypeBalanceUpdate EventType = "balanceUpdate" EventTypeExecutionReport EventType = "executionReport" EventTypeDepthUpdate EventType = "depthUpdate" EventTypeListenKeyExpired EventType = "listenKeyExpired" EventTypeTrade EventType = "trade" EventTypeAggTrade EventType = "aggTrade" EventTypeForceOrder EventType = "forceOrder" // Our side defines the following event types since binance doesn't // define the event name from the server messages. // EventTypeBookTicker EventType = "bookTicker" EventTypePartialDepth EventType = "partialDepth" )
type Exchange ¶
type Exchange struct { types.MarginSettings types.FuturesSettings // contains filtered or unexported fields }
func (*Exchange) BorrowMarginAsset ¶
func (*Exchange) CancelOrders ¶
func (*Exchange) CancelReplace ¶
func (*Exchange) DefaultFeeRates ¶
func (e *Exchange) DefaultFeeRates() types.ExchangeFee
DefaultFeeRates returns the Binance VIP 0 fee schedule See also https://www.binance.com/en/fee/schedule See futures fee at: https://www.binance.com/en/fee/futureFee
func (*Exchange) GetFuturesClient ¶
func (e *Exchange) GetFuturesClient() *binanceapi.FuturesRestClient
func (*Exchange) IsSupportedInterval ¶
func (*Exchange) Name ¶
func (e *Exchange) Name() types.ExchangeName
func (*Exchange) PlatformFeeCurrency ¶
func (*Exchange) QueryAccount ¶
func (*Exchange) QueryAccountBalances ¶
func (*Exchange) QueryAveragePrice ¶
func (*Exchange) QueryClosedOrders ¶
func (*Exchange) QueryCrossMarginAccount ¶
func (*Exchange) QueryDepositHistory ¶
func (*Exchange) QueryDepth ¶
func (e *Exchange) QueryDepth(ctx context.Context, symbol string) (snapshot types.SliceOrderBook, finalUpdateID int64, err error)
QueryDepth query the order book depth of a symbol
func (*Exchange) QueryFundingRateHistory ¶
func (*Exchange) QueryFuturesAccount ¶
QueryFuturesAccount gets the futures account balances from Binance Balance.Available = Wallet Balance(in Binance UI) - Used Margin Balance.Locked = Used Margin
func (*Exchange) QueryFuturesIncomeHistory ¶
func (e *Exchange) QueryFuturesIncomeHistory( ctx context.Context, symbol string, incomeType binanceapi.FuturesIncomeType, startTime, endTime *time.Time, ) ([]binanceapi.FuturesIncome, error)
QueryFuturesIncomeHistory queries the income history on the binance futures account This is more binance futures specific API, the convert function is not designed yet. TODO: consider other futures platforms and design the common data structure for this
func (*Exchange) QueryFuturesKLines ¶
func (*Exchange) QueryFuturesPositionRisks ¶
func (*Exchange) QueryHistoricalTrades ¶
func (*Exchange) QueryInterestHistory ¶
func (*Exchange) QueryIsolatedMarginAccount ¶
func (*Exchange) QueryKLines ¶
func (e *Exchange) QueryKLines( ctx context.Context, symbol string, interval types.Interval, options types.KLineQueryOptions, ) ([]types.KLine, error)
QueryKLines queries the Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time. Binance uses inclusive start time query range, eg: https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1m&startTime=1620172860000 the above query will return a kline with startTime = 1620172860000 and, https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1m&startTime=1620172860000&endTime=1620172920000 the above query will return a kline with startTime = 1620172860000, and a kline with endTime = 1620172860000
the endTime of a binance kline, is the (startTime + interval time - 1 millisecond), e.g., millisecond unix timestamp: 1620172860000 and 1620172919999
func (*Exchange) QueryLiquidationHistory ¶
func (*Exchange) QueryLoanHistory ¶
func (*Exchange) QueryMarginAssetMaxBorrowable ¶
func (*Exchange) QueryMarginBorrowHistory ¶
func (*Exchange) QueryMarkets ¶
func (*Exchange) QueryOpenOrders ¶
func (*Exchange) QueryOrder ¶
func (*Exchange) QueryOrderTrades ¶
func (*Exchange) QueryPositionRisk ¶
func (*Exchange) QueryPremiumIndex ¶
func (e *Exchange) QueryPremiumIndex(ctx context.Context, symbol string) (*types.PremiumIndex, error)
QueryPremiumIndex is only for futures
func (*Exchange) QueryRepayHistory ¶
func (*Exchange) QueryRewards ¶
func (*Exchange) QuerySpotAccount ¶
func (*Exchange) QueryTicker ¶
func (*Exchange) QueryTickers ¶
func (*Exchange) QueryTrades ¶
func (*Exchange) QueryWithdrawHistory ¶
func (*Exchange) RepayMarginAsset ¶
func (*Exchange) SubmitOrder ¶
func (*Exchange) TransferFuturesAccountAsset ¶
func (e *Exchange) TransferFuturesAccountAsset( ctx context.Context, asset string, amount fixedpoint.Value, io types.TransferDirection, ) error
func (*Exchange) TransferMarginAccountAsset ¶
func (e *Exchange) TransferMarginAccountAsset( ctx context.Context, asset string, amount fixedpoint.Value, io types.TransferDirection, ) error
TransferMarginAccountAsset transfers the asset into/out from the margin account
types.TransferIn => Spot to Margin types.TransferOut => Margin to Spot
to call this method, you must set the IsMargin = true
type ExecutionReportEvent ¶
type ExecutionReportEvent struct { EventBase Symbol string `json:"s"` Side string `json:"S"` ClientOrderID string `json:"c"` OriginalClientOrderID string `json:"C"` OrderType string `json:"o"` OrderCreationTime int64 `json:"O"` TimeInForce string `json:"f"` IcebergQuantity fixedpoint.Value `json:"F"` OrderQuantity fixedpoint.Value `json:"q"` QuoteOrderQuantity fixedpoint.Value `json:"Q"` OrderPrice fixedpoint.Value `json:"p"` StopPrice fixedpoint.Value `json:"P"` IsOnBook bool `json:"w"` WorkingTime types.MillisecondTimestamp `json:"W"` TrailingTime types.MillisecondTimestamp `json:"D"` IsMaker bool `json:"m"` Ignore bool `json:"M"` CommissionAmount fixedpoint.Value `json:"n"` CommissionAsset string `json:"N"` CurrentExecutionType string `json:"x"` CurrentOrderStatus string `json:"X"` OrderID int64 `json:"i"` Ignored int64 `json:"I"` TradeID int64 `json:"t"` TransactionTime int64 `json:"T"` LastExecutedQuantity fixedpoint.Value `json:"l"` LastExecutedPrice fixedpoint.Value `json:"L"` CumulativeFilledQuantity fixedpoint.Value `json:"z"` CumulativeQuoteAssetTransactedQuantity fixedpoint.Value `json:"Z"` LastQuoteAssetTransactedQuantity fixedpoint.Value `json:"Y"` }
executionReport
{ "e": "executionReport", // Event type "E": 1499405658658, // Event time "s": "ETHBTC", // Symbol "c": "mUvoqJxFIILMdfAW5iGSOW", // Client order ID "S": "BUY", // Side "o": "LIMIT", // Order type "f": "GTC", // Time in force "q": "1.00000000", // Order quantity "p": "0.10264410", // Order price "P": "0.00000000", // Stop price "F": "0.00000000", // Iceberg quantity "g": -1, // OrderListId "C": null, // Original client order ID; This is the ID of the order being canceled "x": "NEW", // Current execution type "X": "NEW", // Current order status "r": "NONE", // Order reject reason; will be an error code. "i": 4293153, // Order ID "l": "0.00000000", // Last executed quantity "z": "0.00000000", // Cumulative filled quantity "L": "0.00000000", // Last executed price "n": "0", // Commission amount "N": null, // Commission asset "T": 1499405658657, // Transaction time "t": -1, // Trade ID "I": 8641984, // Ignore "w": true, // Is the order on the book? "m": false, // Is this trade the maker side? "M": false, // Ignore "O": 1499405658657, // Order creation time "Z": "0.00000000", // Cumulative quote asset transacted quantity "Y": "0.00000000", // Last quote asset transacted quantity (i.e. lastPrice * lastQty) "Q": "0.00000000" // Quote Order Quantity }
type ForceOrderEvent ¶
type ForceOrderEvent struct { EventBase Order ForceOrderEventInner `json:"o"` }
func (*ForceOrderEvent) LiquidationInfo ¶
func (e *ForceOrderEvent) LiquidationInfo() types.LiquidationInfo
type ForceOrderEventInner ¶
type ForceOrderEventInner struct { Symbol string `json:"s"` TradeTime types.MillisecondTimestamp `json:"T"` Side string `json:"S"` OrderType string `json:"o"` TimeInForce string `json:"f"` Quantity fixedpoint.Value `json:"q"` Price fixedpoint.Value `json:"p"` AveragePrice fixedpoint.Value `json:"ap"` OrderStatus string `json:"X"` LastFilledQuantity fixedpoint.Value `json:"l"` LastFilledAccQuantity fixedpoint.Value `json:"z"` }
type FuturesStreamBalance ¶
type FuturesStreamBalance struct { Asset string `json:"a"` WalletBalance fixedpoint.Value `json:"wb"` CrossWalletBalance fixedpoint.Value `json:"cw"` BalanceChange fixedpoint.Value `json:"bc"` }
type FuturesStreamPosition ¶
type FuturesStreamPosition struct { Symbol string `json:"s"` PositionAmount fixedpoint.Value `json:"pa"` EntryPrice fixedpoint.Value `json:"ep"` AccumulatedRealizedPnL fixedpoint.Value `json:"cr"` // (Pre-fee) Accumulated Realized PnL UnrealizedPnL fixedpoint.Value `json:"up"` MarginType string `json:"mt"` IsolatedWallet fixedpoint.Value `json:"iw"` PositionSide string `json:"ps"` }
type KLine ¶
type KLine struct { StartTime int64 `json:"t"` EndTime int64 `json:"T"` Symbol string `json:"s"` Interval string `json:"i"` Open fixedpoint.Value `json:"o"` Close fixedpoint.Value `json:"c"` High fixedpoint.Value `json:"h"` Low fixedpoint.Value `json:"l"` Volume fixedpoint.Value `json:"v"` // base asset volume (like 10 BTC) QuoteVolume fixedpoint.Value `json:"q"` // quote asset volume TakerBuyBaseAssetVolume fixedpoint.Value `json:"V"` // taker buy base asset volume (like 10 BTC) TakerBuyQuoteAssetVolume fixedpoint.Value `json:"Q"` // taker buy quote asset volume (like 1000USDT) LastTradeID int `json:"L"` NumberOfTrades int64 `json:"n"` Closed bool `json:"x"` }
type KLineEvent ¶
type ListenKeyExpired ¶
type ListenKeyExpired struct {
EventBase
}
type MarginCallEvent ¶
type MarginCallEvent struct { EventBase CrossWalletBalance fixedpoint.Value `json:"cw"` P []struct { Symbol string `json:"s"` PositionSide string `json:"ps"` PositionAmount fixedpoint.Value `json:"pa"` MarginType string `json:"mt"` IsolatedWallet fixedpoint.Value `json:"iw"` MarkPrice fixedpoint.Value `json:"mp"` UnrealizedPnL fixedpoint.Value `json:"up"` MaintenanceMarginRequired fixedpoint.Value `json:"mm"` } `json:"p"` // Position(s) of Margin Call }
type MarkPriceUpdateEvent ¶
type MarkPriceUpdateEvent struct { EventBase Symbol string `json:"s"` MarkPrice fixedpoint.Value `json:"p"` IndexPrice fixedpoint.Value `json:"i"` EstimatedPrice fixedpoint.Value `json:"P"` FundingRate fixedpoint.Value `json:"r"` NextFundingTime int64 `json:"T"` }
type MarketTradeEvent ¶
type MarketTradeEvent struct { EventBase Symbol string `json:"s"` Quantity fixedpoint.Value `json:"q"` Price fixedpoint.Value `json:"p"` BuyerOrderId int64 `json:"b"` SellerOrderId int64 `json:"a"` OrderTradeTime int64 `json:"T"` TradeId int64 `json:"t"` IsMaker bool `json:"m"` Dummy bool `json:"M"` }
func (*MarketTradeEvent) Trade ¶
func (e *MarketTradeEvent) Trade() types.Trade
type OrderTrade ¶
type OrderTrade struct { Symbol string `json:"s"` ClientOrderID string `json:"c"` Side string `json:"S"` OrderType string `json:"o"` TimeInForce string `json:"f"` OriginalQuantity fixedpoint.Value `json:"q"` OriginalPrice fixedpoint.Value `json:"p"` AveragePrice fixedpoint.Value `json:"ap"` StopPrice fixedpoint.Value `json:"sp"` CurrentExecutionType string `json:"x"` CurrentOrderStatus string `json:"X"` OrderId int64 `json:"i"` OrderLastFilledQuantity fixedpoint.Value `json:"l"` OrderFilledAccumulatedQuantity fixedpoint.Value `json:"z"` LastFilledPrice fixedpoint.Value `json:"L"` CommissionAmount fixedpoint.Value `json:"n"` CommissionAsset string `json:"N"` OrderTradeTime types.MillisecondTimestamp `json:"T"` TradeId int64 `json:"t"` BidsNotional string `json:"b"` AskNotional string `json:"a"` IsMaker bool `json:"m"` IsReduceOnly bool ` json:"r"` StopPriceWorkingType string `json:"wt"` OriginalOrderType string `json:"ot"` PositionSide string `json:"ps"` RealizedProfit string `json:"rp"` }
Similar to the ExecutionReportEvent's fields. But with totally different json key. e.g., Stop price. So that, we can not merge them.
type OrderTradeUpdateEvent ¶
type OrderTradeUpdateEvent struct { EventBase Transaction int64 `json:"T"` OrderTrade OrderTrade `json:"o"` }
func (*OrderTradeUpdateEvent) OrderFutures ¶
func (e *OrderTradeUpdateEvent) OrderFutures() (*types.Order, error)
func (*OrderTradeUpdateEvent) TradeFutures ¶
func (e *OrderTradeUpdateEvent) TradeFutures() (*types.Trade, error)
type OutboundAccountInfoEvent ¶
type OutboundAccountInfoEvent struct { EventBase MakerCommissionRate int `json:"m"` TakerCommissionRate int `json:"t"` BuyerCommissionRate int `json:"b"` SellerCommissionRate int `json:"s"` CanTrade bool `json:"T"` CanWithdraw bool `json:"W"` CanDeposit bool `json:"D"` LastAccountUpdateTime int `json:"u"` Balances []Balance `json:"B,omitempty"` Permissions []string `json:"P,omitempty"` }
type PartialDepthEvent ¶
type PartialDepthEvent struct { EventBase binanceapi.Depth }
{ "lastUpdateId": 160, // Last update ID "bids": [ // Bids to be updated [ "0.0024", // Price level to be updated "10" // Quantity ] ], "asks": [ // Asks to be updated [ "0.0026", // Price level to be updated "100" // Quantity ] ] }
type ResultEvent ¶
type ResultEvent struct { Result interface{} `json:"result,omitempty"` ID int `json:"id"` }
type Stream ¶
type Stream struct { types.MarginSettings types.FuturesSettings types.StandardStream // contains filtered or unexported fields }
func (*Stream) EmitAccountConfigUpdateEvent ¶
func (s *Stream) EmitAccountConfigUpdateEvent(e *AccountConfigUpdateEvent)
func (*Stream) EmitAccountUpdateEvent ¶
func (s *Stream) EmitAccountUpdateEvent(e *AccountUpdateEvent)
func (*Stream) EmitAggTradeEvent ¶
func (s *Stream) EmitAggTradeEvent(e *AggTradeEvent)
func (*Stream) EmitBalanceUpdateEvent ¶
func (s *Stream) EmitBalanceUpdateEvent(event *BalanceUpdateEvent)
func (*Stream) EmitBookTickerEvent ¶
func (s *Stream) EmitBookTickerEvent(event *BookTickerEvent)
func (*Stream) EmitContinuousKLineClosedEvent ¶
func (s *Stream) EmitContinuousKLineClosedEvent(e *ContinuousKLineEvent)
func (*Stream) EmitContinuousKLineEvent ¶
func (s *Stream) EmitContinuousKLineEvent(e *ContinuousKLineEvent)
func (*Stream) EmitDepthEvent ¶
func (s *Stream) EmitDepthEvent(e *DepthEvent)
func (*Stream) EmitExecutionReportEvent ¶
func (s *Stream) EmitExecutionReportEvent(event *ExecutionReportEvent)
func (*Stream) EmitForceOrderEvent ¶
func (s *Stream) EmitForceOrderEvent(e *ForceOrderEvent)
func (*Stream) EmitKLineClosedEvent ¶
func (s *Stream) EmitKLineClosedEvent(e *KLineEvent)
func (*Stream) EmitKLineEvent ¶
func (s *Stream) EmitKLineEvent(e *KLineEvent)
func (*Stream) EmitListenKeyExpired ¶
func (s *Stream) EmitListenKeyExpired(e *ListenKeyExpired)
func (*Stream) EmitMarginCallEvent ¶
func (s *Stream) EmitMarginCallEvent(e *MarginCallEvent)
func (*Stream) EmitMarkPriceUpdateEvent ¶
func (s *Stream) EmitMarkPriceUpdateEvent(e *MarkPriceUpdateEvent)
func (*Stream) EmitMarketTradeEvent ¶
func (s *Stream) EmitMarketTradeEvent(e *MarketTradeEvent)
func (*Stream) EmitOrderTradeUpdateEvent ¶
func (s *Stream) EmitOrderTradeUpdateEvent(e *OrderTradeUpdateEvent)
func (*Stream) EmitOutboundAccountInfoEvent ¶
func (s *Stream) EmitOutboundAccountInfoEvent(event *OutboundAccountInfoEvent)
func (*Stream) EmitOutboundAccountPositionEvent ¶
func (s *Stream) EmitOutboundAccountPositionEvent(event *OutboundAccountPositionEvent)
func (*Stream) OnAccountConfigUpdateEvent ¶
func (s *Stream) OnAccountConfigUpdateEvent(cb func(e *AccountConfigUpdateEvent))
func (*Stream) OnAccountUpdateEvent ¶
func (s *Stream) OnAccountUpdateEvent(cb func(e *AccountUpdateEvent))
func (*Stream) OnAggTradeEvent ¶
func (s *Stream) OnAggTradeEvent(cb func(e *AggTradeEvent))
func (*Stream) OnBalanceUpdateEvent ¶
func (s *Stream) OnBalanceUpdateEvent(cb func(event *BalanceUpdateEvent))
func (*Stream) OnBookTickerEvent ¶
func (s *Stream) OnBookTickerEvent(cb func(event *BookTickerEvent))
func (*Stream) OnContinuousKLineClosedEvent ¶
func (s *Stream) OnContinuousKLineClosedEvent(cb func(e *ContinuousKLineEvent))
func (*Stream) OnContinuousKLineEvent ¶
func (s *Stream) OnContinuousKLineEvent(cb func(e *ContinuousKLineEvent))
func (*Stream) OnDepthEvent ¶
func (s *Stream) OnDepthEvent(cb func(e *DepthEvent))
func (*Stream) OnExecutionReportEvent ¶
func (s *Stream) OnExecutionReportEvent(cb func(event *ExecutionReportEvent))
func (*Stream) OnForceOrderEvent ¶
func (s *Stream) OnForceOrderEvent(cb func(e *ForceOrderEvent))
func (*Stream) OnKLineClosedEvent ¶
func (s *Stream) OnKLineClosedEvent(cb func(e *KLineEvent))
func (*Stream) OnKLineEvent ¶
func (s *Stream) OnKLineEvent(cb func(e *KLineEvent))
func (*Stream) OnListenKeyExpired ¶
func (s *Stream) OnListenKeyExpired(cb func(e *ListenKeyExpired))
func (*Stream) OnMarginCallEvent ¶
func (s *Stream) OnMarginCallEvent(cb func(e *MarginCallEvent))
func (*Stream) OnMarkPriceUpdateEvent ¶
func (s *Stream) OnMarkPriceUpdateEvent(cb func(e *MarkPriceUpdateEvent))
func (*Stream) OnMarketTradeEvent ¶
func (s *Stream) OnMarketTradeEvent(cb func(e *MarketTradeEvent))
func (*Stream) OnOrderTradeUpdateEvent ¶
func (s *Stream) OnOrderTradeUpdateEvent(cb func(e *OrderTradeUpdateEvent))
func (*Stream) OnOutboundAccountInfoEvent ¶
func (s *Stream) OnOutboundAccountInfoEvent(cb func(event *OutboundAccountInfoEvent))
func (*Stream) OnOutboundAccountPositionEvent ¶
func (s *Stream) OnOutboundAccountPositionEvent(cb func(event *OutboundAccountPositionEvent))
type StreamEventHub ¶
type StreamEventHub interface { OnDepthEvent(cb func(e *DepthEvent)) OnKLineEvent(cb func(e *KLineEvent)) OnKLineClosedEvent(cb func(e *KLineEvent)) OnMarketTradeEvent(cb func(e *MarketTradeEvent)) OnAggTradeEvent(cb func(e *AggTradeEvent)) OnForceOrderEvent(cb func(e *ForceOrderEvent)) OnBalanceUpdateEvent(cb func(event *BalanceUpdateEvent)) OnOutboundAccountInfoEvent(cb func(event *OutboundAccountInfoEvent)) OnOutboundAccountPositionEvent(cb func(event *OutboundAccountPositionEvent)) OnExecutionReportEvent(cb func(event *ExecutionReportEvent)) OnBookTickerEvent(cb func(event *BookTickerEvent)) OnMarkPriceUpdateEvent(cb func(e *MarkPriceUpdateEvent)) OnContinuousKLineEvent(cb func(e *ContinuousKLineEvent)) OnContinuousKLineClosedEvent(cb func(e *ContinuousKLineEvent)) OnOrderTradeUpdateEvent(cb func(e *OrderTradeUpdateEvent)) OnAccountUpdateEvent(cb func(e *AccountUpdateEvent)) OnAccountConfigUpdateEvent(cb func(e *AccountConfigUpdateEvent)) OnMarginCallEvent(cb func(e *MarginCallEvent)) OnListenKeyExpired(cb func(e *ListenKeyExpired)) }