# Exchange selection EXCHANGE=aster # Pick aster (default) or grvt/lighter/backpack/paradex # Aster API credentials ASTER_API_KEY= ASTER_API_SECRET= # Core trading symbol and sizing TRADE_SYMBOL=BTCUSDT # Trading pair symbol TRADE_AMOUNT=0.001 # Base order quantity (base asset, e.g. BTC) # Risk management (USD amounts unless noted) LOSS_LIMIT=0.04 # Max loss per trade in USDT before forced close TRAILING_PROFIT=0.2 # Trailing stop activation profit (USDT) TRAILING_CALLBACK_RATE=0.2 # Trailing callback percent (e.g. 0.2 => 0.2%) PROFIT_LOCK_TRIGGER_USD=0.08 # Start moving base stop once unrealized PnL > this (USDT) PROFIT_LOCK_OFFSET_USD=0.04 # Base stop offset from entry after trigger (USDT) BOLLINGER_LENGTH=20 # SMA window (minutes) used for Bollinger bandwidth BOLLINGER_STD_MULTIPLIER=2 # Standard deviation multiplier for Bollinger bands MIN_BOLLINGER_BANDWIDTH=0.001 # Require bandwidth >= this ratio before new entries # Precision (per-symbol exchange filters) PRICE_TICK=0.1 # Price tick size (e.g. BTCUSDT uses 0.1) QTY_STEP=0.001 # Quantity step size (e.g. BTC min step 0.001) # Engine cadence and UI POLL_INTERVAL_MS=500 # Trend engine poll interval (ms) MAX_LOG_ENTRIES=200 # Max log entries shown in dashboard KLINE_INTERVAL=1m # Kline interval (e.g., 1m/3m/5m) MAX_CLOSE_SLIPPAGE_PCT=0.05 # Max allowed deviation vs mark when closing (0.05 => 5%) # Maker-only settings MAKER_LOSS_LIMIT=0.05 # Maker loss cap (USDT). Defaults to LOSS_LIMIT if unset MAKER_BID_OFFSET=0 # Bid quote offset from top bid (USDT) MAKER_ASK_OFFSET=0 # Ask quote offset from top ask (USDT) MAKER_REFRESH_INTERVAL_MS=500 # Maker refresh cadence (ms) MAKER_MAX_CLOSE_SLIPPAGE_PCT=0.05 # Maker close slippage guard (fallbacks to MAX_CLOSE_SLIPPAGE_PCT) MAKER_PRICE_TICK=0.1 # Maker price tick size (defaults to PRICE_TICK) # GRVT authentication (set when EXCHANGE=grvt) GRVT_API_KEY= GRVT_API_SECRET= GRVT_SUB_ACCOUNT_ID= GRVT_INSTRUMENT=BTC_USDT_Perp GRVT_SYMBOL=BTCUSDT GRVT_ENV=prod # Optional advanced overrides # GRVT_COOKIE="gravity=..." # Pre-provisioned session cookie (auto-refresh uses API key when absent) # GRVT_ACCOUNT_ID= # Populated automatically after login # GRVT_SIGNER_PATH=./grvt-signer.cjs # Custom signature provider module # Lighter authentication (set when EXCHANGE=lighter) LIGHTER_ACCOUNT_INDEX= LIGHTER_API_PRIVATE_KEY= # 40-byte hex private key (e.g., 0x...) LIGHTER_API_KEY_INDEX=0 # API key slot (default 0) LIGHTER_SYMBOL=BTCUSDT # Trading pair (defaults to TRADE_SYMBOL when omitted) LIGHTER_ENV=testnet # mainnet | testnet | staging | dev # LIGHTER_BASE_URL=https://testnet.zklighter.elliot.ai # LIGHTER_CHAIN_ID=300 # Override inferred chain id when needed # LIGHTER_MARKET_ID=1 # Prefer explicit market id when symbols differ # LIGHTER_PRICE_DECIMALS=3 # Manual override for price decimals (optional) # LIGHTER_SIZE_DECIMALS=3 # Manual override for size decimals (optional) # Backpack exchange configuration # Fill these with your Backpack API credentials and preferences BACKPACK_API_KEY= BACKPACK_API_SECRET= BACKPACK_PASSWORD= BACKPACK_SUBACCOUNT= # Use sandbox environment: "true" to enable, otherwise leave as false BACKPACK_SANDBOX=false # Default trading symbol (falls back to TRADE_SYMBOL or BTCUSDC) BACKPACK_SYMBOL=BTC_USD_PERP # Enable verbose adapter logging: set to "1" or "true" BACKPACK_DEBUG=false # Paradex exchange configuration # Provide the EVM private key & wallet address for onboarded accounts. # When EXCHANGE=paradex these values are used automatically. PARADEX_PRIVATE_KEY= PARADEX_WALLET_ADDRESS= # Symbol defaults to TRADE_SYMBOL if omitted. Use ccxt unified format like BTC-USD-PERP. # PARADEX_SYMBOL=BTC-USD-PERP # Enable testnet endpoints by setting to "true"; defaults to false (mainnet). # PARADEX_SANDBOX=false # Force disabling ccxt.pro websocket usage by setting to "false" (pro is preferred when installed). # PARADEX_USE_PRO=true # Optional reconnect delay override (milliseconds, e.g., 2000). Leave blank for default. # PARADEX_RECONNECT_DELAY_MS= # Enable verbose adapter logging: set to "1" or "true" # PARADEX_DEBUG=false