diff --git a/clp_hedger.py b/clp_hedger.py index 70e11fb..1b6ecba 100644 --- a/clp_hedger.py +++ b/clp_hedger.py @@ -337,6 +337,10 @@ class ScalperHedger: self.accumulated_pnl = Decimal("0.0") self.accumulated_fees = Decimal("0.0") + # Logging Rate Limiting + self.last_idle_log_time = 0 + self.last_pending_log_time = 0 + # Order Tracking self.original_order_side = None @@ -505,12 +509,15 @@ class ScalperHedger: # Dynamic Buffer logic (Simplified for Decimal) # Using base buffer for now, can be enhanced - if pct_diff > PRICE_BUFFER_PCT: - logger.info(f"Price moved {pct_diff*100:.3f}% > {PRICE_BUFFER_PCT*100:.3f}%. Cancelling {oid}.") + if pct_diff > dynamic_buffer: + logger.info(f"Price moved {pct_diff*100:.3f}% > {dynamic_buffer*100:.3f}%. Cancelling {oid}.") self.cancel_order(COIN_SYMBOL, oid) return False - logger.info(f"Order {oid} within range ({pct_diff*100:.3f}%). Waiting.") + if time.time() - self.last_pending_log_time > 10: + logger.info(f"Order {oid} within range ({pct_diff*100:.3f}% < {dynamic_buffer*100:.3f}%). Waiting.") + self.last_pending_log_time = time.time() + return True def track_fills_and_pnl(self, force: bool = False): @@ -689,9 +696,13 @@ class ScalperHedger: self.last_trade_time = time.time() self.track_fills_and_pnl(force=True) else: - logger.info(f"[WAIT] Cooldown. Diff: {diff_abs:.4f}") + if time.time() - self.last_idle_log_time > 30: + logger.info(f"[WAIT] Cooldown. Diff: {diff_abs:.4f}") + self.last_idle_log_time = time.time() else: - logger.info(f"[IDLE] Px: {price:.2f} | Diff: {diff_abs:.4f} < {rebalance_threshold:.4f} | PnL: {current_pnl:.2f}") + if time.time() - self.last_idle_log_time > 30: + logger.info(f"[IDLE] Px: {price:.2f} | Diff: {diff_abs:.4f} < {rebalance_threshold:.4f} | PnL: {current_pnl:.2f}") + self.last_idle_log_time = time.time() self.track_fills_and_pnl() time.sleep(CHECK_INTERVAL)