bbgo: add comments to the quota methods

This commit is contained in:
c9s 2024-09-02 22:18:13 +08:00 committed by lychiyu
parent cee99956ff
commit ca847047ac
2 changed files with 12 additions and 0 deletions

View File

@ -12,12 +12,16 @@ type Quota struct {
Locked fixedpoint.Value
}
// Add adds the fund to the available quota
func (q *Quota) Add(fund fixedpoint.Value) {
q.mu.Lock()
q.Available = q.Available.Add(fund)
q.mu.Unlock()
}
// Lock locks the fund from the available quota
// returns true if the fund is locked successfully
// returns false if the fund is not enough
func (q *Quota) Lock(fund fixedpoint.Value) bool {
if fund.Compare(q.Available) > 0 {
return false
@ -31,12 +35,15 @@ func (q *Quota) Lock(fund fixedpoint.Value) bool {
return true
}
// Commit commits the locked fund
func (q *Quota) Commit() {
q.mu.Lock()
q.Locked = fixedpoint.Zero
q.mu.Unlock()
}
// Rollback rolls back the locked fund
// this will move the locked fund to the available quota
func (q *Quota) Rollback() {
q.mu.Lock()
q.Available = q.Available.Add(q.Locked)
@ -44,12 +51,14 @@ func (q *Quota) Rollback() {
q.mu.Unlock()
}
// QuotaTransaction is a transactional quota manager
type QuotaTransaction struct {
mu sync.Mutex
BaseAsset Quota
QuoteAsset Quota
}
// Commit commits the transaction
func (m *QuotaTransaction) Commit() bool {
m.mu.Lock()
m.BaseAsset.Commit()
@ -58,6 +67,7 @@ func (m *QuotaTransaction) Commit() bool {
return true
}
// Rollback rolls back the transaction
func (m *QuotaTransaction) Rollback() bool {
m.mu.Lock()
m.BaseAsset.Rollback()

View File

@ -504,6 +504,8 @@ func (s *Strategy) updateQuote(ctx context.Context) {
s.logger.Infof("%s maker bid disabled: quote balance %s not found", s.Symbol, b.String())
}
s.logger.Infof("maker quota: %+v", makerQuota)
// if
// 1) the source session is a margin session
// 2) the min margin level is configured