refactor(zt): migrate strategy logic to new state model
This commit is contained in:
@@ -105,11 +105,6 @@ func (o *OrderBook) readReceipts() {
|
||||
o.mu.Unlock()
|
||||
|
||||
status := strings.ToLower(receipt.Status)
|
||||
state := getState()
|
||||
if item := state.Get(receipt.StockCode); item != nil && item.PendingOrderID == receipt.OrderID {
|
||||
item.OrderStatus = status
|
||||
state.Save()
|
||||
}
|
||||
if (status == "filled" || status == "cancelled" || status == "rejected") && (receipt.Side == sideBuy || receipt.Side == sideSell) {
|
||||
o.unlockSide(receipt.StockCode, receipt.Side)
|
||||
o.invalidate()
|
||||
@@ -184,7 +179,7 @@ func (o *OrderBook) CancelExpired(ctx context.Context, client *sdk.Client) bool
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
state := getState()
|
||||
state := QuantState
|
||||
now := time.Now()
|
||||
timeout := time.Duration(config.Account.OrderTimeoutSec) * time.Second
|
||||
seen := map[string]struct{}{}
|
||||
@@ -243,7 +238,7 @@ func (o *OrderBook) CancelExpired(ctx context.Context, client *sdk.Client) bool
|
||||
return true
|
||||
}
|
||||
|
||||
func (o *OrderBook) claimed(state *ZTState, order parsedOrder) bool {
|
||||
func (o *OrderBook) claimed(state *State, order parsedOrder) bool {
|
||||
if order.RemarkOwned {
|
||||
return true
|
||||
}
|
||||
@@ -258,18 +253,11 @@ func (o *OrderBook) claimed(state *ZTState, order parsedOrder) bool {
|
||||
if state == nil {
|
||||
return false
|
||||
}
|
||||
item := state.Get(order.StockCode)
|
||||
if item == nil || item.Pending == "" {
|
||||
return false
|
||||
}
|
||||
switch item.Pending {
|
||||
case pendingBaseOpening, pendingAdd:
|
||||
return order.Side == sideBuy
|
||||
case pendingSellAdd, pendingSellBase:
|
||||
return order.Side == sideSell
|
||||
default:
|
||||
item, err := state.Get(order.StockCode)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return order.OrderID == item.BaseOrderId || order.OrderID == item.AddedOrderId || item.BaseStatus == StatusIng || item.AddedStatus == StatusIng
|
||||
}
|
||||
|
||||
func (o *OrderBook) unlockSide(code, side string) {
|
||||
|
||||
Reference in New Issue
Block a user