Merge pull request #1341 from c9s/narumi/random/amount

REFACTOR: [random] remove adjustQuantity from config
This commit is contained in:
c9s 2023-10-17 17:19:53 +08:00 committed by GitHub
commit 98b294424a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 15 deletions

View File

@ -6,7 +6,5 @@ exchangeStrategies:
# https://pkg.go.dev/github.com/robfig/cron#hdr-Predefined_schedules
cronExpression: "@every 8h"
quantity: 8
# adjust quantity by minimal notional and minimal quantity
adjustQuantity: true
onStart: true
dryRun: true

View File

@ -10,7 +10,6 @@ import (
"github.com/sirupsen/logrus"
"github.com/c9s/bbgo/pkg/bbgo"
"github.com/c9s/bbgo/pkg/fixedpoint"
"github.com/c9s/bbgo/pkg/strategy/common"
"github.com/c9s/bbgo/pkg/types"
)
@ -31,11 +30,10 @@ type Strategy struct {
Symbol string `json:"symbol"`
CronExpression string `json:"cronExpression"`
Quantity fixedpoint.Value `json:"quantity"`
AdjustQuantity bool `json:"adjustQuantity"`
OnStart bool `json:"onStart"`
DryRun bool `json:"dryRun"`
bbgo.QuantityOrAmount
cron *cron.Cron
}
@ -59,6 +57,10 @@ func (s *Strategy) Validate() error {
if s.CronExpression == "" {
return fmt.Errorf("cronExpression is required")
}
if err := s.QuantityOrAmount.Validate(); err != nil {
return err
}
return nil
}
@ -107,12 +109,10 @@ func (s *Strategy) placeOrder() {
return
}
sellQuantity := s.Quantity
buyQuantity := s.Quantity
if s.AdjustQuantity {
sellQuantity = s.Market.AdjustQuantityByMinNotional(s.Quantity, ticker.Sell)
buyQuantity = fixedpoint.Max(s.Quantity, s.Market.MinQuantity)
}
sellQuantity := s.CalculateQuantity(ticker.Sell)
buyQuantity := s.CalculateQuantity(ticker.Buy)
sellQuantity = s.Market.AdjustQuantityByMinNotional(sellQuantity, ticker.Sell)
buyQuantity = s.Market.AdjustQuantityByMinNotional(buyQuantity, ticker.Buy)
orderForm := []types.SubmitOrder{}
if baseBalance.Available.Compare(sellQuantity) > 0 {