GifariKemal
xaubot-ai
Python

AI-powered XAUUSD (Gold) trading bot with XGBoost ML, Smart Money Concepts (SMC), and HMM regime detection for MetaTrader 5

Last updated Jul 9, 2026
56
Stars
27
Forks
4
Issues
+3
Stars/day
Attention Score
77
Language breakdown
Python 78.5%
TypeScript 12.9%
MQL5 6.2%
MQL4 1.0%
JavaScript 0.4%
CSS 0.4%
โ–ธ Files click to expand
README

XAUBot AI

Bot trading XAUUSD (Emas) berbasis AI dengan XGBoost ML, Smart Money Concepts (SMC), dan deteksi regime menggunakan Hidden Markov Model untuk MetaTrader 5.

Python 3.11+ License: MIT MetaTrader 5


Fitur

| Fitur | Deskripsi | |-------|-----------| | Model XGBoost ML | Model 37-fitur yang memprediksi BUY/SELL/HOLD dengan confidence terkalibrasi | | Smart Money Concepts | Order Block, Fair Value Gap, Break of Structure, Change of Character | | Deteksi Regime HMM | Hidden Markov Model 3-state yang mengklasifikasikan pasar trending/ranging/volatile | | Manajemen Risiko Dinamis | Stop Loss berbasis ATR, position sizing dengan Kelly criterion, batas kerugian harian | | Kesadaran Sesi | Dioptimalkan untuk sesi Sydney, London, dan New York | | Pelatihan Ulang Otomatis | Model secara otomatis dilatih ulang saat kondisi pasar berubah | | Notifikasi Telegram | Pemberitahuan trade secara real-time dan ringkasan harian | | Dashboard Web | Antarmuka pemantauan Next.js untuk pelacakan live |

Arsitektur

graph TD
    MT5["MetaTrader 5<br/>(XAUUSD M15)"] -->|OHLCV| DP["Data Pipeline<br/>(Polars Engine)"]
    DP --> SMC["SMC Analyzer<br/>(OB / FVG / BOS)"]
    DP --> FE["Feature Engineering<br/>(37 fitur)"]
    DP --> HMM["HMM Regime<br/>Detector"]
    SMC --> XGB["XGBoost Model<br/>(Signal + Confidence)"]
    FE --> XGB
    HMM --> XGB
    XGB --> EF["14 Entry<br/>Filters"]
    XGB --> RE["Risk Engine<br/>(ATR + Kelly)"]
    XGB --> PM["Position<br/>Manager"]
    EF --> TE["Trade Execution<br/>(MT5 + Logging)"]
    RE --> TE
    PM --> TE

Struktur Proyek

xaubot-ai/
โ”œโ”€โ”€ main_live.py              # Orkestrator trading async utama
โ”œโ”€โ”€ train_models.py           # Skrip pelatihan model
โ”œโ”€โ”€ src/                      # Modul inti
โ”‚   โ”œโ”€โ”€ config.py             #   Konfigurasi trading & mode kapital
โ”‚   โ”œโ”€โ”€ mt5_connector.py      #   Layer koneksi MetaTrader 5
โ”‚   โ”œโ”€โ”€ smc_polars.py         #   Penganalisis Smart Money Concepts
โ”‚   โ”œโ”€โ”€ ml_model.py           #   Model trading XGBoost
โ”‚   โ”œโ”€โ”€ feature_eng.py        #   Feature engineering (37 fitur)
โ”‚   โ”œโ”€โ”€ regime_detector.py    #   Deteksi regime pasar HMM
โ”‚   โ”œโ”€โ”€ risk_engine.py        #   Kalkulasi & validasi risiko
โ”‚   โ”œโ”€โ”€ smartriskmanager.py #   Manajemen risiko dinamis
โ”‚   โ”œโ”€โ”€ session_filter.py     #   Filter sesi (Sydney/London/NY)
โ”‚   โ”œโ”€โ”€ position_manager.py   #   Manajemen posisi terbuka
โ”‚   โ”œโ”€โ”€ dynamic_confidence.py #   Threshold confidence adaptif
โ”‚   โ”œโ”€โ”€ auto_trainer.py       #   Pipeline pelatihan ulang otomatis
โ”‚   โ”œโ”€โ”€ news_agent.py         #   Filter berita ekonomi
โ”‚   โ”œโ”€โ”€ telegram_notifier.py  #   Notifikasi Telegram
โ”‚   โ”œโ”€โ”€ trade_logger.py       #   Pencatatan trade ke DB
โ”‚   โ””โ”€โ”€ utils.py              #   Fungsi utilitas
โ”œโ”€โ”€ backtests/                # Backtesting
โ”‚   โ”œโ”€โ”€ backtestlivesync.py #   Backtest utama (sinkron dengan live)
โ”‚   โ””โ”€โ”€ archive/              #   Versi historis
โ”œโ”€โ”€ scripts/                  # Skrip utilitas
โ”‚   โ”œโ”€โ”€ check_market.py       #   Analisis cepat pasar SMC
โ”‚   โ”œโ”€โ”€ check_positions.py    #   Lihat posisi terbuka
โ”‚   โ”œโ”€โ”€ check_status.py       #   Cek status akun
โ”‚   โ”œโ”€โ”€ close_positions.py    #   Tutup semua posisi darurat
โ”‚   โ”œโ”€โ”€ modify_tp.py          #   Modifikasi level take-profit
โ”‚   โ””โ”€โ”€ gettradehistory.py  #   Tarik riwayat trade
โ”œโ”€โ”€ tests/                    # Pengujian
โ”œโ”€โ”€ models/                   # Model terlatih (.pkl)
โ”œโ”€โ”€ data/                     # Data pasar & catatan trade
โ”œโ”€โ”€ docs/                     # Dokumentasi
โ”‚   โ”œโ”€โ”€ arsitektur-ai/        #   Dokumen arsitektur (23 komponen)
โ”‚   โ””โ”€โ”€ research/             #   Riset & analisis
โ”œโ”€โ”€ web-dashboard/            # Dashboard pemantauan Next.js
โ”œโ”€โ”€ docker/                   # Konfigurasi & skrip Docker
โ”‚   โ”œโ”€โ”€ scripts/              #   Skrip pembantu (.bat/.sh)
โ”‚   โ””โ”€โ”€ docs/                 #   Dokumentasi Docker
โ””โ”€โ”€ archive/                  # File usang (gitignored)

