Skip to content

kalimasada97/ml-crypto-trading-bot

Repository files navigation

ML Trading Bot

Bot trading otomatis yang menggunakan machine learning dan analisis teknikal untuk menghasilkan sinyal trading di pasar cryptocurrency.

Fitur Utama

  • 🤖 Machine Learning untuk prediksi harga
  • 📊 Analisis teknikal multi-timeframe
  • 🌊 Analisis Elliott Wave
  • 📈 Analisis Volume Profile
  • 📰 Analisis sentimen berita
  • 🔄 Analisis korelasi pasar
  • 📱 Notifikasi Telegram
  • ⚡ Manajemen risiko otomatis
  • 🔒 Sistem keamanan dan monitoring

Persyaratan Sistem

  • Python 3.8+
  • MongoDB
  • Redis
  • TA-Lib
  • Koneksi internet stabil
  • API key Binance
  • Bot Telegram

Instalasi

  1. Clone repository:
git clone <repository_url>
cd trading_system
  1. Jalankan script instalasi:
chmod +x setup.sh
./setup.sh

Script akan:

  • Membuat virtual environment
  • Menginstal semua dependencies
  • Menginstal TA-Lib
  • Membuat direktori yang diperlukan
  • Menyiapkan file konfigurasi

Konfigurasi

  1. Copy .env.example ke .env:
cp .env.example .env
  1. Edit .env dengan konfigurasi Anda:
# Database Configuration
MONGODB_URI=mongodb://localhost:27017/trading_bot
REDIS_URL=redis://localhost:6379/0

# Binance API - Untuk akses data pasar dan eksekusi trading
BINANCE_API_KEY=K4imTSPtLipPhOEQP1BXKCSmshiEldyMhZtHxxP4fGqEHsSeskglltZqE9DGE44g
BINANCE_SECRET_KEY=DFWScLQ83OpMCqmtj6pJrs2Z36OdMXzNWudwVimbRR9AJL46X3yHynG7t6traHrf

# News API - Untuk analisis sentimen berita crypto
NEWS_API_KEY=099fd00c9aac4333bdb55b7ea7fe5f31

# Twitter API - Untuk monitoring sentimen sosial media
TWITTER_API_KEY=1s0T1yz0CG7HHD5Fs3xPhMRXo
TWITTER_API_SECRET=tPVplQObYTJBNyioLIz8ezP1laVVUPYNZqCQ7Kkuq7Y2vKEUfY
TWITTER_ACCESS_TOKEN=AAAAAAAAAAAAAAAAAAAAAJxBzwEAAAAA4r%2BgCoS2fPrPN8WWLeimuIFBTIY%3DKdfVQO8B7zZAzpU2pV09yPtd1pBd7w9nJgSmIvxOESAvMMwPKR
TWITTER_ACCESS_SECRET=1560136888044109826-D8m1onBUxCTmj4aXfSCyOcz0RihzIm
TWITTER_BEARER_TOKEN=QezxmngBHxcg71eedQJCJoCXHQZ6oi2VH7HFunacExhce

# Whale Alert API - Untuk monitoring transaksi whale
WHALE_ALERT_API_KEY=your_whale_alert_api_key

# Coin API - Untuk data historis tambahan
COIN_API_KEY=0a012854-972b-4d0c-85e6-0b62709b586e

# CoinGecko API - Untuk data market dan metadata coin
COINGECKO_API_KEY=CG-NjqmzedcNFwYzQ8pxkb8bZKX

# Telegram - Untuk notifikasi dan kontrol bot
TELEGRAM_BOT_TOKEN=7747406899:AAGTcw4NK2oYRH27M-PHR1GIc7rpfGKe0EE
TELEGRAM_CHAT_ID=5125770095

# Trading Parameters
TRADING_PAIRS=["BTC/USDT","ETH/USDT","SOL/USDT","XRP/USDT","DOT/USDT"]
TIMEFRAMES=["5m","15m","1h","4h","1d"]
RISK_PER_TRADE=1.0
MAX_OPEN_POSITIONS=3
POSITION_SIZE_PERCENTAGE=2
STOP_LOSS_PERCENTAGE=2
TAKE_PROFIT_PERCENTAGE=6

# ML Model Parameters
ML_MODEL_PATH=models/random_forest_model.pkl
SCALER_PATH=models/feature_scaler.pkl
MODEL_RETRAIN_INTERVAL=86400  # 24 jam dalam detik
PREDICTION_THRESHOLD=0.75

