243 lines
6.2 KiB
Text
243 lines
6.2 KiB
Text
# =======================================================================
|
|
# Stock Bot Platform Environment Configuration
|
|
# =======================================================================
|
|
|
|
# Core Application Settings
|
|
NODE_ENV=development
|
|
PORT=3001
|
|
APP_NAME=stock-bot
|
|
APP_VERSION=1.0.0
|
|
|
|
# =======================================================================
|
|
# DATABASE CONFIGURATIONS
|
|
# =======================================================================
|
|
|
|
# PostgreSQL - Operational Data (orders, positions, strategies)
|
|
POSTGRES_HOST=localhost
|
|
POSTGRES_PORT=5432
|
|
POSTGRES_DATABASE=trading_bot
|
|
POSTGRES_USERNAME=trading_user
|
|
POSTGRES_PASSWORD=trading_pass_dev
|
|
DB_HOST=localhost
|
|
DB_PORT=5432
|
|
DB_NAME=trading_bot
|
|
DB_USER=trading_user
|
|
DB_PASSWORD=trading_pass_dev
|
|
DB_POOL_MIN=2
|
|
DB_POOL_MAX=10
|
|
DB_POOL_IDLE_TIMEOUT=30000
|
|
DB_SSL=false
|
|
DB_SSL_REJECT_UNAUTHORIZED=true
|
|
DB_QUERY_TIMEOUT=30000
|
|
DB_CONNECTION_TIMEOUT=5000
|
|
|
|
# QuestDB - Time-series Data (OHLCV, indicators, performance)
|
|
QUESTDB_HOST=localhost
|
|
QUESTDB_HTTP_PORT=9000
|
|
QUESTDB_PG_PORT=8812
|
|
QUESTDB_INFLUX_PORT=9009
|
|
QUESTDB_USER=
|
|
QUESTDB_PASSWORD=
|
|
QUESTDB_CONNECTION_TIMEOUT=5000
|
|
QUESTDB_REQUEST_TIMEOUT=30000
|
|
QUESTDB_RETRY_ATTEMPTS=3
|
|
QUESTDB_TLS_ENABLED=false
|
|
QUESTDB_DEFAULT_DATABASE=qdb
|
|
QUESTDB_TELEMETRY_ENABLED=false
|
|
|
|
# MongoDB - Document Storage (sentiment, raw docs, unstructured data)
|
|
MONGODB_HOST=localhost
|
|
MONGODB_PORT=27017
|
|
MONGODB_DATABASE=trading_documents
|
|
MONGODB_USERNAME=trading_admin
|
|
MONGODB_PASSWORD=trading_mongo_dev
|
|
MONGODB_AUTH_SOURCE=admin
|
|
MONGODB_URI=
|
|
MONGODB_MAX_POOL_SIZE=10
|
|
MONGODB_MIN_POOL_SIZE=0
|
|
MONGODB_MAX_IDLE_TIME=30000
|
|
MONGODB_CONNECT_TIMEOUT=10000
|
|
MONGODB_SOCKET_TIMEOUT=30000
|
|
MONGODB_SERVER_SELECTION_TIMEOUT=5000
|
|
MONGODB_TLS=false
|
|
MONGODB_RETRY_WRITES=true
|
|
MONGODB_JOURNAL=true
|
|
MONGODB_READ_PREFERENCE=primary
|
|
MONGODB_WRITE_CONCERN=majority
|
|
|
|
# Dragonfly - Redis Replacement (caching and events)
|
|
DRAGONFLY_HOST=localhost
|
|
DRAGONFLY_PORT=6379
|
|
DRAGONFLY_PASSWORD=
|
|
DRAGONFLY_USERNAME=
|
|
DRAGONFLY_DATABASE=0
|
|
DRAGONFLY_MAX_RETRIES=3
|
|
DRAGONFLY_RETRY_DELAY=50
|
|
DRAGONFLY_CONNECT_TIMEOUT=10000
|
|
DRAGONFLY_COMMAND_TIMEOUT=5000
|
|
DRAGONFLY_POOL_SIZE=10
|
|
DRAGONFLY_POOL_MIN=1
|
|
DRAGONFLY_POOL_MAX=20
|
|
DRAGONFLY_TLS=false
|
|
DRAGONFLY_ENABLE_KEEPALIVE=true
|
|
DRAGONFLY_KEEPALIVE_INTERVAL=60
|
|
DRAGONFLY_CLUSTER_MODE=false
|
|
DRAGONFLY_CLUSTER_NODES=
|
|
DRAGONFLY_MAX_MEMORY=2gb
|
|
DRAGONFLY_CACHE_MODE=true
|
|
|
|
# =======================================================================
|
|
# MONITORING & LOGGING CONFIGURATIONS
|
|
# =======================================================================
|
|
|
|
# Logging Configuration
|
|
LOG_LEVEL=debug
|
|
LOG_FORMAT=json
|
|
LOG_CONSOLE=true
|
|
LOG_FILE=false
|
|
LOG_FILE_PATH=logs
|
|
LOG_FILE_MAX_SIZE=20m
|
|
LOG_FILE_MAX_FILES=14
|
|
LOG_FILE_DATE_PATTERN=YYYY-MM-DD
|
|
LOG_ERROR_FILE=true
|
|
LOG_ERROR_STACK=true
|
|
LOG_PERFORMANCE=false
|
|
LOG_SQL_QUERIES=false
|
|
LOG_HTTP_REQUESTS=true
|
|
LOG_STRUCTURED=true
|
|
LOG_TIMESTAMP=true
|
|
LOG_CALLER_INFO=false
|
|
LOG_SILENT_MODULES=
|
|
LOG_VERBOSE_MODULES=
|
|
LOG_SERVICE_NAME=stock-bot
|
|
LOG_SERVICE_VERSION=1.0.0
|
|
LOG_ENVIRONMENT=development
|
|
|
|
# Loki - Log Aggregation
|
|
LOKI_HOST=localhost
|
|
LOKI_PORT=3100
|
|
LOKI_URL=
|
|
LOKI_USERNAME=
|
|
LOKI_PASSWORD=
|
|
LOKI_TENANT_ID=
|
|
LOKI_PUSH_TIMEOUT=10000
|
|
LOKI_FLUSH_INTERVAL_MS=5000
|
|
LOKI_BATCH_SIZE=1024
|
|
LOKI_BATCH_WAIT=1000
|
|
LOKI_RETENTION_PERIOD=30d
|
|
LOKI_MAX_CHUNK_AGE=1h
|
|
LOKI_TLS_ENABLED=false
|
|
LOKI_TLS_INSECURE=false
|
|
LOKI_DEFAULT_LABELS=
|
|
LOKI_SERVICE_LABEL=stock-bot
|
|
LOKI_ENVIRONMENT_LABEL=development
|
|
|
|
# Prometheus - Metrics Collection
|
|
PROMETHEUS_HOST=localhost
|
|
PROMETHEUS_PORT=9090
|
|
PROMETHEUS_URL=
|
|
PROMETHEUS_USERNAME=
|
|
PROMETHEUS_PASSWORD=
|
|
PROMETHEUS_SCRAPE_INTERVAL=15s
|
|
PROMETHEUS_EVALUATION_INTERVAL=15s
|
|
PROMETHEUS_RETENTION_TIME=15d
|
|
PROMETHEUS_TLS_ENABLED=false
|
|
PROMETHEUS_TLS_INSECURE=false
|
|
|
|
# Grafana - Visualization
|
|
GRAFANA_HOST=localhost
|
|
GRAFANA_PORT=3000
|
|
GRAFANA_URL=
|
|
GRAFANA_ADMIN_USER=admin
|
|
GRAFANA_ADMIN_PASSWORD=admin
|
|
GRAFANA_ALLOW_SIGN_UP=false
|
|
GRAFANA_SECRET_KEY=
|
|
GRAFANA_DATABASE_TYPE=sqlite3
|
|
GRAFANA_DATABASE_URL=
|
|
GRAFANA_DISABLE_GRAVATAR=true
|
|
GRAFANA_ENABLE_GZIP=true
|
|
|
|
# =======================================================================
|
|
# DATA PROVIDER CONFIGURATIONS
|
|
# =======================================================================
|
|
|
|
# Default Data Provider
|
|
DEFAULT_DATA_PROVIDER=alpaca
|
|
|
|
# Alpaca Markets
|
|
ALPACA_ENABLED=true
|
|
ALPACA_API_KEY=your_alpaca_key_here
|
|
ALPACA_SECRET_KEY=your_alpaca_secret_here
|
|
ALPACA_BASE_URL=https://paper-api.alpaca.markets
|
|
ALPACA_DATA_URL=https://data.alpaca.markets
|
|
ALPACA_PAPER_TRADING=true
|
|
|
|
# Polygon.io
|
|
POLYGON_ENABLED=false
|
|
POLYGON_API_KEY=your_polygon_key_here
|
|
POLYGON_BASE_URL=https://api.polygon.io
|
|
|
|
# Yahoo Finance
|
|
YAHOO_ENABLED=true
|
|
YAHOO_BASE_URL=https://query1.finance.yahoo.com
|
|
|
|
# IEX Cloud
|
|
IEX_ENABLED=false
|
|
IEX_API_KEY=your_iex_key_here
|
|
IEX_BASE_URL=https://cloud.iexapis.com
|
|
|
|
# Alpha Vantage
|
|
ALPHA_VANTAGE_ENABLED=false
|
|
ALPHA_VANTAGE_API_KEY=demo
|
|
|
|
# Data Provider Settings
|
|
DATA_PROVIDER_TIMEOUT=30000
|
|
DATA_PROVIDER_RETRIES=3
|
|
DATA_PROVIDER_RETRY_DELAY=1000
|
|
DATA_CACHE_ENABLED=true
|
|
DATA_CACHE_TTL=300
|
|
DATA_CACHE_MAX_SIZE=1000
|
|
|
|
# =======================================================================
|
|
# TRADING & RISK MANAGEMENT
|
|
# =======================================================================
|
|
|
|
# Trading Configuration
|
|
PAPER_TRADING=true
|
|
MAX_POSITION_SIZE=0.1
|
|
MAX_DAILY_LOSS=1000
|
|
|
|
# Risk Management
|
|
RISK_MAX_POSITION_SIZE=0.25
|
|
RISK_MAX_LEVERAGE=2.0
|
|
RISK_DEFAULT_STOP_LOSS=0.02
|
|
RISK_DEFAULT_TAKE_PROFIT=0.06
|
|
RISK_MAX_DRAWDOWN=0.10
|
|
RISK_MAX_CONSECUTIVE_LOSSES=5
|
|
RISK_POSITION_SIZING_METHOD=fixed_percentage
|
|
RISK_CIRCUIT_BREAKER_ENABLED=true
|
|
RISK_CIRCUIT_BREAKER_THRESHOLD=0.05
|
|
RISK_CIRCUIT_BREAKER_COOLDOWN=3600000
|
|
RISK_ALLOW_WEEKEND_TRADING=false
|
|
RISK_MARKET_HOURS_ONLY=true
|
|
|
|
# =======================================================================
|
|
# FEATURE FLAGS
|
|
# =======================================================================
|
|
ENABLE_ML_SIGNALS=false
|
|
ENABLE_SENTIMENT_ANALYSIS=false
|
|
ENABLE_SOCIAL_SIGNALS=false
|
|
ENABLE_OPTIONS_TRADING=false
|
|
ENABLE_CRYPTO_TRADING=false
|
|
ENABLE_BACKTESTING=true
|
|
ENABLE_PAPER_TRADING=true
|
|
ENABLE_LIVE_TRADING=false
|
|
|
|
# =======================================================================
|
|
# DEVELOPMENT & DEBUGGING
|
|
# =======================================================================
|
|
DEBUG_MODE=true
|
|
VERBOSE_LOGGING=true
|
|
MOCK_DATA_PROVIDERS=false
|
|
ENABLE_API_RATE_LIMITING=true
|
|
ENABLE_REQUEST_LOGGING=true
|