← Назад
""" WT Bot v3 β€” Configuration ========================== All settings in one place. Override via ecosystem.config.js env vars. """ import os # ============================================================ # BINANCE # ============================================================ BINANCE_API_KEY = os.getenv("BINANCE_API_KEY", "") BINANCE_API_SECRET = os.getenv("BINANCE_API_SECRET", "") # ============================================================ # TELEGRAM # ============================================================ TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN", "") TELEGRAM_CHAT_ID = os.getenv("TELEGRAM_CHAT_ID", "") # ============================================================ # STRATEGY: S3_EMA_Filter on 5m # ============================================================ TIMEFRAME = "5m" # WaveTrend params β€” TV LazyBear REAL defaults (fixed: was 9/12/3, too sensitive) WT_CHANNEL_LEN = 10 WT_AVG_LEN = 21 WT_MA_LEN = 4 WT_OVERSOLD = -50 WT_OVERBOUGHT = 50 EMA_PERIOD = 200 # Max bars after leaving zone where cross still counts as valid entry WT_ZONE_LOOKBACK = 3 # SL/TP SL_PCT = 0.02 # 2% stop loss TP_PCT = 0.03 # 3% β€” legacy, used only for log estimates # TP1 partial + trailing TP1_PCT = 0.015 # 1.5% β€” close 50% of position (was 1.0%, avg winner too low) TP1_CLOSE_RATIO = 0.5 # close 50% at TP1 TRAIL_ACTIVATION_PCT = 0.015 # trailing starts after TP1 (1.5%) TRAIL_CALLBACK_PCT = 0.012 # 1.2% trailing distance (was 0.7%, too tight β†’ premature exits) # ============================================================ # SCREENER # ============================================================ SCAN_INTERVAL_SEC = 300 # 5 ΠΌΠΈΠ½ΡƒΡ‚ MIN_VOLUME_24H = 50_000_000 # $50M ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ (Vol<50M = WR 32%, Vol>70M = WR 66%) MIN_TRADES_24H = 300_000 # 300K сдСлок ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ATR_MIN_PCT = 3.0 # ATR(14) ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ % (1h) ATR_MAX_PCT = 999.0 # Π±Π΅Π· Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»ΠΈΠΌΠΈΡ‚Π° ATR_PERIOD = 14 NATR_5M_MIN = 1.2 # NATR(14) Π½Π° 5m ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ % β€” отсСкаСт "спящиС" ΠΌΠΎΠ½Π΅Ρ‚Ρ‹ (BERA 0.77% = лосс) # ============================================================ # RISK MANAGEMENT # ============================================================ TRADE_SIZE_USD = 5.0 # $5 Π½Π° сдСлку LEVERAGE = 10 # 10x MAX_POSITIONS = 5 # макс ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ COOLDOWN_MIN = 15 # ΠΌΠΈΠ½ΡƒΡ‚ cooldown послС стопа Π½Π° символ # ============================================================ # COMMISSION # ============================================================ MAKER_FEE = 0.0002 # 0.02% maker (limit orders) TAKER_FEE = 0.0004 # 0.04% taker (market orders) # ============================================================ # BLACKLIST β€” тяТёлыС ΠΌΠΎΠ½Π΅Ρ‚Ρ‹ (Ρ‚ΠΎΠΏ CMC) + ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ # ============================================================ BLACKLIST = { # Π’ΠΎΠΏ CMC β€” Π½Π΅ Ρ‚ΠΎΡ€Π³ΡƒΠ΅ΠΌ "BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT", "XRPUSDT", "DOGEUSDT", "ADAUSDT", "DOTUSDT", "LTCUSDT", "LINKUSDT", "AVAXUSDT", "TRXUSDT", "MATICUSDT", "SHIBUSDT", "TONUSDT", "BCHUSDT", "XLMUSDT", "ATOMUSDT", "ICPUSDT", "UNIUSDT", # Binance TradFi / ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ "XAUUSDT", "PEPEUSDT", "1000PEPEUSDT", # Data-driven blacklist (Apr 6): 0-22% WR, total -$12.79 "BANKUSDT", "NOMUSDT", "LITUSDT", } # ============================================================ # CIRCUIT BREAKER β€” ΠΏΠ°ΡƒΠ·Π° послС сСрии лоссов # ============================================================ CIRCUIT_BREAKER_LOSSES = 3 # ΠΏΠ°ΡƒΠ·Π° послС N лоссов подряд CIRCUIT_BREAKER_PAUSE_MIN = 30 # ΠΏΠ°ΡƒΠ·Π° Π² ΠΌΠΈΠ½ΡƒΡ‚Π°Ρ… # ============================================================ # FILES # ============================================================ DATA_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), "data") WHITELIST_FILE = os.path.join(DATA_DIR, "whitelist.json") POSITIONS_FILE = os.path.join(DATA_DIR, "positions.json") TRADE_LOG_FILE = os.path.join(DATA_DIR, "trade_log.json") COOLDOWNS_FILE = os.path.join(DATA_DIR, "cooldowns.json")