mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-25 08:15:15 +00:00
pass types.SubmitOrder by value
This commit is contained in:
parent
ec23266cc2
commit
a91f851ac7
|
@ -25,11 +25,11 @@ type BackTestTrader struct {
|
||||||
SourceKLines []types.KLine
|
SourceKLines []types.KLine
|
||||||
ProfitAndLossCalculator *accounting.ProfitAndLossCalculator
|
ProfitAndLossCalculator *accounting.ProfitAndLossCalculator
|
||||||
|
|
||||||
doneOrders []*types.SubmitOrder
|
doneOrders []types.SubmitOrder
|
||||||
pendingOrders []*types.SubmitOrder
|
pendingOrders []types.SubmitOrder
|
||||||
}
|
}
|
||||||
|
|
||||||
func (trader *BackTestTrader) SubmitOrder(cxt context.Context, order *types.SubmitOrder) {
|
func (trader *BackTestTrader) SubmitOrder(ctx context.Context, order types.SubmitOrder) {
|
||||||
trader.pendingOrders = append(trader.pendingOrders, order)
|
trader.pendingOrders = append(trader.pendingOrders, order)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,9 +37,9 @@ type OrderProcessor struct {
|
||||||
Trader *Trader `json:"-"`
|
Trader *Trader `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *OrderProcessor) Submit(ctx context.Context, order *types.SubmitOrder) error {
|
func (p *OrderProcessor) Submit(ctx context.Context, order types.SubmitOrder) error {
|
||||||
/*
|
/*
|
||||||
tradingCtx := p.Trader.Context
|
tradingCtx := p.OrderExecutor.Context
|
||||||
currentPrice := tradingCtx.CurrentPrice
|
currentPrice := tradingCtx.CurrentPrice
|
||||||
market := order.Market
|
market := order.Market
|
||||||
quantity := order.Quantity
|
quantity := order.Quantity
|
||||||
|
|
|
@ -17,11 +17,11 @@ import (
|
||||||
|
|
||||||
// SingleExchangeStrategy represents the single Exchange strategy
|
// SingleExchangeStrategy represents the single Exchange strategy
|
||||||
type SingleExchangeStrategy interface {
|
type SingleExchangeStrategy interface {
|
||||||
Run(ctx context.Context, trader types.Trader, session *ExchangeSession) error
|
Run(ctx context.Context, trader types.OrderExecutor, session *ExchangeSession) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type CrossExchangeStrategy interface {
|
type CrossExchangeStrategy interface {
|
||||||
Run(ctx context.Context, trader types.Trader, sessions map[string]*ExchangeSession) error
|
Run(ctx context.Context, trader types.OrderExecutor, sessions map[string]*ExchangeSession) error
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExchangeSession presents the exchange connection session
|
// ExchangeSession presents the exchange connection session
|
||||||
|
@ -237,7 +237,7 @@ func (trader *Trader) Run(ctx context.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
func (trader *Trader) RunStrategyWithHotReload(ctx context.Context, strategy SingleExchangeStrategy, configFile string) (chan struct{}, error) {
|
func (trader *OrderExecutor) RunStrategyWithHotReload(ctx context.Context, strategy SingleExchangeStrategy, configFile string) (chan struct{}, error) {
|
||||||
var done = make(chan struct{})
|
var done = make(chan struct{})
|
||||||
var configWatcherDone = make(chan struct{})
|
var configWatcherDone = make(chan struct{})
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ func (trader *Trader) RunStrategyWithHotReload(ctx context.Context, strategy Sin
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
func (trader *Trader) RunStrategy(ctx context.Context, strategy SingleExchangeStrategy) (chan struct{}, error) {
|
func (trader *OrderExecutor) RunStrategy(ctx context.Context, strategy SingleExchangeStrategy) (chan struct{}, error) {
|
||||||
trader.reportTimer = time.AfterFunc(1*time.Second, func() {
|
trader.reportTimer = time.AfterFunc(1*time.Second, func() {
|
||||||
trader.reportPnL()
|
trader.reportPnL()
|
||||||
})
|
})
|
||||||
|
@ -363,7 +363,7 @@ func (trader *Trader) Notify(msg string, args ...interface{}) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (trader *Trader) SubmitOrder(ctx context.Context, order *types.SubmitOrder) {
|
func (trader *Trader) SubmitOrder(ctx context.Context, order types.SubmitOrder) {
|
||||||
trader.Notify(":memo: Submitting %s %s %s order with quantity: %s", order.Symbol, order.Type, order.Side, order.QuantityString, order)
|
trader.Notify(":memo: Submitting %s %s %s order with quantity: %s", order.Symbol, order.Type, order.Side, order.QuantityString, order)
|
||||||
|
|
||||||
orderProcessor := &OrderProcessor{
|
orderProcessor := &OrderProcessor{
|
||||||
|
|
|
@ -220,7 +220,7 @@ func (e *Exchange) QueryAccount(ctx context.Context) (*types.Account, error) {
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Exchange) SubmitOrder(ctx context.Context, order *types.SubmitOrder) error {
|
func (e *Exchange) SubmitOrder(ctx context.Context, order types.SubmitOrder) error {
|
||||||
/*
|
/*
|
||||||
limit order example
|
limit order example
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ func (e *Exchange) NewStream() types.Stream {
|
||||||
return NewStream(e.key, e.secret)
|
return NewStream(e.key, e.secret)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Exchange) SubmitOrder(ctx context.Context, order *types.SubmitOrder) error {
|
func (e *Exchange) SubmitOrder(ctx context.Context, order types.SubmitOrder) error {
|
||||||
orderType, err := toLocalOrderType(order.Type)
|
orderType, err := toLocalOrderType(order.Type)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -49,7 +49,7 @@ func (s *Strategy) SetMaxAssetQuantity(q float64) *Strategy {
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Strategy) Run(ctx context.Context, trader types.Trader, session *bbgo.ExchangeSession) error {
|
func (s *Strategy) Run(ctx context.Context, orderExecutor types.OrderExecutor, session *bbgo.ExchangeSession) error {
|
||||||
session.Subscribe(types.KLineChannel, s.Symbol, types.SubscribeOptions{Interval: s.Interval})
|
session.Subscribe(types.KLineChannel, s.Symbol, types.SubscribeOptions{Interval: s.Interval})
|
||||||
|
|
||||||
session.Stream.OnKLineClosed(func(kline types.KLine) {
|
session.Stream.OnKLineClosed(func(kline types.KLine) {
|
||||||
|
@ -70,7 +70,7 @@ func (s *Strategy) Run(ctx context.Context, trader types.Trader, session *bbgo.E
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trader.SubmitOrder(ctx, &types.SubmitOrder{
|
orderExecutor.SubmitOrder(ctx, types.SubmitOrder{
|
||||||
Symbol: kline.Symbol,
|
Symbol: kline.Symbol,
|
||||||
Side: types.SideTypeBuy,
|
Side: types.SideTypeBuy,
|
||||||
Type: types.OrderTypeMarket,
|
Type: types.OrderTypeMarket,
|
||||||
|
|
|
@ -48,7 +48,7 @@ type Exchange interface {
|
||||||
|
|
||||||
QueryWithdrawHistory(ctx context.Context, asset string, since, until time.Time) (allWithdraws []Withdraw, err error)
|
QueryWithdrawHistory(ctx context.Context, asset string, since, until time.Time) (allWithdraws []Withdraw, err error)
|
||||||
|
|
||||||
SubmitOrder(ctx context.Context, order *SubmitOrder) error
|
SubmitOrder(ctx context.Context, order SubmitOrder) error
|
||||||
}
|
}
|
||||||
|
|
||||||
type TradeQueryOptions struct {
|
type TradeQueryOptions struct {
|
||||||
|
|
|
@ -2,6 +2,6 @@ package types
|
||||||
|
|
||||||
import "context"
|
import "context"
|
||||||
|
|
||||||
type Trader interface {
|
type OrderExecutor interface {
|
||||||
SubmitOrder(ctx context.Context, order *SubmitOrder)
|
SubmitOrder(ctx context.Context, order SubmitOrder)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user