Elite Bot is a professional-grade automated cryptocurrency trading platform built for serious traders who demand reliability, flexibility, and depth of control. At its core, Elite Bot connects to live exchange WebSocket feeds, processes real-time market data, evaluates technical indicator signals, and executes buy and sell orders autonomously according to your configured strategy and risk parameters — all without requiring you to watch charts manually.
Unlike many trading bots that lock you into a single exchange or a handful of basic strategies, Elite Bot is engineered for the full spectrum of crypto trading. It supports over 15 major exchanges simultaneously, offers six distinct indicator-driven strategies, and provides a rich graphical interface that gives you complete visibility into every aspect of bot activity at a glance.
bot_theme.css is applied on the next launch.| Component | Minimum | Recommended |
|---|---|---|
| Operating System | Windows 10 (64-bit) | Windows 11 / Ubuntu 22.04 |
| RAM | 4 GB | 8 GB or more |
| CPU | Dual-core 2.0 GHz | Quad-core 3.0 GHz+ |
| Disk Space | 500 MB free | 2 GB free (for logs and data) |
| Internet | Broadband (stable) | Wired connection preferred |
| Python (source) | Python 3.11+ | Python 3.14 |
The compiled executable DennTechBot_v5.exe bundles all Python dependencies. No installation steps are required. Simply place the EXE and associated saved_data/ folder in the same directory and double-click to launch. Windows Defender may prompt a SmartScreen warning on first run — click "More info" then "Run anyway."
python --version in a terminal.Elite_Bot folder in a terminal or PowerShell window.python -m venv .venv.venv\Scripts\Activate.ps1 (Windows) or source .venv/bin/activate (Linux).pip install -r requirements.txtpython main.pyDENNTECH_UI=tk to force the Tkinter interface.On your very first launch, the bot checks for a valid license or trial token stored in saved_data/trial.json. If no token is found, an activation dialog appears automatically.
Elite Bot ships with a built-in trial period. During trial mode, all features are fully functional with no restrictions. The trial token is machine-locked — it is cryptographically tied to your hardware fingerprint using an HMAC signature, which means it cannot be copied to another machine. The remaining trial days are shown in the title bar of the application.
saved_data/trial.json. No internet connection is required after initial activation.The Elite Bot interface is organized into a main window with two primary panels — a left control panel and a right monitoring panel — plus a menu bar at the top and a status bar at the bottom.
The left panel hosts all trading controls in a vertical layout:
Before the bot can trade, you must provide API credentials for your chosen exchange. Each exchange requires an API key and a secret key, which you generate in the exchange's account security settings.
Every exchange's process differs slightly, but the general steps are:
saved_data/{exchange}_api_keys.json.saved_data/ folder or its contents. API keys stored there grant full trade access to your exchange account. Do not enable withdrawal permissions on bot API keys.Each exchange maintains its own separate key file. When you switch exchanges from the dropdown, the Manage API Key dialog automatically loads that exchange's previously saved credentials. You can configure and pre-save keys for all exchanges you intend to use before ever starting the bot — they are always available when you switch.
| Exchange | WebSocket | REST Fallback | Pairs Format |
|---|---|---|---|
| Kraken | Yes | Yes | BTC/USD |
| Binance US | Yes | Yes | BTCUSDT |
| Gemini | Yes | Yes | BTCUSD |
| Coinbase | Yes | Yes | BTC-USD |
| Bybit | Yes | Yes | BTCUSDT |
| KuCoin | Yes | Yes | BTC-USDT |
| OKX | Yes | Yes | BTC-USDT |
| Bitstamp | Yes | Yes | btcusd |
| Bitfinex | Yes | Yes | tBTCUSD |
| Gate.io | Yes | Yes | BTC_USDT |
The trading pair is the market the bot monitors and trades. For example, BTC/USD means the bot buys and sells Bitcoin using US Dollars as the quote currency. Every strategy calculation, balance display, and order is scoped to this pair.
When the bot first connects to an exchange (after Enable API is checked), it fetches the full list of available trading pairs and caches them locally as saved_data/{exchange}_pairs.json. If the file already exists, it loads from cache instantly, then refreshes in the background. Pair data refreshes automatically every session.
The timeframe dropdown (inside Trade Settings) controls the candlestick period used for all indicator calculations. Available options: 1m, 5m, 15m, 30m, 1h, 4h, 1d. Shorter timeframes generate more frequent signals — suitable for scalping strategies. Longer timeframes reduce noise — better for trend-following. When you change the timeframe, the bot re-subscribes to the WebSocket at the new interval and refetches historical data.
Elite Bot ships with six core indicator-based strategies. Each strategy has an independent configuration with per-exchange parameter tuning. Below is a detailed description of each.
The RSI strategy monitors the RSI oscillator (default period: 14, candle count: 624) to identify overbought and oversold conditions. The bot generates a Buy signal when RSI falls below the oversold threshold (default: 30) and a Sell signal when RSI rises above the overbought threshold (default: 70). RSI ranges from 0 to 100. Values near 0 indicate extreme selling pressure; values near 100 indicate extreme buying pressure. The RSI strategy works best on ranging markets with defined support and resistance levels.
The EMA strategy uses a fast and slow EMA crossover. A Buy signal fires when the fast EMA crosses above the slow EMA (bullish crossover). A Sell signal fires when the fast EMA crosses below the slow EMA (bearish crossover). The default candle count is 260. EMA gives more weight to recent prices than SMA, making it more responsive to new trends. This strategy is best suited to trending markets.
MACD combines a fast EMA (12), slow EMA (26), and signal line (9) to detect trend changes and momentum shifts. A Buy signal occurs when the MACD line crosses above the signal line. A Sell signal occurs when the MACD line crosses below the signal line. The histogram (MACD minus signal line) visualizes momentum strength. This strategy captures medium-term trend reversals well and is one of the most widely used indicators in technical analysis.
Similar to EMA but using an arithmetic mean over N periods. The SMA strategy uses a short and long SMA crossover. Buy when short SMA crosses above long SMA; sell when short SMA crosses below long SMA. SMA is smoother and less reactive than EMA, making it less prone to false signals in choppy conditions. Default candle count: 260.
ATR measures market volatility. The bot uses ATR to size positions and filter signals — it avoids opening positions when volatility is too high or too low relative to a threshold. Buy and sell conditions are combined with a primary trend indicator. ATR is often used alongside other strategies for risk-adjusted position sizing rather than as a standalone signal generator. Default candle count: 260.
ADX measures trend strength on a scale from 0 to 100. Values above 25 indicate a strong trend; below 20 indicates a weak or ranging market. The bot combines ADX with the +DI and -DI directional movement indicators. A Buy signal fires when ADX is above 25 and +DI crosses above -DI. A Sell signal fires when ADX is above 25 and -DI crosses above +DI. When ADX is below 20, the bot pauses trading to avoid choppy no-trend conditions. Default candle count: 260.
Each strategy exposes its configurable inputs in the Strategy Parameters panel on the left side. Inputs vary by strategy but typically include period lengths, threshold values, and optional multipliers. After adjusting any value, click Apply to take effect immediately for the current session. Changes are saved to saved_data/strategy_config.json.
In Advanced Settings → Indicator Candle Counts, you can override the number of historical candles fetched per indicator per exchange. The valid range is 100 to 1000 candles. More candles give indicators more price history to work with, producing more stable values but requiring slightly more initial load time.
Trade settings control how much the bot spends per order and how orders are sized relative to your available capital.
Cash Trade (default): You specify fixed dollar amounts for each trade and for the session budget. The bot will not exceed your session limit in cumulative buys.
Percentage Trade: Order sizes are calculated as a percentage of your available session balance, allowing dynamic scaling as your balance grows or shrinks.
The trade interval (in seconds) controls the minimum time between strategy evaluations. Set to 10 seconds by default. Shorter intervals catch more signals but increase API call frequency. Longer intervals reduce noise. Minimum recommended: 10 seconds. For 1m timeframe trading, 10–30 seconds is appropriate. For 1h timeframe, 60–300 seconds is typical.
Located in Advanced Settings. When set below 100%, the bot uses a trailing sell mechanism — it waits for the price to pull back by the specified percentage from the peak before executing the sell. This lets profitable positions run longer before closing. Set to 100% to sell immediately on signal.
The stop loss engine protects against runaway losses by automatically closing positions when they decline beyond a threshold you define.
Check the Stop Loss checkbox in the Stop Loss frame on the left panel. Two sub-options appear:
Enable Trailing Stop (in Advanced Settings) to have the stop loss level move upward as the position gains. The trailing stop tracks the highest price reached since entry and sets the stop at (highest price × (1 − stop_percent/100)). This locks in profits as the trade moves in your favor while still protecting the downside.
The Positions table in the right panel displays all open positions managed by the bot. Each row shows:
Right-click any position in the table to access the context menu. Select Close Position to immediately place a market sell order for the full quantity. You will be prompted to confirm before the order is sent to the exchange.
All open positions are saved to saved_data/positions.json after every change. If the bot closes unexpectedly, it reloads your positions on next launch and resumes monitoring them for stop loss and sell signals.
The watchlist lets you monitor live prices for multiple pairs simultaneously, even if only one is the active trading pair.
Click any row in the watchlist to instantly switch the bot's active pair to that selection. The strategy, price display, and chart all update to reflect the new pair.
Select the pair in the watchlist table and click Remove Selected. The pair is removed from both the display and the saved watchlist file.
The watchlist is saved to saved_data/watchlist.json and reloads automatically every time the bot starts, so your monitored pairs are always ready.
Click Advanced in the Actions section to open the Advanced Settings window. This window contains deeper configuration options not visible in the main interface.
Controls how often the main window's display refreshes (in seconds). Default: 60 seconds. Lower values keep prices and P&L more current but increase CPU usage. For most trading setups, 30–60 seconds is ideal.
When enabled, the bot resets the session loss counter and position state after a stop loss trigger, allowing trading to resume automatically after the cooldown period rather than requiring manual restart.
Per-indicator, per-exchange override for how many historical candles are fetched. Adjust these if your strategy needs more data for stable indicator calculations or if you want to reduce initial load time by fetching fewer candles.
Save the current configuration (strategy, parameters, trade settings, stop loss) as a named preset. Load presets to instantly switch between trading configurations. Presets are stored in saved_data/strategy_input_presets.json.
Click Open Chart in the Actions section to launch the Live Chart Bridge window. This opens an embedded browser panel powered by TradingView Lightweight Charts — a fast, professional-grade charting library.
The chart state is persisted in saved_data/chart_bridge_state.json. When the chart window is closed and reopened, it resumes from the last known state with all previous candles and markers intact. The chart scrolls automatically to keep the latest candle in view.
Elite Bot's UI is entirely styled through bot_theme.css, located in the application root folder. Every color, border, font size, and widget style is controlled by this file. Theme changes take effect on the next application launch.
#050507) for the main window and all panels.#00FF00 / signal_green) for data readouts and section titles.input_bg).success).danger).Two named presets are included in theme_presets.json: Midnight Black Copy and Midnight Black Copy3. Both are pure-black variants with different panel chrome and button gradient settings. Add custom presets to theme_presets.json in the same JSON format to make them selectable from the Theme menu.
Dry Run mode is the safest way to evaluate a strategy before committing real capital. When Dry Run is active, all signals, order calculations, position tracking, and P&L simulation run exactly as in live mode — but no actual orders are sent to the exchange.
Click the Dry Run button in the Actions section. The title bar displays [DRY RUN] while active. All Activity Log entries are prefixed with [DRY] to distinguish simulated events from real ones.
You can run dry mode simultaneously with a live session on another exchange — they operate independently. Dry run positions appear in the Positions table with a DRY label.
All persistent data is stored in the saved_data/ folder in the application directory. Below is a summary of key files:
| File | Contents |
|---|---|
api_keys.json | Encrypted API credentials per exchange |
positions.json | Current open positions and entry prices |
watchlist.json | Saved watchlist pairs |
strategy_config.json | Active strategy settings and parameters |
general_config.json | Global bot configuration (intervals, modes) |
app.log | Current session activity log |
app.YYYY-MM-DD_HHMMSS.log | Rotated log archives from previous sessions |
trial.json | License / trial activation record |
chart_bridge_state.json | Chart window state and candle history |
app.*.log files to reclaim disk space. The current app.log should never be deleted while the bot is running.Check saved_data/pyqt_fatal.log and saved_data/main_errors.log for the error message. Most startup failures are caused by a corrupted config file — try deleting general_config.json and restarting. The bot recreates it with defaults.
Verify your API key and secret are correct. Check that the key has Trade and View permissions on the exchange. Ensure your machine's clock is synchronized (many exchanges reject requests with timestamps more than 5 seconds off). Try disabling then re-enabling the API checkbox.
Delete the cached pairs file (e.g., saved_data/kraken_pairs.json) and restart. The bot will re-fetch pairs from the exchange on next connection.
Confirm the trade interval is not set too high. Check that the candle count is sufficient for the indicator (minimum 100). Ensure the trading pair has enough historical data on the exchange for the selected timeframe.
This is an exchange-side issue (most common on Kraken) caused by timestamp desynchronization. The bot self-recovers from nonce errors automatically by incrementing the nonce. If errors persist, synchronize your system clock with an NTP server.
Delete saved_data/chart_bridge_state.json and reopen the chart. This resets the chart state and forces a fresh data load.
Elite Bot User Manual — DennTech Trading Solutions — v5.0 — May 2026