优化: 共用一次 store.GetAll() 快照,消除每 tick 两次 map 分配
This commit is contained in:
@@ -179,12 +179,12 @@ func main() {
|
||||
t1 := time.Now()
|
||||
|
||||
// Scan for arbitrage entries using maker fees (limit orders)
|
||||
makerOpps := ScanBGHL(store)
|
||||
snap := store.GetAll()
|
||||
makerOpps := ScanBGHL(snap)
|
||||
dashboard.UpdateScan(makerOpps)
|
||||
t2 := time.Now()
|
||||
|
||||
// Track spread window durations (how long each opportunity stays alive)
|
||||
snap := store.GetAll()
|
||||
spreadTracker.Tick(snap, cfg.TradeThreshold)
|
||||
|
||||
for _, opp := range makerOpps {
|
||||
|
||||
+2
-3
@@ -208,12 +208,11 @@ func netProfit(buyPrice, sellPrice, buyFee, sellFee float64) float64 {
|
||||
|
||||
// ScanBGHL scans coins for arbitrage ONLY between Bitget and HyperLiquid (P3-1).
|
||||
// Returns both directions (BG->HL and HL->BG) sorted by net profit descending.
|
||||
func ScanBGHL(store *PriceStore) []*ArbOpportunity {
|
||||
snapshot := store.GetAll()
|
||||
func ScanBGHL(snap map[string]map[string]float64) []*ArbOpportunity {
|
||||
var results []*ArbOpportunity
|
||||
|
||||
for _, coin := range TrackedCoins {
|
||||
exMap := snapshot[coin.Name]
|
||||
exMap := snap[coin.Name]
|
||||
if exMap == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user