142 lines
4.4 KiB
Bash
142 lines
4.4 KiB
Bash
TRADING_MODE=paper
|
|
HOST=127.0.0.1
|
|
PORT=8787
|
|
# Keep 127.0.0.1 when the reverse proxy is local. This Dell deployment uses
|
|
# 0.0.0.0 because Caddy reaches port 8787 from a separate LAN host.
|
|
TRADEBOT_BIND_ADDRESS=127.0.0.1
|
|
|
|
BYBIT_TESTNET=false
|
|
# Official regional public endpoints for this deployment. Before future live
|
|
# trading they must match the Bybit site where the API key was created.
|
|
BYBIT_REST_BASE_URL=https://api.bybit.kz
|
|
BYBIT_WEBSOCKET_URL=wss://stream.bybit.kz/v5/public/spot
|
|
BYBIT_API_KEY=
|
|
BYBIT_API_SECRET=
|
|
|
|
STARTING_BALANCE_USDT=100
|
|
AUTO_SELECT_SYMBOLS=true
|
|
TOP_SYMBOLS_COUNT=12
|
|
# Leave empty to discover the most liquid eligible USDT Spot pairs from Bybit.
|
|
SYMBOLS=
|
|
|
|
STRATEGY_MODE=torch_forecast
|
|
BASE_INTERVAL=60
|
|
KLINE_LIMIT=240
|
|
TREND_INTERVAL=D
|
|
TREND_KLINE_LIMIT=260
|
|
LOOP_INTERVAL_SECONDS=5
|
|
FAST_TRADING_ENABLED=false
|
|
FAST_LOOP_INTERVAL_SECONDS=1
|
|
FAST_ENTRY_COOLDOWN_SECONDS=20
|
|
MAX_ENTRIES_PER_MINUTE=12
|
|
WEBSOCKET_ENABLED=true
|
|
MARKET_OBSERVATION_ENABLED=true
|
|
MARKET_OBSERVATION_SAMPLE_SECONDS=30
|
|
MIN_SIGNAL_CONFIDENCE=0.64
|
|
MAX_SPREAD_PERCENT=0.18
|
|
MIN_24H_TURNOVER_USDT=1000000
|
|
PATTERN_ANALYSIS_ENABLED=true
|
|
PATTERN_SCORE_WEIGHT=0.18
|
|
LEARNING_ENABLED=true
|
|
LEARNING_LOOKBACK_TRADES=120
|
|
LEARNING_MIN_SAMPLES=3
|
|
LEARNING_MAX_ADJUSTMENT=0.12
|
|
LEARNING_MAX_POSITION_MULTIPLIER=1.6
|
|
MIN_POSITION_USDT=1
|
|
MAX_POSITION_USDT=8
|
|
MAX_SYMBOL_EXPOSURE_USDT=25
|
|
MAX_TOTAL_EXPOSURE_USDT=75
|
|
MAX_OPEN_POSITIONS=24
|
|
MAX_POSITIONS_PER_SYMBOL=6
|
|
GRID_TRADING_ENABLED=false
|
|
GRID_ENTRY_CONFIDENCE=0.58
|
|
GRID_BUY_ZONE=0.45
|
|
GRID_MAX_POSITION_USDT=8
|
|
REBOUND_TRADING_ENABLED=true
|
|
REBOUND_ENTRY_CONFIDENCE=0.55
|
|
REBOUND_MIN_PROBABILITY=0.55
|
|
REBOUND_MAX_POSITION_USDT=6
|
|
KELLY_SIZING_ENABLED=true
|
|
KELLY_FRACTION=0.25
|
|
KELLY_MAX_FRACTION=0.20
|
|
RISK_PER_TRADE_PERCENT=0.01
|
|
RISK_GUARD_ENABLED=true
|
|
RISK_RECENT_TRADE_WINDOW=20
|
|
RISK_MAX_CONSECUTIVE_LOSSES=4
|
|
RISK_MIN_RECENT_PROFIT_FACTOR=0.85
|
|
RISK_REDUCE_MULTIPLIER=0.50
|
|
ATR_TRAILING_MULTIPLIER=2.2
|
|
TREND_RSI_MIN=45
|
|
TREND_RSI_MAX=65
|
|
TIME_SERIES_FORECAST_ENABLED=true
|
|
TIME_SERIES_MIN_CANDLES=120
|
|
TIME_SERIES_FORECAST_HORIZON=3
|
|
TIME_SERIES_MIN_EDGE_PERCENT=0.10
|
|
TIME_SERIES_MIN_PROBABILITY_UP=0.47
|
|
TIME_SERIES_MIN_CONFIDENCE=0.4
|
|
TIME_SERIES_MAX_ADJUSTMENT=0.08
|
|
TIME_SERIES_LSTM_ENABLED=true
|
|
TIME_SERIES_LSTM_MODEL_PATH=runtime/lstm_forecaster.json
|
|
TIME_SERIES_PROBE_ENABLED=true
|
|
TIME_SERIES_PROBE_MIN_EDGE_PERCENT=0.02
|
|
TIME_SERIES_PROBE_MIN_PROBABILITY_UP=0.55
|
|
TIME_SERIES_PROBE_SIZE_MULTIPLIER=0.40
|
|
TIME_SERIES_REBOUND_FALLBACK_ENABLED=false
|
|
# Use the independently guarded trend/MACD strategy while no accepted fresh
|
|
# Torch model is available. The rejected model is never used for entries.
|
|
TIME_SERIES_TREND_FALLBACK_ENABLED=true
|
|
TIME_SERIES_FALLBACK_MODE=legacy
|
|
TIME_SERIES_REQUIRE_QUALITY_GATE=true
|
|
# Emergency paper-only override. Keep false unless a failed guard is accepted manually.
|
|
TIME_SERIES_MANUAL_QUALITY_OVERRIDE=false
|
|
TIME_SERIES_REQUIRE_FRESH_MODEL=true
|
|
TIME_SERIES_MODEL_MAX_AGE_HOURS=48
|
|
MARKET_TICKER_MAX_AGE_SECONDS=45
|
|
STOP_LOSS_PERCENT=0.04
|
|
TAKE_PROFIT_PERCENT=0.035
|
|
TRAILING_STOP_PERCENT=0.015
|
|
MIN_HOLD_SECONDS=180
|
|
ENTRY_COOLDOWN_SECONDS=180
|
|
MAX_DAILY_DRAWDOWN_USDT=6
|
|
MIN_CASH_RESERVE_USDT=5
|
|
TAKER_FEE_RATE=0.001
|
|
SLIPPAGE_RATE=0.0003
|
|
|
|
# Real trading is locked unless all three values are set explicitly.
|
|
ENABLE_LIVE_TRADING=false
|
|
LIVE_TRADING_CONFIRM=
|
|
LIVE_ORDER_MAX_USDT=10
|
|
LIVE_ORDER_FILL_TIMEOUT_SECONDS=20
|
|
LIVE_RECONCILIATION_INTERVAL_SECONDS=30
|
|
LIVE_PROTECTIVE_STOP_ENABLED=true
|
|
|
|
# Required for direct API access. If a trusted reverse proxy authenticates
|
|
# requests, set TRUSTED_PROXY_USER_HEADER to the header injected by that proxy.
|
|
TRADEBOT_API_TOKEN=
|
|
TRADEBOT_TRAINING_TOKEN=
|
|
TRUSTED_PROXY_USER_HEADER=
|
|
|
|
HOLD_SIGNAL_SAMPLE_SECONDS=60
|
|
STORAGE_RETENTION_DAYS=30
|
|
STORAGE_PRUNE_INTERVAL_SECONDS=3600
|
|
|
|
# Windows trainer keeps this final tail untouched by training and early stopping.
|
|
TORCH_RETRAIN_HOLDOUT_WINDOW=1000
|
|
TORCH_ORDERBOOK_DB=runtime/orderbook_observations.sqlite3
|
|
TORCH_ORDERBOOK_MIN_SAMPLES_PER_BUCKET=20
|
|
TORCH_ORDERBOOK_MIN_COVERED_BUCKETS=240
|
|
TORCH_ORDERBOOK_MIN_SYMBOLS=2
|
|
TORCH_ORDERBOOK_AUTO_CHECK_SECONDS=3600
|
|
|
|
# Forward-only gate for an offline-approved shadow model. Promotion remains an
|
|
# explicit authenticated API action after every check has passed.
|
|
SHADOW_GATE_MIN_SETTLED=300
|
|
SHADOW_GATE_MIN_ELIGIBLE=30
|
|
SHADOW_GATE_MIN_SYMBOLS=2
|
|
SHADOW_GATE_MIN_PROFIT_FACTOR=1.10
|
|
SHADOW_GATE_MIN_DIRECTION_ACCURACY=0.52
|
|
SHADOW_GATE_MAX_BRIER=0.25
|
|
|
|
DATABASE_PATH=runtime/tradebot.sqlite3
|
|
LOG_PATH=runtime/tradebot.log
|