This guide covers all configuration options available in ForexSmartBot.
Access via the "Settings" button in the main window.
Create a .env file in the project root.
Modify ~/.forexsmartbot/settings.json directly.
- Default Strategy: Choose the default trading strategy
- Data Provider: Select data source (yfinance, csv)
- Data Interval: Timeframe for data (1m, 5m, 15m, 1h, 4h, 1d)
- Portfolio Mode: Enable multi-symbol trading
- Live Trade Confirmation: Require confirmation for live trades
{
"strategy": "SMA_Crossover",
"data_provider": "yfinance",
"data_interval": "1h",
"portfolio_mode": false,
"confirm_live_trades": true
}- Mode: PAPER
- Initial Balance: Starting capital (default: $10,000)
- Mode: MT4
- Host: ZeroMQ server host (default: 127.0.0.1)
- Port: ZeroMQ server port (default: 5555)
- Mode: REST
- API Key: Your broker's API key
- API Secret: Your broker's API secret
- Base URL: Broker's API endpoint
{
"broker_mode": "PAPER",
"mt4_host": "127.0.0.1",
"mt4_port": 5555,
"rest_api_key": "",
"rest_api_secret": "",
"rest_base_url": "https://api.broker.com"
}- Base Risk %: Risk per trade as percentage of balance (default: 2%)
- Max Risk %: Maximum risk per trade (default: 5%)
- Min Trade Amount: Minimum position size in dollars (default: $10)
- Max Trade Amount: Maximum position size in dollars (default: $100)
- Max Drawdown %: Maximum allowed drawdown (default: 25%)
- Daily Risk Cap %: Daily loss limit (default: 5%)
{
"risk_pct": 0.02,
"max_risk_pct": 0.05,
"trade_amount_min": 10.0,
"trade_amount_max": 100.0,
"max_drawdown_pct": 0.25,
"daily_risk_cap": 0.05
}- Auto: Follow system theme
- Light: Light theme
- Dark: Dark theme
- Default Symbols: Comma-separated list of default symbols
- Selected Symbols: Currently active symbols
{
"theme": "auto",
"default_symbols": ["EURUSD", "USDJPY", "GBPUSD"],
"selected_symbols": ["EURUSD"]
}Create a .env file in the project root:
# Broker settings
BROKER_MODE=PAPER
MT4_ZMQ_HOST=127.0.0.1
MT4_ZMQ_PORT=5555
# Risk settings
RISK_PCT=0.02
MAX_DRAWDOWN_PCT=0.25
TRADE_AMOUNT_MIN=10
TRADE_AMOUNT_MAX=100
# UI settings
THEME=auto
DEFAULT_SYMBOLS=EURUSD,USDJPY,GBPUSDEnvironment variables override settings file values:
.envfile- System environment variables
- Settings file defaults
Configure different risk levels for different symbols:
{
"symbol_risk_multipliers": {
"EURUSD": 1.0,
"GBPUSD": 1.2,
"USDJPY": 0.8
}
}Configure different risk levels for different strategies:
{
"strategy_risk_multipliers": {
"SMA_Crossover": 1.0,
"BreakoutATR": 1.5,
"RSI_Reversion": 0.7
}
}{
"data_provider": "yfinance",
"data_interval": "1h",
"data_retries": 3,
"data_timeout": 30
}{
"data_provider": "csv",
"csv_directory": "data/csv",
"csv_format": "standard"
}ForexSmartBot validates all settings on startup:
- Required fields are present
- Values are within valid ranges
- Dependencies are satisfied
- Invalid Risk %: Must be between 0.001 and 0.1
- Invalid Symbol: Must be valid forex pair format
- Invalid Broker: Must be PAPER, MT4, or REST
- Missing API Keys: Required for REST broker
- Windows:
%USERPROFILE%\.forexsmartbot\settings.json - macOS:
~/.forexsmartbot/settings.json - Linux:
~/.forexsmartbot/settings.json
- Windows:
%USERPROFILE%\.forexsmartbot\logs\ - macOS:
~/.forexsmartbot/logs/ - Linux:
~/.forexsmartbot/logs/
- Windows:
%USERPROFILE%\.forexsmartbot\trades.db - macOS:
~/.forexsmartbot/trades.db - Linux:
~/.forexsmartbot/trades.db
{
"risk_pct": 0.01,
"max_risk_pct": 0.02,
"max_drawdown_pct": 0.15,
"daily_risk_cap": 0.03,
"strategy": "SMA_Crossover"
}{
"risk_pct": 0.05,
"max_risk_pct": 0.10,
"max_drawdown_pct": 0.30,
"daily_risk_cap": 0.08,
"strategy": "BreakoutATR"
}{
"portfolio_mode": true,
"selected_symbols": ["EURUSD", "USDJPY", "GBPUSD", "AUDUSD"],
"symbol_risk_multipliers": {
"EURUSD": 1.0,
"USDJPY": 0.8,
"GBPUSD": 1.2,
"AUDUSD": 1.1
}
}- Check file permissions
- Ensure directory exists
- Verify JSON syntax
- Check validation errors in log
- Verify all required fields
- Ensure values are within ranges
- Check
.envfile location - Verify variable names
- Restart application after changes
- Never commit
.envfiles to version control - Use strong API keys and secrets
- Regularly rotate credentials
- Use appropriate data intervals
- Limit number of symbols in portfolio mode
- Monitor memory usage
- Test configurations with paper trading
- Keep backups of working configurations
- Document custom settings
- Settings are automatically migrated
- Old settings are backed up
- Check release notes for breaking changes
# Backup settings
cp ~/.forexsmartbot/settings.json settings_backup.json
# Restore settings
cp settings_backup.json ~/.forexsmartbot/settings.jsonFor more detailed information, see the Installation Guide and Troubleshooting pages.