init
This commit is contained in:
182
readme.md
Normal file
182
readme.md
Normal file
@ -0,0 +1,182 @@
|
||||
# Crypto Trading Bot with Reinforcement Learning
|
||||
|
||||
An automated cryptocurrency trading bot that uses Deep Q-Learning (DQN) to trade ETH/USDT on the MEXC exchange. The bot features a sophisticated neural network architecture with LSTM layers and attention mechanisms for better pattern recognition.
|
||||
|
||||
## Features
|
||||
|
||||
- Deep Q-Learning with experience replay
|
||||
- LSTM layers for sequential data processing
|
||||
- Multi-head attention mechanism
|
||||
- Dueling DQN architecture
|
||||
- Real-time trading capabilities
|
||||
- TensorBoard integration for monitoring
|
||||
- Comprehensive technical indicators
|
||||
- Demo and live trading modes
|
||||
- Automatic model checkpointing
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Python 3.8+
|
||||
- MEXC Exchange API credentials
|
||||
- GPU recommended but not required
|
||||
|
||||
## Installation
|
||||
|
||||
1. Clone the repository:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yourusername/crypto-trading-bot.git
|
||||
cd crypto-trading-bot
|
||||
```
|
||||
2. Create a virtual environment:
|
||||
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # On Windows: venv\Scripts\activate
|
||||
```
|
||||
3. Install dependencies:
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
|
||||
4. Create a `.env` file in the project root with your MEXC API credentials:
|
||||
|
||||
```bash
|
||||
MEXC_API_KEY=your_api_key
|
||||
MEXC_API_SECRET=your_api_secret
|
||||
```
|
||||
## Usage
|
||||
|
||||
The bot can be run in three modes:
|
||||
|
||||
### Training Mode
|
||||
|
||||
```bash
|
||||
python main.py --mode train --episodes 1000
|
||||
```
|
||||
|
||||
### Evaluation Mode
|
||||
|
||||
```bash
|
||||
python main.py --mode eval --episodes 10
|
||||
```
|
||||
|
||||
### Live Trading Mode
|
||||
|
||||
```bash
|
||||
# Demo mode (simulated trading with real market data)
|
||||
python main.py --mode live --demo
|
||||
|
||||
# Real trading (actual trades on MEXC)
|
||||
python main.py --mode live
|
||||
```
|
||||
|
||||
Demo mode simulates trading using real-time market data but does not execute actual trades. It still:
|
||||
- Logs all trading decisions and performance metrics
|
||||
- Updates the model based on market data (if in training mode)
|
||||
- Displays real-time analytics and position information
|
||||
- Calculates theoretical profits/losses
|
||||
- Saves performance data to TensorBoard
|
||||
|
||||
This makes it perfect for testing strategies without financial risk.
|
||||
|
||||
## Configuration
|
||||
|
||||
Key parameters can be adjusted in `main.py`:
|
||||
|
||||
- `INITIAL_BALANCE`: Starting balance for training/demo
|
||||
- `MAX_LEVERAGE`: Maximum leverage for trades
|
||||
- `STOP_LOSS_PERCENT`: Stop loss percentage
|
||||
- `TAKE_PROFIT_PERCENT`: Take profit percentage
|
||||
- `BATCH_SIZE`: Training batch size
|
||||
- `LEARNING_RATE`: Model learning rate
|
||||
- `STATE_SIZE`: Size of the state representation
|
||||
|
||||
## Model Architecture
|
||||
|
||||
The DQN model includes:
|
||||
- Input layer with technical indicators
|
||||
- LSTM layers for temporal pattern recognition
|
||||
- Multi-head attention mechanism
|
||||
- Dueling architecture for better Q-value estimation
|
||||
- Batch normalization for stable training
|
||||
|
||||
## Monitoring
|
||||
|
||||
Training progress can be monitored using TensorBoard:
|
||||
|
||||
|
||||
Training progress is logged to TensorBoard:
|
||||
|
||||
```bash
|
||||
tensorboard --logdir=logs
|
||||
```
|
||||
|
||||
This will show:
|
||||
- Training rewards
|
||||
- Account balance
|
||||
- Win rate
|
||||
- Loss metrics
|
||||
|
||||
## Trading Strategy
|
||||
|
||||
The bot makes decisions based on:
|
||||
- Price action
|
||||
- Technical indicators (RSI, MACD, Bollinger Bands, etc.)
|
||||
- Historical patterns through LSTM
|
||||
- Risk management with stop-loss and take-profit
|
||||
|
||||
## Safety Features
|
||||
|
||||
- Demo mode for safe testing
|
||||
- Automatic stop-loss
|
||||
- Position size limits
|
||||
- Error handling for API calls
|
||||
- Logging of all actions
|
||||
|
||||
## Directory Structure
|
||||
├── main.py # Main bot implementation
|
||||
├── requirements.txt # Project dependencies
|
||||
├── .env # API credentials
|
||||
├── models/ # Saved model checkpoints
|
||||
├── runs/ # TensorBoard logs
|
||||
└── trading_bot.log # Activity logs
|
||||
|
||||
|
||||
## Warning
|
||||
|
||||
Cryptocurrency trading carries significant risks. This bot is for educational purposes and should not be used with real money without thorough testing and understanding of the risks involved.
|
||||
|
||||
## License
|
||||
|
||||
[MIT License](LICENSE)
|
||||
|
||||
The main changes I made:
|
||||
Fixed code block formatting by adding proper language identifiers
|
||||
Added missing closing code blocks
|
||||
Properly formatted directory structure
|
||||
Added complete sections that were cut off in the original
|
||||
Ensured consistent formatting throughout the document
|
||||
Added proper bash syntax highlighting for command examples
|
||||
The README.md now provides a complete guide for setting up and using the trading bot, with clear sections for installation, usage, configuration, and safety considerations.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Edits/improvements
|
||||
|
||||
Fixes the shape mismatch by ensuring the state vector is exactly STATE_SIZE elements
|
||||
Adds robust error handling in the model's forward pass to handle mismatched inputs
|
||||
Adds a transformer encoder for more sophisticated pattern recognition
|
||||
Provides an expand_model method to increase model capacity while preserving learned weights
|
||||
Adds detailed logging about model size and shape mismatches
|
||||
The model now has:
|
||||
Configurable hidden layer sizes
|
||||
Transformer layers for complex pattern recognition
|
||||
LSTM layers for temporal patterns
|
||||
Attention mechanisms for focusing on important features
|
||||
Dueling architecture for better Q-value estimation
|
||||
With hidden_size=256, this model has about 1-2 million parameters. By increasing hidden_size to 512 or 1024, you can easily scale to 5-20 million parameters. For even larger models (billions of parameters), you would need to implement a more distributed architecture with multiple GPUs, which would require significant changes to the training loop.
|
Reference in New Issue
Block a user