Scanner multi-TF ICT x Ichimoku automatise — Diamond Analysis, Asian Sweeps, P&L Tracker
Project description
📊 Inelida Market Scanner
Stratégie ICT (Inner Circle Trader) automatisée pour MetaTrader 5
Installation • Quick Start • Configuration • Commandes CLI • Trading Automatique • Monitoring Live • Rapports & Backtest • Dashboard • Dépannage
🛑 PROJET EXPÉRIMENTAL — DÉMONSTRATION UNIQUEMENT
InelidaMarketScanner est un projet de recherche et d'apprentissage du concept ICT (Inner Circle Trader).
⛔ N'utilisez JAMAIS ce logiciel sur un compte de trading réel. Les algorithmes de détection et d'exécution sont fournis à titre éducatif et expérimental. Ils peuvent contenir des bugs, des erreurs de logique, ou produire des décisions de trading financièrement désastreuses.
✅ Utilisez exclusivement des comptes de démonstration (demo) fournis par votre broker MetaTrader 5 pour tester, apprendre et évaluer le comportement du scanner.
⚠️ Le trading comporte un risque de perte en capital. L'auteur ne saura être tenu responsable des pertes résultant de l'utilisation de cet outil.
InelidaMarketScanner scanne en temps réel les marchés via MetaTrader 5, détecte automatiquement les setups ICT (sweeps de liquidité, range asiatique, Fibonacci, Fair Value Gaps) et peut exécuter les ordres de façon sécurisée — le tout depuis votre terminal.
📦 Installation
Prérequis : Windows + MetaTrader 5 installé et connecté à un compte (demo ou réel).
git clone https://github.com/reuniware/InelidaMarketScanner
cd InelidaMarketScanner
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # édite GEMINI_API_KEY (optionnel, pour les analyses AI)
MetaTrader5 est un binding Windows-only. Le projet ne fonctionne que sur Windows.
🚀 Quick Start
# 1. Scan ponctuel de tous les symboles
python main.py snapshot
# 2. Analyse complète de la session asiatique avec plans de trade
python main.py asian
# 3. Détection live des sweeps ICT (alerte visuelle, pas de trade)
python live_monitor.py
# 4. Trading automatique (DRY-RUN par défaut — sans risque)
python live_trader.py --interval 30
# 5. Trading automatique (LIVE — envoi réel des ordres)
python live_trader.py --live --risk-pct 1.0 --rr-min 1.0 --interval 30
⚙️ Configuration
Trois façons de configurer la watchlist (symboles scannés) :
| Méthode | Exemple |
|---|---|
| Variable d'environnement | set INELIDA_WATCHLIST=XAUUSD,EURUSD,BTCUSD |
| Drapeau CLI | python main.py watch --symbols XAUUSD EURUSD BTCUSD |
| Édition directe | Modifier DEFAULT_WATCHLIST dans src/config.py |
Le chemin du terminal MT5 et les credentials peuvent être forcés dans src/config.py :
MT5 = MT5Config(
terminal_path=r"C:\Program Files\FTMO Global Markets MT5 Terminal\terminal64.exe",
login=None, password=None, server=None, # None = utilise le compte déjà connecté
)
💡 Si
login=None, MT5 utilise le compte déjà ouvert dans le terminal — le plus simple.
La clé API Gemini (optionnelle, pour les analyses AI) se configure dans .env :
GEMINI_API_KEY=ta_cle_ici
🎯 À qui s'adresse cet outil ?
| Public | Description |
|---|---|
| Trader ICT/SMC | Scannez automatiquement tous les symboles qui correspondent aux concepts ICT (Asian → London sweep → continuation) |
| Trader prop firm (FTMO, MFF, FundedNext) | Visualisez les opportunités en un coup d'œil et exécutez en micro-lots |
| Développeur Python curieux | Code modulaire, chaque composant (MT5, détecteur ICT, exécuteur) est isolable |
✨ Fonctionnalités
| Fonctionnalité | Description |
|---|---|
| 🔍 Scan multi-actifs | Forex, Métaux, Indices, Crypto — tous les symboles disponibles chez le broker |
| 🌏 Session Asiatique | Calcul du range AH/AL (00-08 UTC) + sweeps post-Asian + extensions Fibonacci ±1.618 à ±4.0 + timestamps de sweep |
| 🔷 BSL/SSL Sweeps | Détection Williams fractals (N=2) avec sweep detection sur M15 à H4 |
| 💎 Diamond Analysis | Ichimoku multi-TF (M5/M15/M30/H1/H4/D1/W1/MN) + mémoire institutionnelle (Tenkan/Kijun flat history) + scoring 109 critères (FVG 6 TFs, OB 6 TFs, MSS/BOS 6 TFs, Volume HVN/LVN 6 TFs, Breaker Blocks 6 TFs, AH/AL sweeps, Reversal Pipeline) + Smart TP (Kijun, FVG, SSB, nuages, Ext Fibonacci) + SL proximity safety net + --discord flag + P&L Tracker intégré |
| 📈 Backtest Asian | Backtest 30 jours BSL/SSL asiatique → sweep London → continuation vers l'autre liquidité |
| 🏛️ Niveaux Daily/Weekly | PDH/PDL / PWH/PWL avec sweeps, breaches et direction cible |
| 🎯 ICT FVG | Stratégie complète en 5 étapes : DOL → Raid → FVG → Retracement → SL/TP |
| 🏆 Filtres ELITE | Badges V1 et V2 basés sur des backtests (97.7-100% WR sur les trades filtrés) |
| 🛡️ Exécution sécurisée | DRY-RUN par défaut, anti-double-ordre, validation lot, spread max |
| 📊 Rapports PDF | Générateur de rapports horodatés avec tous les scans |
| 🎨 Dashboard Streamlit | Interface web pour visualiser et filtrer les données |
| 🗄️ Base SQLite | Enregistrement automatique des sessions, sweeps et niveaux |
| 📊 P&L Tracker | Suivi automatisé des setups Diamond : save → update → rapport win rate / P&L + watchlist niveaux LH/LL |
| ⏱️ M5/M15/M30 Extension | Détection FVG, OB, MSS/BOS, CHoCH, Volume HVN/LVN et Breaker Blocks sur M5/M15/M30 (6 TFs simultanés, 36+ critères de scoring) |
| 🔄 Reversal Pipeline | Détection sweep → retournement → confirmation (FVG post-sweep, retest LH/LL) avec compteur de barres pour entrée tardive |
| 🔗 Sweep Watchlist | Sauvegarde des niveaux LH/LL London avec obstacles Ichimoku inter-TF pour vérification de sweep en fin de session NY |
| 🐛 Intra-Asian Sweep Fix | Détection des sweeps AH/AL pendant la session asiatique (avant 08:00 UTC) — corrigé 16/07 |
| 💎 Asian Sweep Scoring | Les sweeps AH/AL sont des critères de scoring dans le Diamond Scanner (max_score: 109) avec affichage console + Discord |
🧰 Commandes CLI
python main.py <commande> [options]
| Commande | Description |
|---|---|
snapshot |
Capture unique + tableau |
watch |
Boucle temps réel (Ctrl+C) |
asian |
Analyse range asiatique + Fibonacci + trades |
sweeps |
Détection sweeps BSL/SSL |
asian-liquidity |
Scan BSL/SSL session asiatique (Williams fractals) |
diamond |
Diamond Analysis Ichimoku multi-TF + mémoire institutionnelle |
track |
P&L Tracking — sauvegarde, mise à jour, rapport de performance des setups Diamond |
levels |
Niveaux PDH/PDL + PWH/PWL |
setups |
Setups directionnels filtrés |
trade |
Liste ou exécute des ordres MT5 |
account |
Infos compte MT5 |
terminal |
Infos terminal MT5 |
db |
Statistiques et requêtes SQLite |
watchlist |
Affiche la watchlist configurée |
🛡️ Garde-fous automatiques (Leçons du backtest 16-17/07/2026)
Le Diamond Scanner applique 3 filtres de sécurité basés sur l'analyse rétrospective de 15 trades réels :
| Filtre | Règle | Effet |
|---|---|---|
| T/Kx H1 conflit | Si le biais contredit le croisement Tenkan/Kijun H1 | Qualité → WAIT |
| Respiration MFE | Si Kijun plat + prix coincé dans le Kumo | Downgrade -1 niveau |
| HIGH NEWS DAY | Si ≥2 événements macro (Trump, FOMC, CPI...) | BULL downgradé |
📖 Guide complet : GUIDE_UTILISATEUR.md
Exemples
# Boucle temps réel
python main.py watch --symbols XAUUSD,EURUSD
# Scan asiatique (Market Watch, max 50)
python main.py asian --timeframe H1 --symbols XAUUSD,EURUSD
# Scan asiatique exhaustif (tous les symboles du broker, ~167)
python main.py asian --scan-all
# Scan asiatique sans limite de Market Watch (--all ≠ --scan-all)
python main.py asian --all
# Sweeps avec timeframe custom
python main.py sweeps --timeframe M15 --lookback 100
# Scan BSL/SSL asiatique (exhaustif)
python main.py asian-liquidity --scan-all --tf M15
# Diamond Analysis Ichimoku multi-TF
python main.py diamond --symbols XAUUSD EURUSD GBPUSD
# Diamond Analysis + publication Discord automatique
python main.py diamond --discord
# Diamond Analysis + sauvegarde P&L des setups actifs
python main.py track save
# Diamond Analysis + fuseau horaire BROKER
python main.py diamond --timezone BROKER
# Volume uniquement (HVN/LVN)
python main.py diamond --volume-only
# Backtest 30 jours Asian BSL/SSL → London continuation
python backtest_asian_bsl_ssl.py --days 30
# Trade exécution (DRY-RUN par défaut)
python main.py trade execute --dry-run --lots 0.01
# Trade exécution (LIVE avec filtre RR)
python main.py trade execute --rr-min 1.5 --yes
# Base de données
python main.py db stats
python main.py db list --symbol XAUUSD
📖 Documentation détaillée des colonnes et des flags → tradingskills.md
🎮 Trading Automatique
⛔ Réservez ce mode aux comptes de démonstration. Le mode
--liveenvoie de véritables ordres à votre broker. Testez toujours avecpython live_trader.py(DRY-RUN) ou sur un compte demo avant toute utilisation sur compte réel.
Le script live_trader.py fusionne le scan continu et l'exécution automatique :
# DRY-RUN (sécurisé — rien n'est envoyé au broker)
python live_trader.py
# LIVE avec risque 1% du capital
python live_trader.py --live --risk-pct 1.0 --rr-min 1.0 --interval 30
# Lots fixes
python live_trader.py --live --lots 0.02 --symbols XAUUSD,EURUSD
Cycle d'exécution : (toutes les N secondes)
- Charge le range asiatique H1 du jour
- Détecte les sweeps AH/AL post-Asian
- Calcule les extensions Fibonacci
- Génère le plan de trade (Entry / SL / TP1-3 / RR)
- Valide le trade (spread < 0.10%, RR ≥ seuil)
- Calcule les lots dynamiques (1% du capital ou lots fixes)
- Vérifie anti-double-ordre
- Envoie l'ordre MT5
📖 Algorithme détaillé → new_analysis_02/algo.md
📡 Monitoring Live
Détection de sweeps (sans trade)
python live_monitor.py
Surveille en continu les sweeps ICT (Asian + Fractal + Daily/Weekly). Pas d'ordre envoyé.
ICT FVG Monitor
# Mono-symbole
python live_ict_monitor.py XAUUSD
# Multi-actifs (tous les symboles du broker)
python live_ict_monitor_global.py
# Avec filtres ICT (macro 10/50 + killzones)
python live_ict_monitor_global.py --require-macro --require-killzone
📖 Guide complet → new_analysis_02/guide_ict_fvg_live.md
📊 Rapports & Backtest
Le projet génère des rapports PDF horodatés avec tous les scans (sweeps, asian, levels, setups) et peut backtester les trades rétroactivement contre les données MT5 réelles.
# Générer un rapport LIVE complet
python generate_live_report.py
# Backtest des trades d'un rapport existant (48-72h plus tard)
python backtest_report_trades.py --pdf reports/inelida_report_YYYY-MM-DD.pdf
📊 Dashboard Streamlit
streamlit run app.py
Pages disponibles : Dashboard, Sessions Asiatiques, Niveaux Daily/Weekly, Sweep Events, Base de Données, Scan en Direct.
📁 Structure du Projet
InelidaMarketScanner/
├── main.py # CLI principale (argparse)
├── app.py # Dashboard Streamlit
├── live_trader.py # Trading automatique continu
├── live_monitor.py # Détecteur live de sweeps
├── live_ict_monitor.py # Moniteur ICT FVG (1 symbole)
├── live_ict_monitor_global.py# Moniteur ICT FVG (multi-actifs)
├── analyze_asian_bsl_ssl.py # Scanner BSL/SSL session asiatique
├── backtest_asian_bsl_ssl.py # Backtest Asian BSL/SSL → London continuation
│
├── src/
│ ├── config.py # Configuration centralisée
│ ├── mt5_connector.py # Connexion MT5 (singleton)
│ ├── market_scanner.py # Scan tick + deltas
│ ├── sweep_detector.py # Détection sweeps + asian + Fibonacci + FVG
│ ├── diamond_scanner.py # Scanner Ichimoku multi-TF + mémoire institutionnelle
│ ├── trade_executor.py # Exécution d'ordres MT5
│ ├── display.py # Rendu console ANSI
│ ├── database.py # Base SQLite
│ ├── ai_analyst.py # Analyse via Gemini AI
│ └── ai_client.py # Client Gemini API
│
├── new_analysis_02/
│ ├── algo.md # Documentation détaillée de l'algorithme
│ └── guide_ict_fvg_live.md # Guide utilisateur ICT FVG
│
├── reports/ # Rapports PDF générés (gitignoré partiellement)
├── logs/ # Logs d'exécution (gitignoré)
├── .env.example # Template des variables d'environnement
├── requirements.txt
└── README.md
🔒 Sécurité et Garde-fous
| Mécanisme | Détail |
|---|---|
| DRY-RUN par défaut | Aucun ordre envoyé sans le flag --live |
| Anti-double-ordre | Skip si une position existe déjà sur ce symbole+direction (magic 888001) |
| Validation volume | Lot aligné sur volume_step, clampé min/max |
| Spread max | Refus si spread > 0.10% du prix |
| RR minimum | Filtre optionnel via --rr-min |
| Risk % | Calcul dynamique : `lots = risk_amount / |
| Filling mode | Auto-détection FOK/IOC du symbole |
| Mapping retcodes | Tous les codes d'erreur MT5 traduits en messages lisibles |
| Anti-frozen | Détection des comptes FTMO en daily drawdown |
| Secrets | .env (API keys) dans .gitignore |
🐞 Dépannage
| Erreur | Cause / Solution |
|---|---|
No module named 'MetaTrader5' |
Windows uniquement. pip install MetaTrader5 |
initialize() returned None |
Terminal MT5 pas lancé ou pas connecté |
Terminal: Unauthorized |
Login/password erronés ou terminal pas connecté |
INVALID_VOLUME |
Lot < volume_min ou pas aligné sur lot_step |
FROZEN (retcode 10027) |
Daily drawdown FTMO atteint ou marché fermé |
NO_MONEY |
Fonds insuffisants sur le compte |
MARKET_CLOSED |
Week-end, jours fériés, ou pause broker |
📜 Licence
MIT — voir le fichier LICENSE.
👨💻 À propos du développeur
Ce projet est développé par un ingénieur en développement et chef de projet avec plus de 25 ans d'expérience dans le pilotage de projets informatiques et le développement logiciel multisectoriel : banque et finance, télécommunications, industrie, automobile, distribution, BTP.
Expertise
| Domaine | Compétences |
|---|---|
| Gestion de projet | Méthodologies Agile (Scrum) et cycle en V, pilotage de bout en bout, spécifications, coordination d'équipes |
| Développement | Full-stack, API / Web services, applications mobiles natives, systèmes embarqués |
| Infrastructure | Cloud (Azure, AWS), architectures SOA/middleware, CI/CD, bases de données, IA / Machine Learning |
Philosophie
La finance de marché et le trading algorithmique sont le terrain de jeu idéal pour appliquer une double compétence : rigueur d'ingénierie système et vision stratégique de chef de projet. InelidaMarketScanner est né de cette conviction — un outil qui parle le langage des traders tout en restant modulaire, testable et documenté comme un logiciel professionnel.
🙏 Crédits
- Concepts ICT / SMC : Inner Circle Trader (Michael Huddleston)
- Framework backtest : Analyse quantitative des marchés financiers
- Binding MetaTrader5 : MetaQuotes Ltd.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inelida_marketscan-1.0.2-py3-none-any.whl.
File metadata
- Download URL: inelida_marketscan-1.0.2-py3-none-any.whl
- Upload date:
- Size: 98.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0da2683b45e05d7a40bbbf0d3efa48dc1b320c955d3d734993f2e76969df10ba
|
|
| MD5 |
a735452e63aaa3a9bb8e09db1c635031
|
|
| BLAKE2b-256 |
d4fd4078a158764c1b1f8afd6caeb0e0c6fd61f537b307fb1b3f6d0ef38065c6
|