From 3bc728b291df1266be90f0bf124396422a6d08f5 Mon Sep 17 00:00:00 2001 From: Marc Blatter Date: Tue, 4 Aug 2026 09:12:44 +0200 Subject: [PATCH] =?UTF-8?q?v0.7.2:=20AGGRESSIVE=20=E2=80=94=20=C2=B11.0%?= =?UTF-8?q?=20threshold,=2015%=20max=20position,=202=20trades/cycle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main_ml.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main_ml.py b/src/main_ml.py index 6003706..5fa69f1 100644 --- a/src/main_ml.py +++ b/src/main_ml.py @@ -20,14 +20,14 @@ if not API_KEY or not API_SECRET: SYMBOLS = ['BTCUSDT', 'ETHUSDT', 'BNBUSDT', 'XRPUSDT', 'SOLUSDT', 'ADAUSDT', 'DOGUSDT', 'DOTUSDT', 'AVAXUSDT'] TRACKED_COINS = ['BTC', 'ETH', 'BNB', 'XRP', 'SOL', 'ADA', 'DOGE', 'DOT', 'AVAX'] MIN_TRADE_USDT = 12.00 -MAX_POSITION_PCT = 0.07 +MAX_POSITION_PCT = 0.15 TAKE_PROFIT_PCT = 0.015 STOP_LOSS_PCT = -0.008 CYCLE_SEC = 60 # COIN-LEVEL CONTRARIAN THRESHOLDS -COIN_BUY_THRESHOLD = -1.5 # Buy when coin DOWN 1.5% (24h) -COIN_SELL_THRESHOLD = +1.5 # Sell when coin UP 1.5% (24h) +COIN_BUY_THRESHOLD = -1.0 # Buy when coin DOWN 1.0% (24h) — AGGRESSIVE +COIN_SELL_THRESHOLD = +1.0 # Sell when coin UP 1.0% (24h) — AGGRESSIVE LOOKBACK_HOURS = 24 class TradingBotV07: @@ -39,7 +39,7 @@ class TradingBotV07: self.max_trade_usdt = 0 # LOAD 24H PRICE HISTORY ON STARTUP - logger.info("[v0.7.1] Loading 24h price history from Binance...") + logger.info("[v0.7.2 AGGRESSIVE] Loading 24h price history from Binance...") for symbol in SYMBOLS: try: klines = self.client.get_historical_klines(symbol, '1m', '1 day ago UTC') @@ -51,7 +51,7 @@ class TradingBotV07: # LOAD EXISTING HOLDINGS FROM BINANCE - logger.info("[v0.7.1] Recovering existing holdings from Binance...") + logger.info("[v0.7.2 AGGRESSIVE] Recovering existing holdings from Binance...") try: account = self.client.get_account() for b in account['balances']: @@ -74,7 +74,7 @@ class TradingBotV07: except Exception as e: logger.warning(f"Recovery failed: {e}") - logger.info(f"[v0.7.1] Startup complete. Active trades: {len(self.active_trades)}") + logger.info(f"[v0.7.2 AGGRESSIVE] Startup complete. Active trades: {len(self.active_trades)}") logger.info(f"[v0.7.1 INIT] Price history loaded. Ready for ±1.5% signals.") @@ -307,24 +307,31 @@ class TradingBotV07: if len(self.price_history[symbol]) > 1440: # Keep 24h history self.price_history[symbol].pop(0) - # Check for COIN-LEVEL SELL (each coin UP 2%+) + # Check for COIN-LEVEL SELL (each coin UP 1%+) — UP TO 2 SELLS PER CYCLE + sell_count = 0 for symbol in list(self.active_trades.keys()): + if sell_count >= 2: # Max 2 sells per cycle + break if self.is_coin_sell_signal(symbol): self.place_sell_order(symbol) - break # One sell per cycle + sell_count += 1 # Check TP/SL self.check_and_close_positions() - # Check for COIN-LEVEL BUY (each coin DOWN 2%+) + # Check for COIN-LEVEL BUY (each coin DOWN 1%+) — UP TO 2 BUYS PER CYCLE + buy_count = 0 for symbol in SYMBOLS: + if buy_count >= 2: # Max 2 buys per cycle + break if symbol in self.active_trades: continue # Skip already held if self.is_coin_buy_signal(symbol) 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(symbol, trade_amount) - break # One buy per cycle + buy_count += 1 + usdt_free -= trade_amount # Update available capital # Save trades try: @@ -336,7 +343,7 @@ class TradingBotV07: 'portfolio_value': round(portfolio_val, 2), 'max_trade_usdt': round(self.max_trade_usdt, 2), 'timestamp': datetime.now().isoformat(), - 'version': 'v0.7.1-recovery-fix' + 'version': 'v0.7.2-aggressive-triple-option' }, f) os.replace(temp, '/home/marc/bot-deploy/active_trades.json') except: