220 lines
5.8 KiB
Markdown
220 lines
5.8 KiB
Markdown
# Clean Trading System
|
||
|
||
A modular, scalable cryptocurrency trading system with CNN and RL components for multi-timeframe analysis.
|
||
|
||
## 🚫 **CRITICAL: NO SYNTHETIC DATA POLICY**
|
||
|
||
**This system uses EXCLUSIVELY real market data from cryptocurrency exchanges. NO synthetic, generated, or simulated data is allowed for training, testing, or inference.**
|
||
|
||
### **Strictly Forbidden:**
|
||
- Any form of synthetic or generated data
|
||
- Mock or simulated market conditions
|
||
- Dummy data for testing or development
|
||
- Random price generation or manipulation
|
||
|
||
### **Policy Compliance:**
|
||
- All data must come from live exchange APIs
|
||
- Historical data must be authentic exchange records
|
||
- Real-time feeds must be direct from exchange WebSockets
|
||
- Zero tolerance for synthetic data in any form
|
||
|
||
**See `REAL_MARKET_DATA_POLICY.md` for complete details and compliance guidelines.**
|
||
|
||
## Features
|
||
|
||
- **Multi-timeframe Analysis**: 1s, 1m, 5m, 1h, 4h, 1d scalping focus
|
||
- **CNN Pattern Recognition**: Real market pattern detection with temporal attention
|
||
- **RL Trading Agent**: Reinforcement learning with real historical backtesting
|
||
- **Real-time Data**: Live market data from Binance API
|
||
- **Web Dashboard**: Real-time monitoring and visualization
|
||
- **Modular Architecture**: Clean separation of concerns
|
||
|
||
## Quick Start
|
||
|
||
### 1. Install Dependencies
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 2. Configure Settings
|
||
Edit `config.yaml` to set your preferences:
|
||
```yaml
|
||
symbols: ["ETH/USDT", "BTC/USDT"]
|
||
timeframes: ["1s", "1m", "5m", "1h", "4h"]
|
||
training:
|
||
use_only_real_data: true # CRITICAL: Never change this
|
||
```
|
||
|
||
### 3. Train CNN Model (Real Data Only)
|
||
```bash
|
||
python main_clean.py --mode cnn --symbol ETH/USDT
|
||
```
|
||
|
||
### 4. Train RL Agent (Real Data Only)
|
||
```bash
|
||
python main_clean.py --mode rl --symbol ETH/USDT
|
||
```
|
||
|
||
### 5. Launch Web Dashboard
|
||
```bash
|
||
python main_clean.py --mode web --port 8050
|
||
```
|
||
|
||
## Architecture
|
||
|
||
```
|
||
gogo2/
|
||
├── core/ # Core system components
|
||
│ ├── config.py # Configuration management
|
||
│ ├── data_provider.py # Real market data fetching
|
||
│ └── orchestrator.py # Decision coordination
|
||
├── models/ # AI models (real data only)
|
||
│ ├── cnn/ # CNN pattern recognition
|
||
│ └── rl/ # RL trading agent
|
||
├── training/ # Training pipelines
|
||
│ ├── cnn_trainer.py # CNN training with real data
|
||
│ └── rl_trainer.py # RL training with real data
|
||
├── web/ # Web dashboard
|
||
└── main_clean.py # Unified entry point
|
||
```
|
||
|
||
## Data Sources
|
||
|
||
### ✅ Approved Sources
|
||
- Binance API (real-time and historical)
|
||
- Cached real market data
|
||
- TimescaleDB with real data
|
||
|
||
### ❌ Prohibited Sources
|
||
- Synthetic data generation
|
||
- Random data simulation
|
||
- Mock market conditions
|
||
|
||
## Training Modes
|
||
|
||
### CNN Training with TensorBoard
|
||
```bash
|
||
# Train on real ETH/USDT data with TensorBoard monitoring
|
||
python main_clean.py --mode cnn --symbol ETH/USDT
|
||
|
||
# Monitor training in real-time
|
||
tensorboard --logdir=runs
|
||
|
||
# Or use the convenience script
|
||
python run_tensorboard.py
|
||
|
||
# Quick test with real data
|
||
python test_cnn_only.py
|
||
```
|
||
|
||
### RL Training with TensorBoard
|
||
```bash
|
||
# Train RL agent with real data
|
||
python main_clean.py --mode rl --symbol ETH/USDT
|
||
|
||
# Real-time RL training
|
||
python train_rl_with_realtime.py --episodes 10
|
||
|
||
# Monitor RL training metrics
|
||
tensorboard --logdir=runs
|
||
```
|
||
|
||
## TensorBoard Monitoring
|
||
|
||
All training sessions are logged to TensorBoard for real-time monitoring:
|
||
|
||
```bash
|
||
# Start TensorBoard server
|
||
tensorboard --logdir=runs
|
||
|
||
# Or use the convenience script
|
||
python run_tensorboard.py
|
||
```
|
||
|
||
**Metrics Available:**
|
||
- **CNN Training**: Loss, accuracy, confidence scores, feature statistics
|
||
- **RL Training**: Rewards, returns, win rates, epsilon values, trading metrics
|
||
- **Model Architecture**: Parameter counts, memory usage
|
||
- **Real-time Updates**: Batch-level and epoch-level metrics
|
||
|
||
Access TensorBoard at: http://localhost:6006
|
||
|
||
## Performance
|
||
|
||
- **Memory Usage**: <2GB per model
|
||
- **Training Speed**: ~20 seconds for 50 epochs
|
||
- **Real Data Processing**: 1000+ candles per timeframe
|
||
- **Feature Count**: Dynamically detected from real data (typically 48)
|
||
|
||
## Monitoring
|
||
|
||
All operations log their data sources:
|
||
```
|
||
INFO - Generating 10000 training cases for ETH/USDT from REAL market data
|
||
INFO - Loaded 1000 real candles for ETH/USDT 1s
|
||
INFO - Building network with 48 features from real market data
|
||
```
|
||
|
||
## Testing
|
||
|
||
```bash
|
||
# Test data provider with real data
|
||
python -m pytest tests/test_data_provider.py
|
||
|
||
# Test CNN with real data
|
||
python test_cnn_only.py
|
||
|
||
# Test full system
|
||
python main_clean.py --mode test
|
||
```
|
||
|
||
## Web Dashboard
|
||
|
||
Access at `http://localhost:8050` for:
|
||
- Real-time price charts
|
||
- Model predictions
|
||
- Trading performance
|
||
- System metrics
|
||
|
||
## Configuration
|
||
|
||
Key settings in `config.yaml`:
|
||
```yaml
|
||
data:
|
||
provider: "binance" # Real exchange API
|
||
cache_enabled: true # Cache real data
|
||
real_time_enabled: true # Live data feed
|
||
|
||
training:
|
||
use_only_real_data: true # NEVER change this
|
||
batch_size: 32
|
||
epochs: 100
|
||
|
||
trading:
|
||
max_position_size: 0.1
|
||
trading_fee: 0.0002
|
||
```
|
||
|
||
## Safety Features
|
||
|
||
- **Data Validation**: Ensures all data comes from real sources
|
||
- **Cache Verification**: Validates cached data authenticity
|
||
- **Training Monitoring**: Logs all data sources
|
||
- **Emergency Stops**: Halts training if synthetic data detected
|
||
|
||
## Contributing
|
||
|
||
When contributing:
|
||
1. **NEVER** introduce synthetic data generation
|
||
2. Always use real market data for testing
|
||
3. Log data sources clearly
|
||
4. Follow the real data policy strictly
|
||
|
||
## License
|
||
|
||
This project is for educational and research purposes. Use real market data responsibly.
|
||
|
||
---
|
||
|
||
**⚠️ REMEMBER: This system's integrity depends on using only real market data. No exceptions.**
|