Skip to content

danywayGit/BackTestingSignals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

53 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š BackTesting Signals

A framework for extracting, backtesting, and optimizing cryptocurrency trading signals from Discord/Telegram channels.


🎯 What It Does

  1. Extracts trading signals from Discord and Telegram channels
  2. Backtests signals against real Binance historical price data
  3. Optimizes performance by analyzing patterns (day/hour/coin combinations)
  4. Generates actionable trading strategies with high win rates

⚑ Quick Start (5 minutes)

Prerequisites

  • Python 3.10+
  • Discord/Telegram API credentials
  • Internet access (for Binance data)

Installation

# Clone repository
git clone https://github.com/yourusername/BackTestingSignals.git
cd BackTestingSignals

# Run setup script
python setup.py

The setup wizard will:

  • Create virtual environment
  • Install dependencies
  • Guide you through configuration

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


πŸš€ Usage

1. Extract Signals

# 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.py

Signals saved to data/signals/

2. Run Backtest

python full_backtest.py

Select a signal file when prompted. Results saved to data/backtest_results/

3. Optimize

python long_short_optimization.py

Analyzes patterns to find high win-rate trading conditions.


πŸ“ Project Structure

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

πŸ“Š Signal Sources Comparison

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.

Optimized Results (filtered strategies)

Source LONG WR SHORT WR
Telegram 75.0% 100.0%
Discord 80.8% 65.4%

πŸ”¬ How It Works

Backtesting Logic

For each signal:

  1. Fetch 72 hours of 1-minute Binance OHLCV data
  2. Track if price hits Target 1-3 or Stop Loss first
  3. Record outcome, timing, and profit/loss

Optimization

  1. Group signals by day, hour, coin, month
  2. Calculate win rates for each group
  3. Identify high-performance combinations (>60% WR)
  4. Generate actionable trading rules

⚠️ Key Insights

The Thursday Curse 🚨

Both sources show poor performance on Thursday. Consider skipping Thursday signals.

Best Patterns (DaviddTech)

  • LONG: Thursday, 11/15/19:00 UTC, LINKUSDT
  • SHORT: Sunday, 03/08/21:00 UTC

Risk Management

  • Maximum 2% risk per trade
  • Always use stop losses
  • Maximum 3 simultaneous positions

πŸ› οΈ Scripts Reference

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

πŸ› Troubleshooting

Token/API Issues

  • Expired token: Re-extract from browser
  • Rate limit: Built-in retry handles this
  • No data: Check symbol format (BTCUSDT not BTC-USDT)

Installation Issues

  • Requires Python 3.10+
  • Delete venv/ and re-run setup.py if venv issues

πŸ“„ License

MIT License


Version: 2.2
Last Updated: December 2025
Status: Production Ready βœ…

About

A comprehensive framework for extracting, backtesting, and optimizing cryptocurrency trading signals from Discord/Telegram channels.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors