A framework for extracting, backtesting, and optimizing cryptocurrency trading signals from Discord/Telegram channels.
- Extracts trading signals from Discord and Telegram channels
- Backtests signals against real Binance historical price data
- Optimizes performance by analyzing patterns (day/hour/coin combinations)
- Generates actionable trading strategies with high win rates
- Python 3.10+
- Discord/Telegram API credentials
- Internet access (for Binance data)
# Clone repository
git clone https://github.com/yourusername/BackTestingSignals.git
cd BackTestingSignals
# Run setup script
python setup.pyThe setup wizard will:
- Create virtual environment
- Install dependencies
- Guide you through configuration
Edit config/config.json:
{
"telegram": {
"api_id": "YOUR_API_ID",
"api_hash": "YOUR_API_HASH",
"phone_number": "+1234567890",
"channels": [{"name": "DaviddTech", "username": "DaviddTech"}]
},
"discord": {
"token": "YOUR_DISCORD_TOKEN",
"channel_id": "YOUR_CHANNEL_ID"
}
}Guides:
docs/setup/telegram_setup.md|docs/discord-token-guide.md
# Activate virtual environment first!
.\venv\Scripts\Activate.ps1 # Windows
source venv/bin/activate # Linux/Mac
# Extract from Telegram (DaviddTech)
python extract_telegram.py
# Extract from Discord (Meta Signals)
python extract_discord.pySignals saved to data/signals/
python full_backtest.pySelect a signal file when prompted. Results saved to data/backtest_results/
python long_short_optimization.pyAnalyzes patterns to find high win-rate trading conditions.
BackTestingSignals/
βββ extract_telegram.py # Telegram signal extraction
βββ extract_discord.py # Discord signal extraction
βββ full_backtest.py # Backtesting engine
βββ long_short_optimization.py # Optimization analysis
βββ analyze_davidtech.py # DaviddTech analysis
βββ setup.py # Setup wizard
β
βββ src/ # Core modules
β βββ parsers/ # Signal format parsers
β βββ backtesting/ # Backtesting logic
β βββ data/ # Data management
β βββ analytics/ # Analysis tools
β
βββ config/ # Configuration
β βββ config.json # API keys (DO NOT COMMIT)
β
βββ data/ # Data storage
β βββ signals/ # Extracted signals
β βββ backtest_results/ # Backtest outputs
β βββ cache/ # Binance data cache
β
βββ docs/ # Documentation
β βββ setup/ # Setup guides
β βββ analysis/ # Analysis reports
β
βββ archive/ # Archived extraction methods
| Source | Signals | Baseline WR | Profit Factor |
|---|---|---|---|
| Telegram (DaviddTech) | 743 | 47.5% | 1.33 β |
| Discord (Meta Signals) | 1756 | 36.5% | 0.93 |
Recommendation: DaviddTech provides better baseline performance.
| Source | LONG WR | SHORT WR |
|---|---|---|
| Telegram | 75.0% | 100.0% |
| Discord | 80.8% | 65.4% |
For each signal:
- Fetch 72 hours of 1-minute Binance OHLCV data
- Track if price hits Target 1-3 or Stop Loss first
- Record outcome, timing, and profit/loss
- Group signals by day, hour, coin, month
- Calculate win rates for each group
- Identify high-performance combinations (>60% WR)
- Generate actionable trading rules
Both sources show poor performance on Thursday. Consider skipping Thursday signals.
- LONG: Thursday, 11/15/19:00 UTC, LINKUSDT
- SHORT: Sunday, 03/08/21:00 UTC
- Maximum 2% risk per trade
- Always use stop losses
- Maximum 3 simultaneous positions
| Script | Purpose |
|---|---|
extract_telegram.py |
Extract signals from Telegram |
extract_discord.py |
Extract signals from Discord |
full_backtest.py |
Run backtests on signal files |
long_short_optimization.py |
Optimize LONG & SHORT strategies |
analyze_davidtech.py |
Comprehensive DaviddTech analysis |
short_optimization.py |
SHORT-only optimization |
compare_long_short.py |
Compare LONG vs SHORT |
check_telegram_channel.py |
Verify Telegram access |
- Expired token: Re-extract from browser
- Rate limit: Built-in retry handles this
- No data: Check symbol format (BTCUSDT not BTC-USDT)
- Requires Python 3.10+
- Delete
venv/and re-runsetup.pyif venv issues
MIT License
Version: 2.2
Last Updated: December 2025
Status: Production Ready β