rename stock distribution

This commit is contained in:
c9s 2020-10-10 12:24:50 +08:00
parent 978dc4be67
commit 1552feb57c
4 changed files with 19 additions and 19 deletions

View File

@ -20,7 +20,7 @@ type Context struct {
Balances map[string]types.Balance Balances map[string]types.Balance
ProfitAndLossCalculator *accounting.ProfitAndLossCalculator ProfitAndLossCalculator *accounting.ProfitAndLossCalculator
StockManager *StockManager StockManager *StockDistribution
} }
func (c *Context) SetCurrentPrice(price float64) { func (c *Context) SetCurrentPrice(price float64) {

View File

@ -51,7 +51,7 @@ func (slice StockSlice) Quantity() (total float64) {
return round(total) return round(total)
} }
type StockManager struct { type StockDistribution struct {
mu sync.Mutex mu sync.Mutex
Symbol string Symbol string
@ -60,15 +60,15 @@ type StockManager struct {
PendingSells StockSlice PendingSells StockSlice
} }
type Distribution struct { type DistributionStats struct {
PriceLevels []string `json:"priceLevels"` PriceLevels []string `json:"priceLevels"`
TotalQuantity float64 `json:"totalQuantity"` TotalQuantity float64 `json:"totalQuantity"`
Quantities map[string]float64 `json:"quantities"` Quantities map[string]float64 `json:"quantities"`
Stocks map[string]StockSlice `json:"stocks"` Stocks map[string]StockSlice `json:"stocks"`
} }
func (m *StockManager) Distribution(level int) *Distribution { func (m *StockDistribution) DistributionStats(level int) *DistributionStats {
var d = Distribution{ var d = DistributionStats{
Quantities: map[string]float64{}, Quantities: map[string]float64{},
Stocks: map[string]StockSlice{}, Stocks: map[string]StockSlice{},
} }
@ -101,14 +101,14 @@ func (m *StockManager) Distribution(level int) *Distribution {
return &d return &d
} }
func (m *StockManager) stock(stock Stock) error { func (m *StockDistribution) stock(stock Stock) error {
m.mu.Lock() m.mu.Lock()
m.Stocks = append(m.Stocks, stock) m.Stocks = append(m.Stocks, stock)
m.mu.Unlock() m.mu.Unlock()
return m.flushPendingSells() return m.flushPendingSells()
} }
func (m *StockManager) squash() { func (m *StockDistribution) squash() {
m.mu.Lock() m.mu.Lock()
defer m.mu.Unlock() defer m.mu.Unlock()
@ -121,7 +121,7 @@ func (m *StockManager) squash() {
m.Stocks = squashed m.Stocks = squashed
} }
func (m *StockManager) flushPendingSells() error { func (m *StockDistribution) flushPendingSells() error {
if len(m.Stocks) == 0 || len(m.PendingSells) == 0 { if len(m.Stocks) == 0 || len(m.PendingSells) == 0 {
return nil return nil
} }
@ -138,7 +138,7 @@ func (m *StockManager) flushPendingSells() error {
return nil return nil
} }
func (m *StockManager) consume(sell Stock) error { func (m *StockDistribution) consume(sell Stock) error {
m.mu.Lock() m.mu.Lock()
defer m.mu.Unlock() defer m.mu.Unlock()
@ -193,7 +193,7 @@ func (m *StockManager) consume(sell Stock) error {
return nil return nil
} }
func (m *StockManager) AddTrades(trades []types.Trade) (checkpoints []int, err error) { func (m *StockDistribution) AddTrades(trades []types.Trade) (checkpoints []int, err error) {
feeSymbol := strings.HasPrefix(m.Symbol, m.TradingFeeCurrency) feeSymbol := strings.HasPrefix(m.Symbol, m.TradingFeeCurrency)
for idx, trade := range trades { for idx, trade := range trades {
// for other market trades // for other market trades

View File

@ -21,7 +21,7 @@ func TestStockManager(t *testing.T) {
err = json.Unmarshal(out, &trades) err = json.Unmarshal(out, &trades)
assert.NoError(t, err) assert.NoError(t, err)
var stockManager = &StockManager{ var stockManager = &StockDistribution{
TradingFeeCurrency: "BNB", TradingFeeCurrency: "BNB",
Symbol: "BTCUSDT", Symbol: "BTCUSDT",
} }
@ -42,7 +42,7 @@ func TestStockManager(t *testing.T) {
{Symbol: "BTCUSDT", Price: 9200.0, Quantity: 0.01, IsBuyer: false}, {Symbol: "BTCUSDT", Price: 9200.0, Quantity: 0.01, IsBuyer: false},
} }
var stockManager = &StockManager{ var stockManager = &StockDistribution{
TradingFeeCurrency: "BNB", TradingFeeCurrency: "BNB",
Symbol: "BTCUSDT", Symbol: "BTCUSDT",
} }
@ -75,7 +75,7 @@ func TestStockManager(t *testing.T) {
{Symbol: "BTCUSDT", Price: 9200.0, Quantity: 0.05, IsBuyer: false}, {Symbol: "BTCUSDT", Price: 9200.0, Quantity: 0.05, IsBuyer: false},
} }
var stockManager = &StockManager{ var stockManager = &StockDistribution{
TradingFeeCurrency: "BNB", TradingFeeCurrency: "BNB",
Symbol: "BTCUSDT", Symbol: "BTCUSDT",
} }
@ -93,7 +93,7 @@ func TestStockManager(t *testing.T) {
{Symbol: "BTCUSDT", Price: 9200.0, Quantity: 0.05, IsBuyer: false}, {Symbol: "BTCUSDT", Price: 9200.0, Quantity: 0.05, IsBuyer: false},
} }
var stockManager = &StockManager{ var stockManager = &StockDistribution{
TradingFeeCurrency: "BNB", TradingFeeCurrency: "BNB",
Symbol: "BTCUSDT", Symbol: "BTCUSDT",
} }
@ -111,7 +111,7 @@ func TestStockManager(t *testing.T) {
{Symbol: "BTCUSDT", Price: 8000.0, Quantity: 0.01, IsBuyer: false}, {Symbol: "BTCUSDT", Price: 8000.0, Quantity: 0.01, IsBuyer: false},
} }
var stockManager = &StockManager{ var stockManager = &StockDistribution{
TradingFeeCurrency: "BNB", TradingFeeCurrency: "BNB",
Symbol: "BTCUSDT", Symbol: "BTCUSDT",
} }
@ -136,7 +136,7 @@ func TestStockManager(t *testing.T) {
{Symbol: "BTCUSDT", Price: 9100.0, Quantity: 0.05, IsBuyer: true}, {Symbol: "BTCUSDT", Price: 9100.0, Quantity: 0.05, IsBuyer: true},
} }
var stockManager = &StockManager{ var stockManager = &StockDistribution{
TradingFeeCurrency: "BNB", TradingFeeCurrency: "BNB",
Symbol: "BTCUSDT", Symbol: "BTCUSDT",
} }
@ -161,7 +161,7 @@ func TestStockManager(t *testing.T) {
{Symbol: "BTCUSDT", Price: 9100.0, Quantity: 0.05, IsBuyer: true}, {Symbol: "BTCUSDT", Price: 9100.0, Quantity: 0.05, IsBuyer: true},
} }
var stockManager = &StockManager{ var stockManager = &StockDistribution{
TradingFeeCurrency: "BNB", TradingFeeCurrency: "BNB",
Symbol: "BTCUSDT", Symbol: "BTCUSDT",
} }

View File

@ -163,7 +163,7 @@ func (trader *Trader) Connect(ctx context.Context) (err error) {
} }
session.Trades[symbol] = trades session.Trades[symbol] = trades
stockManager := &StockManager{ stockManager := &StockDistribution{
Symbol: symbol, Symbol: symbol,
TradingFeeCurrency: tradingFeeCurrency, TradingFeeCurrency: tradingFeeCurrency,
} }
@ -211,7 +211,7 @@ func (trader *Trader) Initialize(ctx context.Context, startTime time.Time) error
log.Infof("%d trades loaded", len(trades)) log.Infof("%d trades loaded", len(trades))
stockManager := &StockManager{ stockManager := &StockDistribution{
Symbol: trader.Symbol, Symbol: trader.Symbol,
TradingFeeCurrency: tradingFeeCurrency, TradingFeeCurrency: tradingFeeCurrency,
} }