What the bot does
EODHDSignals is a free Telegram bot powered by EODHD data. It monitors your chosen tickers and sends Buy/Sell alerts using technical strategies. You can also check the latest price, switch strategies, and run backtests on historical data.
The bot is based on a series of EODHD Academy articles by Michael Whittle that build the project from scratch:
- (part 1) Create a Telegram Trading Bot
- (part 2) Add Multiple Strategies to Telegram Trading Bot
- (part 3) Telegram Trading Bot – Backtesting
The bot is open source: Github
Key features
- Smart alerts in chat when strategy conditions are met.
- One active symbol per chat; switch anytime.
- Multiple strategies: sma, ema, rsi, macd, bbands, selectable via on-screen buttons.
- Backtesting on historical data with a results summary (trades, wins/losses, win rate, total return, period).
Quick start
- Send “/start” to confirm the bot is ready.
- Set your market with “/set_symbol <SYMBOL>” (examples: AAPL.US, BTC-USD.CC).
- Set timeframe with “/set_interval <INTERVAL>” (examples: 1m, 5m, 1h, d, w, m).
- Choose a strategy: “send /set_strategy” and tap a button (SMA, EMA, RSI, MACD, BBANDS).
- Optional checks: “/get_price” for the latest price, “/analyse_market” for the latest signal.

Commands
Command | What it does | Example |
---|---|---|
/start | Welcomes you and confirms the bot is active. | /start |
/set_symbol <SYMBOL> | Sets the market to monitor. | /set_symbol AAPL.US |
/set_interval <INTERVAL> | Sets analysis timeframe. (1m, 5m, 1h, d, w, m) | /set_interval 1h |
/get_price | Shows the current price for the active symbol. | /get_price |
/list_strategies | Lists available strategies. | /list_strategies |
/set_strategy | Opens on-screen buttons to choose a strategy. (SMA, EMA, RSI, MACD, BBANDS) | /set_strategy |
/current_strategy | Shows which strategy is active. | /current_strategy |
/analyse_market | Runs an immediate analysis and posts the latest signal. | /analyse_market |
/debug | Toggles concise status messages each cycle (for transparency without duplicate alerts). | /debug |
/backtest <STRATEGY> <SYMBOL> <INTERVAL> | Runs a backtest and returns a summary. | /backtest rsi BTC-USD.CC 1m |
Using debug
- Purpose: shows short status lines (for example, when the last processed candle hasn’t changed) so you can see the bot is running without spamming repeated alerts.
- How: send /debug to turn on; send /debug again to turn off.
Reference behavior illustrated in the backtesting article.

Using backtesting
- What it does: applies the chosen strategy to historical data and reports trades, wins/losses, win rate, total return, data points, and period.
- How: run one symbol per command, for example: /backtest sma BTC-USD.CC 1m.
- Notes: short intervals on volatile markets are mainly for demonstration; results shown in the reference guide do not include exchange fees.
