diff --git a/src/main_ml.py b/src/main_ml.py index 97b70a1..04228e2 100644 --- a/src/main_ml.py +++ b/src/main_ml.py @@ -20,8 +20,8 @@ if not API_KEY or not API_SECRET: # CONSTANTS - DYNAMIC SIZING SYMBOLS = ['BTCUSDT', 'ETHUSDT', 'BNBUSDT', 'XRPUSDT', 'SOLUSDT'] TRACKED_COINS = ['BTC', 'ETH', 'BNB', 'XRP', 'SOL'] -MIN_USDT = 5.00 -MAX_POSITION_PCT = 0.05 +MIN_TRADE_USDT = 12.00 # Hybrid minimum +MAX_POSITION_PCT = 0.07 # Hybrid 7% TAKE_PROFIT_PCT = 0.015 STOP_LOSS_PCT = -0.008 CYCLE_SEC = 60 @@ -65,7 +65,7 @@ class TradingBotV04: ) self.portfolio_value = portfolio_value - self.max_trade_usdt = max(MIN_USDT, portfolio_value * MAX_POSITION_PCT) + self.max_trade_usdt = max(MIN_TRADE_USDT, portfolio_value * MAX_POSITION_PCT) logger.info(f"[v0.4] USDT=${usdt_available:.2f} | Portfolio=${portfolio_value:.2f} | MaxTrade=${self.max_trade_usdt:.2f}") return usdt_available, portfolio_value @@ -184,7 +184,7 @@ class TradingBotV04: usdt_free, portfolio_val = self.get_fresh_balance() - if usdt_free < MIN_USDT: + if usdt_free < MIN_TRADE_USDT: logger.warning(f"Insufficient capital: ${usdt_free:.2f} < ${MIN_USDT}") logger.info("=" * 70) return @@ -204,8 +204,8 @@ class TradingBotV04: best_signal = symbol break - if best_signal and usdt_free >= MIN_USDT: - trade_amount = min(self.max_trade_usdt, usdt_free * 0.5) + if best_signal and usdt_free >= MIN_TRADE_USDT: + trade_amount = min(max(MIN_TRADE_USDT, self.max_trade_usdt), usdt_free * 0.5) self.place_buy_order(best_signal, trade_amount) logger.info(f"[CYCLE-END] Trades: {len(self.active_trades)} | USDT: ${usdt_free:.2f} | Portfolio: ${portfolio_val:.2f} [v0.4]")