fix: address code review round 2 — 9 issues (2 critical, 3 important, 4 minor)
Critical: - #2: Add _entry_lock in RiskManager to serialize concurrent entry (balance race) - #3: Add startTime to get_recent_income + record _entry_time_ms (SYNC PnL fix) Important: - #1: Add threading.Lock + _run_api() helper for thread-safe Client access - #4: Convert reset_daily to async with lock - #8: Add 24h TTL to exchange_info_cache Minor: - #7: Remove duplicate Indicators creation in _open_position (use ATR directly) - #11: Add input validation for LEVERAGE, MARGIN ratios, ML_THRESHOLD - #12: Replace hardcoded corr[0]/corr[1] with dict-based dynamic access - #14: Add fillna(0.0) to LightGBM path for NaN consistency with ONNX Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import threading
|
||||
import pytest
|
||||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
from src.exchange import BinanceFuturesClient
|
||||
@@ -25,6 +26,7 @@ def client():
|
||||
c.symbol = config.symbol
|
||||
c._qty_precision = 1
|
||||
c._price_precision = 4
|
||||
c._api_lock = threading.Lock()
|
||||
return c
|
||||
|
||||
|
||||
@@ -43,6 +45,7 @@ def exchange():
|
||||
c.client = MagicMock()
|
||||
c._qty_precision = 1
|
||||
c._price_precision = 4
|
||||
c._api_lock = threading.Lock()
|
||||
return c
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user