mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-26 16:55:15 +00:00
ktrade: error handling
ktrade: remove error handling ktrade: remove error handling ktrade: remove error handling ktrade: error handling
This commit is contained in:
parent
49f7c3de46
commit
a18a06819e
|
@ -31,11 +31,11 @@ type Minute struct {
|
||||||
bbgo.QuantityOrAmount
|
bbgo.QuantityOrAmount
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Minute) updateOrder(ctx context.Context, symbol string) {
|
func (s *Minute) updateQuote(ctx context.Context, symbol string) {
|
||||||
bestBid, bestAsk, _ := s.StreamBook.BestBidAndAsk()
|
bestBid, bestAsk, _ := s.StreamBook.BestBidAndAsk()
|
||||||
|
|
||||||
s.midPrice = bestBid.Price.Add(bestAsk.Price).Div(fixedpoint.NewFromInt(2))
|
s.midPrice = bestBid.Price.Add(bestAsk.Price).Div(fixedpoint.NewFromInt(2))
|
||||||
log.Info(s.midPrice)
|
//log.Info(s.midPrice)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Minute) Bind(session *bbgo.ExchangeSession, orderExecutor *bbgo.GeneralOrderExecutor) {
|
func (s *Minute) Bind(session *bbgo.ExchangeSession, orderExecutor *bbgo.GeneralOrderExecutor) {
|
||||||
|
@ -52,23 +52,30 @@ func (s *Minute) Bind(session *bbgo.ExchangeSession, orderExecutor *bbgo.General
|
||||||
session.MarketDataStream.OnMarketTrade(func(trade types.Trade) {
|
session.MarketDataStream.OnMarketTrade(func(trade types.Trade) {
|
||||||
|
|
||||||
log.Infof("%s trade @ %f", trade.Side, trade.Price.Float64())
|
log.Infof("%s trade @ %f", trade.Side, trade.Price.Float64())
|
||||||
bestAsk, _ := s.StreamBook.BestAsk()
|
//bestAsk, _ := s.StreamBook.BestAsk()
|
||||||
bestBid, _ := s.StreamBook.BestBid()
|
//bestBid, _ := s.StreamBook.BestBid()
|
||||||
|
|
||||||
if trade.Side == types.SideTypeBuy && trade.Price.Compare(s.midPrice) > 0 && trade.Price.Compare(bestAsk.Price) <= 0 {
|
if trade.Side == types.SideTypeBuy && trade.Price.Compare(s.midPrice) > 0 {
|
||||||
_ = s.orderExecutor.GracefulCancel(context.Background())
|
_ = s.orderExecutor.GracefulCancel(context.Background())
|
||||||
// update ask price
|
// update ask price
|
||||||
newAskPrice := s.midPrice.Mul(fixedpoint.NewFromFloat(0.25)).Add(trade.Price.Mul(fixedpoint.NewFromFloat(0.75)))
|
newAskPrice := s.midPrice.Mul(fixedpoint.NewFromFloat(0.25)).Add(trade.Price.Mul(fixedpoint.NewFromFloat(0.75)))
|
||||||
log.Infof("short @ %f", newAskPrice.Float64())
|
log.Infof("short @ %f", newAskPrice.Float64())
|
||||||
|
if trade.Price.Compare(newAskPrice) > 0 {
|
||||||
|
s.placeOrder(context.Background(), types.SideTypeSell, s.Quantity, trade.Price.Mul(fixedpoint.NewFromFloat(1.001)), symbol)
|
||||||
|
} else {
|
||||||
s.placeOrder(context.Background(), types.SideTypeSell, s.Quantity, newAskPrice.Round(2, 1), symbol)
|
s.placeOrder(context.Background(), types.SideTypeSell, s.Quantity, newAskPrice.Round(2, 1), symbol)
|
||||||
|
}
|
||||||
|
|
||||||
} else if trade.Side == types.SideTypeSell && trade.Price.Compare(s.midPrice) < 0 && trade.Price.Compare(bestBid.Price) >= 0 {
|
} else if trade.Side == types.SideTypeSell && trade.Price.Compare(s.midPrice) < 0 {
|
||||||
_ = s.orderExecutor.GracefulCancel(context.Background())
|
_ = s.orderExecutor.GracefulCancel(context.Background())
|
||||||
// update bid price
|
// update bid price
|
||||||
newBidPrice := s.midPrice.Mul(fixedpoint.NewFromFloat(0.25)).Add(trade.Price.Mul(fixedpoint.NewFromFloat(0.75)))
|
newBidPrice := s.midPrice.Mul(fixedpoint.NewFromFloat(0.25)).Add(trade.Price.Mul(fixedpoint.NewFromFloat(0.75)))
|
||||||
log.Infof("long @ %f", newBidPrice.Float64())
|
log.Infof("long @ %f", newBidPrice.Float64())
|
||||||
|
if trade.Price.Compare(newBidPrice) < 0 {
|
||||||
|
s.placeOrder(context.Background(), types.SideTypeBuy, s.Quantity, trade.Price.Mul(fixedpoint.NewFromFloat(0.999)), symbol)
|
||||||
|
} else {
|
||||||
s.placeOrder(context.Background(), types.SideTypeBuy, s.Quantity, newBidPrice.Round(2, 1), symbol)
|
s.placeOrder(context.Background(), types.SideTypeBuy, s.Quantity, newBidPrice.Round(2, 1), symbol)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@ -86,7 +93,7 @@ func (s *Minute) Bind(session *bbgo.ExchangeSession, orderExecutor *bbgo.General
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case <-quoteTicker.C:
|
case <-quoteTicker.C:
|
||||||
s.updateOrder(context.Background(), symbol)
|
s.updateQuote(context.Background(), symbol)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user