mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-25 16:25:16 +00:00
all: add subscribe depth options
This commit is contained in:
parent
f9e72dc79f
commit
ec72a922c8
|
@ -157,7 +157,7 @@ func toGlobalFuturesBalance(balances []*futures.Balance) types.BalanceMap {
|
|||
func toGlobalFuturesPositions(futuresPositions []*futures.AccountPosition) types.FuturesPositionMap {
|
||||
retFuturesPositions := make(types.FuturesPositionMap)
|
||||
for _, futuresPosition := range futuresPositions {
|
||||
retFuturesPositions[futuresPosition.Symbol] = types.FuturesPosition{ //TODO: types.FuturesPosition
|
||||
retFuturesPositions[futuresPosition.Symbol] = types.FuturesPosition{ // TODO: types.FuturesPosition
|
||||
Isolated: futuresPosition.Isolated,
|
||||
PositionRisk: &types.PositionRisk{
|
||||
Leverage: fixedpoint.MustNewFromString(futuresPosition.Leverage),
|
||||
|
@ -172,7 +172,7 @@ func toGlobalFuturesPositions(futuresPositions []*futures.AccountPosition) types
|
|||
|
||||
func toGlobalFuturesUserAssets(assets []*futures.AccountAsset) (retAssets map[types.Asset]types.FuturesUserAsset) {
|
||||
for _, asset := range assets {
|
||||
//TODO: or modify to type FuturesAssetMap map[string]FuturesAssetMap
|
||||
// TODO: or modify to type FuturesAssetMap map[string]FuturesAssetMap
|
||||
retAssets[types.Asset{Currency: asset.Asset}] = types.FuturesUserAsset{
|
||||
Asset: asset.Asset,
|
||||
InitialMargin: fixedpoint.MustNewFromString(asset.InitialMargin),
|
||||
|
@ -565,7 +565,28 @@ func convertSubscription(s types.Subscription) string {
|
|||
// depth values: 5, 10, 20
|
||||
// Stream Names: <symbol>@depth<levels> OR <symbol>@depth<levels>@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:
|
||||
return fmt.Sprintf("%s@bookTicker", strings.ToLower(s.Symbol))
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import (
|
|||
"encoding/hex"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
|
@ -73,14 +72,19 @@ func (s *Stream) handleConnect() {
|
|||
Action: "subscribe",
|
||||
}
|
||||
for _, sub := range s.Subscriptions {
|
||||
var err error
|
||||
var depth int
|
||||
|
||||
if len(sub.Options.Depth) > 0 {
|
||||
depth, err = strconv.Atoi(sub.Options.Depth)
|
||||
if err != nil {
|
||||
log.WithError(err).Errorf("depth parse error, given %v", sub.Options.Depth)
|
||||
continue
|
||||
switch sub.Options.Depth {
|
||||
case types.DepthLevelFull:
|
||||
depth = 0
|
||||
|
||||
case types.DepthLevelMedium:
|
||||
depth = 20
|
||||
|
||||
case types.DepthLevel5:
|
||||
depth = 5
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -387,10 +387,29 @@ func (s *StandardStream) Close() error {
|
|||
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
|
||||
type SubscribeOptions struct {
|
||||
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 {
|
||||
|
@ -398,7 +417,7 @@ func (o SubscribeOptions) String() string {
|
|||
return o.Interval
|
||||
}
|
||||
|
||||
return o.Depth
|
||||
return string(o.Depth)
|
||||
}
|
||||
|
||||
type Subscription struct {
|
||||
|
|
Loading…
Reference in New Issue
Block a user