What is the Profile Setting?
The Profile setting in MagicTradeBot defines the trading style classification for a bot instance. It helps organize strategies based on their intended trading duration, frequency, and behavior.
The Profile itself does not directly execute trades, but it plays an important role in determining:
- Which market data intervals are used
- How strategies are grouped
- How signals are processed
- How bot instances are logically organized
It acts as a strategy identity and configuration reference.
Built-in Profiles and Their Purpose
MagicTradeBot includes several predefined profiles optimized for different trading styles:
hft → High-Frequency Trading
- Ultra-fast trades
- Very short holding duration
- Uses very small time intervals (example: 1m)
scalp → Scalping
- Short-duration trades
- Trades typically last minutes to hours
- Focuses on small, frequent profits
Recommended intervals: 3m, 5m, 15m, 30m
day → Day Trading
- Positions opened and closed within the same day
- Moderate trading frequency
- Balanced between speed and reliability
Recommended intervals: 15m, 30m, 1h, 2h, 4h
swing → Swing Trading
- Positions held for multiple days
- Captures medium-term market trends
- Lower trade frequency but larger profit targets
Recommended intervals: 1h, 2h, 4h, 6h, 12h
long → Long-Term Trading / Investing
- Positions held for weeks or months
- Focuses on long-term trends
- Lowest trade frequency
Recommended intervals: 1d, 1w, 1M
Custom Profiles Are Supported
You can create your own custom profile names.
Example:
Profile: btc_breakout
Profile: funding_strategy
Profile: conservative
This allows you to organize different bot instances for different strategies.
How Profile Connects to strategy_intervals
Profiles are mapped to specific candle intervals inside:
market_data.yaml
Example:
strategy_intervals:
hft: ["1m"]
scalp: ["30m"]
day: ["15m", "30m", "1h", "2h", "4h"]
swing: ["1h", "2h", "4h", "6h", "12h"]
long: ["1d"]
default: ["5m", "15m", "1h"]
This determines which timeframe the bot uses for:
- Market analysis
- Signal processing
- Strategy execution
IMPORTANT: summary_interval Must Match Profile Interval
The summary_interval must match the interval defined in the profile.
Example:
If the profile uses:
long: ["1d"]
Then summary_interval must also be:
summary_interval: "1d"
Incorrect example:
Profile interval: 1d
summary_interval: 30m ❌ WRONG
This mismatch will cause:
- No candle data mapping
- Signal processing failures
- Bot skipping trades
Correct example:
summary_interval: "1d" ✅ CORRECT
Best Practice: Use Only One Interval Per Profile
Although multiple intervals can be defined:
day: ["15m", "30m", "1h"]
It is highly recommended to use only one interval.
Example:
day: ["30m"]
Reasons:
- Improves performance
- Reduces API load
- Avoids rate-limit restrictions
- Improves signal consistency
- Simplifies strategy logic
Multiple intervals increase:
- Memory usage
- API requests
- Processing complexity
Without significant benefit in most strategies.
How Profile Helps Organize Bot Instances
Profiles allow you to run multiple specialized bot instances.
Example deployment:
BotInstance: Binance_Scalp_Bot
Profile: scalp
Purpose: Fast short-term trades
BotInstance: Bybit_Swing_Bot
Profile: swing
Purpose: Medium-term trend trades
BotInstance: OKX_LongTerm_Bot
Profile: long
Purpose: Long-term investing strategy
Each bot instance becomes optimized for its specific trading style.
Practical Example Configuration
application.yaml
Profile: long
market_data.yaml
strategy_intervals:
long: ["1d"]
summary_interval: "1d"
This ensures proper candle loading and signal processing.
Summary
The Profile setting:
- Defines the trading style of the bot instance
- Controls which candle intervals are used
- Helps organize strategies
- Ensures proper signal processing
- Improves clarity and deployment structure
Profiles do not execute trades directly, but they are essential for correct strategy configuration and market data alignment.
Using separate bot instances with different profiles is the recommended professional setup.