# Feature Flags
ENABLE_ML_PREDICTIONS=true
ENABLE_SENTIMENT_ANALYSIS=true
ENABLE_ELLIOTT_WAVE=true
ENABLE_VOLUME_PROFILE=true
ENABLE_NEWS_ANALYSIS=true
ENABLE_MARKET_CORRELATION=true
ENABLE_WHALE_TRACKING=true
ENABLE_SOCIAL_SENTIMENT=true

# System Parameters
MAX_CPU_USAGE=80
MAX_MEMORY_USAGE=80
MAX_DISK_USAGE=80
LOG_LEVEL=INFO
DATA_FETCH_INTERVAL=60  # dalam detik
HEALTH_CHECK_INTERVAL=300  # dalam detik
MAX_RETRIES=3
TIMEOUT=30

# Notifikasi Parameters
NOTIFICATION_INTERVAL=900  # 15 menit dalam detik
ALERT_ON_SYSTEM_USAGE=true
ALERT_ON_ERROR=true
ALERT_ON_TRADE=true
ALERT_ON_SIGNAL=true

# Backtest Parameters
BACKTEST_START_DATE=2024-01-01
BACKTEST_END_DATE=2024-03-19
INITIAL_BALANCE=1000
TRADING_FEE=0.1

### Mendapatkan API Keys

1. **Binance API**
   - Buat akun di [Binance](https://www.binance.com)
   - Pergi ke API Management
   - Buat API key baru dengan izin trading
   - Simpan API key dan Secret key

2. **News API**
   - Daftar di [News API](https://newsapi.org)
   - Dapatkan API key dari dashboard

3. **Twitter API**
   - Daftar di [Twitter Developer Portal](https://developer.twitter.com)
   - Buat project baru
   - Dapatkan API keys dan tokens
   - Pastikan memiliki Elevated access

4. **Whale Alert API**
   - Daftar di [Whale Alert](https://whale-alert.io)
   - Dapatkan API key dari dashboard

5. **Coin API**
   - Daftar di [Coin API](https://www.coinapi.io)
   - Pilih paket yang sesuai
   - Dapatkan API key

6. **CoinGecko API**
   - Daftar di [CoinGecko](https://www.coingecko.com/api/pricing)
   - Pilih paket yang sesuai
   - Dapatkan API key

7. **Telegram Bot**
   - Buat bot baru melalui [@BotFather](https://t.me/botfather)
   - Dapatkan bot token
   - Mulai chat dengan bot dan dapatkan Chat ID

### Keamanan API Keys

- JANGAN PERNAH membagikan API keys Anda
- Simpan backup `.env` di tempat yang aman
- Gunakan API keys dengan pembatasan IP jika memungkinkan
- Periksa penggunaan API secara berkala
- Perbarui API keys secara berkala

## Menjalankan Bot

1. Aktifkan virtual environment:
```bash
source venv/bin/activate
  1. Jalankan system check:
python system_check.py
  1. Jalankan bot:
python run_bot.py

Monitoring

  • Log bot tersimpan di logs/trading_bot_ml.log
  • Log runner tersimpan di bot_runner.log
  • Notifikasi status dikirim melalui Telegram

Fitur Keamanan

  • System check otomatis sebelum start
  • Auto-restart pada crash (max 5x dalam 1 jam)
  • Monitoring resource sistem
  • Graceful shutdown
  • Error logging komprehensif

Struktur Direktori

trading_system/
├── ml_trading_bot.py    # Bot trading utama
├── run_bot.py           # Script runner
├── system_check.py      # System checker
├── setup.sh             # Script instalasi
├── requirements.txt     # Dependencies
├── .env                 # Konfigurasi
├── models/             # Model ML
├── logs/              # Log files
├── data/              # Data historis
└── backtest_results/  # Hasil backtest

Troubleshooting

  1. Bot crash berulang:

    • Cek log di logs/trading_bot_ml.log
    • Pastikan API key valid
    • Cek koneksi internet
  2. Error TA-Lib:

    • Reinstall TA-Lib:
      ./setup.sh
  3. Error koneksi database:

    • Pastikan MongoDB dan Redis berjalan
    • Cek kredensial di .env

Kontribusi

Silakan buat pull request untuk perbaikan atau penambahan fitur.

Lisensi

MIT License

Disclaimer

Trading cryptocurrency memiliki risiko tinggi. Bot ini tidak menjamin keuntungan. Gunakan dengan risiko Anda sendiri.

About

hhvjvchhv

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published