mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-26 00:35:15 +00:00
all: add subscribe depth options
This commit is contained in:
parent
f9e72dc79f
commit
ec72a922c8
|
@ -565,7 +565,28 @@ func convertSubscription(s types.Subscription) string {
|
||||||
// depth values: 5, 10, 20
|
// depth values: 5, 10, 20
|
||||||
// Stream Names: <symbol>@depth<levels> OR <symbol>@depth<levels>@100ms.
|
// Stream Names: <symbol>@depth<levels> OR <symbol>@depth<levels>@100ms.
|
||||||
// Update speed: 1000ms or 100ms
|
// Update speed: 1000ms or 100ms
|
||||||
return fmt.Sprintf("%s@depth10@100ms", strings.ToLower(s.Symbol))
|
n := strings.ToLower(s.Symbol) + "@depth"
|
||||||
|
switch s.Options.Depth {
|
||||||
|
case types.DepthLevel5:
|
||||||
|
n += "5"
|
||||||
|
|
||||||
|
case types.DepthLevelMedium:
|
||||||
|
n += "20"
|
||||||
|
|
||||||
|
case types.DepthLevelFull:
|
||||||
|
default:
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
switch s.Options.Speed {
|
||||||
|
case types.SpeedHigh:
|
||||||
|
n += "@100ms"
|
||||||
|
|
||||||
|
case types.SpeedLow:
|
||||||
|
n += "@1000ms"
|
||||||
|
|
||||||
|
}
|
||||||
|
return n
|
||||||
case types.BookTickerChannel:
|
case types.BookTickerChannel:
|
||||||
return fmt.Sprintf("%s@bookTicker", strings.ToLower(s.Symbol))
|
return fmt.Sprintf("%s@bookTicker", strings.ToLower(s.Symbol))
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
|
@ -73,14 +72,19 @@ func (s *Stream) handleConnect() {
|
||||||
Action: "subscribe",
|
Action: "subscribe",
|
||||||
}
|
}
|
||||||
for _, sub := range s.Subscriptions {
|
for _, sub := range s.Subscriptions {
|
||||||
var err error
|
|
||||||
var depth int
|
var depth int
|
||||||
|
|
||||||
if len(sub.Options.Depth) > 0 {
|
if len(sub.Options.Depth) > 0 {
|
||||||
depth, err = strconv.Atoi(sub.Options.Depth)
|
switch sub.Options.Depth {
|
||||||
if err != nil {
|
case types.DepthLevelFull:
|
||||||
log.WithError(err).Errorf("depth parse error, given %v", sub.Options.Depth)
|
depth = 0
|
||||||
continue
|
|
||||||
|
case types.DepthLevelMedium:
|
||||||
|
depth = 20
|
||||||
|
|
||||||
|
case types.DepthLevel5:
|
||||||
|
depth = 5
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -387,10 +387,29 @@ func (s *StandardStream) Close() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Depth string
|
||||||
|
|
||||||
|
const (
|
||||||
|
DepthLevelFull Depth = "FULL"
|
||||||
|
DepthLevelMedium Depth = "MEDIUM"
|
||||||
|
DepthLevel1 Depth = "1"
|
||||||
|
DepthLevel5 Depth = "5"
|
||||||
|
DepthLevel20 Depth = "20"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Speed string
|
||||||
|
|
||||||
|
const (
|
||||||
|
SpeedHigh Speed = "HIGH"
|
||||||
|
SpeedMedium Speed = "MEDIUM"
|
||||||
|
SpeedLow Speed = "LOW"
|
||||||
|
)
|
||||||
|
|
||||||
// SubscribeOptions provides the standard stream options
|
// SubscribeOptions provides the standard stream options
|
||||||
type SubscribeOptions struct {
|
type SubscribeOptions struct {
|
||||||
Interval string `json:"interval,omitempty"`
|
Interval string `json:"interval,omitempty"`
|
||||||
Depth string `json:"depth,omitempty"`
|
Depth Depth `json:"depth,omitempty"`
|
||||||
|
Speed Speed `json:"speed,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o SubscribeOptions) String() string {
|
func (o SubscribeOptions) String() string {
|
||||||
|
@ -398,7 +417,7 @@ func (o SubscribeOptions) String() string {
|
||||||
return o.Interval
|
return o.Interval
|
||||||
}
|
}
|
||||||
|
|
||||||
return o.Depth
|
return string(o.Depth)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Subscription struct {
|
type Subscription struct {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user