mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-10 09:11:55 +00:00
add reportTrade method
This commit is contained in:
parent
f4bf79d842
commit
88c7049a99
|
@ -2,7 +2,10 @@ package bbgo
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/valyala/fastjson"
|
||||
)
|
||||
|
||||
|
@ -62,7 +65,7 @@ type ExecutionReportEvent struct {
|
|||
IsMaker bool `json:"m"`
|
||||
|
||||
CommissionAmount string `json:"n"`
|
||||
CommissionAsset string `json:"N"`
|
||||
CommissionAsset string `json:"N"`
|
||||
|
||||
CurrentExecutionType string `json:"x"`
|
||||
CurrentOrderStatus string `json:"X"`
|
||||
|
@ -79,6 +82,25 @@ type ExecutionReportEvent struct {
|
|||
OrderCreationTime int `json:"O"`
|
||||
}
|
||||
|
||||
func (e *ExecutionReportEvent) Trade() (*Trade, error) {
|
||||
if e.CurrentExecutionType != "TRADE" {
|
||||
return nil, errors.New("execution report is not a trade")
|
||||
}
|
||||
|
||||
tt := time.Unix(0, e.TransactionTime/1000000)
|
||||
return &Trade{
|
||||
ID: e.TradeID,
|
||||
Symbol: e.Symbol,
|
||||
Price: MustParseFloat(e.LastExecutedPrice),
|
||||
Volume: MustParseFloat(e.LastExecutedQuantity),
|
||||
IsBuyer: e.Side == "BUY",
|
||||
IsMaker: e.IsMaker,
|
||||
Time: tt,
|
||||
Fee: MustParseFloat(e.CommissionAmount),
|
||||
FeeCurrency: e.CommissionAsset,
|
||||
}, nil
|
||||
}
|
||||
|
||||
/*
|
||||
balanceUpdate
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ type Trade struct {
|
|||
IsBuyer bool
|
||||
IsMaker bool
|
||||
Time time.Time
|
||||
|
||||
Symbol string
|
||||
Fee float64
|
||||
FeeCurrency string
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user