v0.4 Hybrid: MIN $12 + 7% Position Sizing (optimal volume + safety)

This commit is contained in:
Marc Blatter 2026-07-17 11:02:43 +02:00
parent 567de3ecf8
commit 49bd77c112
1 changed files with 6 additions and 6 deletions

View File

@ -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]")