Hasil Backtest (Jan 2025 - Feb 2026)

| Metrik | Nilai | |--------|-------| | Total Trade | 654 | | Win Rate | 63.9% | | Net P/L | $4,189.52 | | Profit Factor | 2.64 | | Max Drawdown | 2.2% | | Sharpe Ratio | 4.83 |

Instalasi

Deployment Docker (Direkomendasikan)

Mulai Cepat:

# 1. Clone repositori
git clone https://github.com/GifariKemal/xaubot-ai.git
cd xaubot-ai

2. Konfigurasi environment

cp docker/.env.docker.example .env

Edit .env dengan kredensial MT5 Anda

3. Jalankan semua layanan (Windows)

docker\scripts\docker-start.bat

3. Jalankan semua layanan (Linux/Mac)

./docker/scripts/docker-start.sh

Layanan yang tersedia:

  • Dashboard: http://localhost:3000
  • API: http://localhost:8000
  • Dokumentasi API: http://localhost:8000/docs
  • Database: localhost:5432
Dokumentasi Docker lengkap: Lihat docker/docs/DOCKER.md


Instalasi Manual

Prasyarat:

  • Python 3.11+
  • Terminal MetaTrader 5 (Windows)
  • PostgreSQL (opsional, untuk pencatatan trade)
Persiapan:

# Clone repositori
git clone https://github.com/GifariKemal/xaubot-ai.git
cd xaubot-ai

Instal dependensi

pip install -r requirements.txt

Konfigurasi environment

cp .env.example .env

Edit .env dengan kredensial MT5 dan token Telegram Anda

Konfigurasi

Pengaturan utama di .env:

# MetaTrader 5
MT5LOGIN=yourlogin
MT5PASSWORD=yourpassword
MT5SERVER=yourserver
MT5_PATH=C:/Program Files/MetaTrader 5/terminal64.exe

Notifikasi Telegram

TELEGRAMBOTTOKEN=yourbottoken TELEGRAMCHATID=yourchatid

Trading

CAPITAL=5000 SYMBOL=XAUUSD

Menjalankan

# Latih model terlebih dahulu
python train_models.py

Jalankan bot

python main_live.py

Jalankan backtest

python backtests/backtestlivesync.py --tune

Manajemen Risiko

| Proteksi | Detail | |----------|--------| | Stop Loss Berbasis ATR | Jarak minimum 1.5x ATR | | Stop Loss Level Broker | Stop Loss darurat diatur di level broker | | Position Sizing | Kelly criterion dengan penyesuaian mode kapital | | Batas Kerugian Harian | 5% dari kapital per hari | | Batas Kerugian Total | 10% dari kapital | | Batas Posisi | Maksimal 2 posisi bersamaan | | Exit Berbasis Waktu | Maksimal 6 jam per trade | | Filter Sesi | Hanya membuka trade saat sesi aktif | | Filter Spread | Menolak trade saat spread tinggi | | Cooldown | Waktu minimum antar trade |

Teknologi

  • Polars โ€” Mesin pemrosesan data performa tinggi (bukan Pandas)
  • XGBoost โ€” Model machine learning berbasis gradient boosting
  • hmmlearn โ€” Hidden Markov Model untuk deteksi regime pasar
  • MetaTrader5 โ€” API koneksi broker
  • asyncio โ€” Event loop asinkron untuk eksekusi latensi rendah
  • loguru โ€” Logging terstruktur
  • PostgreSQL โ€” Database pencatatan trade
  • Next.js โ€” Dashboard web

Peringatan

Perangkat lunak ini dibuat hanya untuk tujuan edukasi dan riset. Trading valuta asing (Forex) dan komoditas dengan margin memiliki tingkat risiko yang tinggi dan mungkin tidak cocok untuk semua investor. Kinerja masa lalu bukan indikasi hasil di masa depan. Anda dapat kehilangan sebagian atau seluruh investasi Anda. Gunakan dengan risiko Anda sendiri.

Lisensi

MIT License - Hak Cipta (c) 2025-2026 Gifari Kemal

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท GifariKemal/xaubot-ai ยท Updated daily from GitHub