Spécifications
Je souhaite faire développer un Expert Advisor (EA) en MQL5 pur (sans CTrade) basé sur l’indicateur ADX, destiné à être utilisé sur XAU/USD en H1, avec des règles d’entrée, sortie, Stop Loss fixe et Break-even automatique.
Merci de respecter strictement les règles suivantes :
1. Paramètres personnalisables (inputs) :
- LotSize (double) — taille du lot, ex : 0.33
- ADX_Period (int) — période de l’ADX, ex : 14
- MagicNumber (int) — identifiant unique de l’EA
- TF (ENUM_TIMEFRAMES) — timeframe, ex : PERIOD_H1
- StopLossPips (double) — SL en pips, ex : 150
- BreakEvenPips (double) — seuil break-even en pips, ex : 100
2. Indicateurs utilisés :
- ADX (iADX) avec période paramétrable
- Composantes utilisées :
- +DI (MODE_PLUSDI)
- -DI (MODE_MINUSDI)
- ADX principal (MODE_MAIN)
3. Filtre de contexte (obligatoire avant toute entrée) :
- La moyenne des 3 dernières valeurs ADX (bougies [0], [1], [2]) doit être strictement supérieure à 18
- Aucun signal ne doit être considéré si cette condition n’est pas remplie
4. Conditions d’entrée (une seule position à la fois) :
Achat (BUY) :
- Si prev +DI < prev -DI et current +DI > current -DI
- Si +DI > 15 → entrer immédiatement
- Sinon → attendre que +DI > 15 tant que +DI > -DI
- Si -DI repasse au-dessus → signal annulé
Vente (SELL) :
- Si prev -DI < prev +DI et current -DI > current +DI
- Si -DI > 15 → entrer immédiatement
- Sinon → attendre que -DI > 15 tant que -DI > +DI
- Si +DI repasse au-dessus → signal annulé
5. Sortie de position :
Sortie immédiate :
- Croisement inverse :
- En BUY : +DI < -DI
- En SELL : -DI < +DI
Sortie conditionnelle (perte de dominance) :
- Si la ligne dominante a atteint :
- 15, puis redescend ≤ 15
- 20, puis redescend ≤ 20
- 25, puis redescend ≤ 25
- 35, puis redescend ≤ 35
→ dans ces cas, on clôture
Sortie directe :
- Si la ligne dominante atteint ≥ 40 → clôture immédiate
6. Stop Loss fixe :
- Placé au moment de l’ouverture
- Valeur : StopLossPips convertie en points (Point * pips)
7. Break-even automatique :
- Si le gain latent atteint BreakEvenPips :
- Le SL est déplacé au prix d’entrée
- Ce break-even ne doit être appliqué qu’une seule fois par position
8. Exigences techniques :
- L’EA doit s’exécuter dans OnTick(), mais n’agir que sur clôture d’une bougie H1
- Le code doit utiliser MqlTradeRequest / MqlTradeResult, pas la classe CTrade
- Gérer les erreurs avec retcode et GetLastError()
- Vérifier que les valeurs de iADX() ne sont pas EMPTY_VALUE avant traitement
- Code commenté et lisible, livré en .mq5
9. Actif et timeframe :
- Utilisation prévue : XAU/USD en H1
- L’EA doit fonctionner de manière générique sur _Symbol, mais optimisé pour l’or
10. Tests attendus pour validation :
Avant la livraison finale, le développeur devra effectuer les tests suivants sur l’EA :
- Backtest visuel dans le testeur de stratégie de MetaTrader 5 :
- Actif : XAU/USD
- Timeframe : H1
- Période : au moins les 12 derniers mois
- Mode : “Chaque tick basé sur des ticks réels” (si disponible)
- Affichage des entrées/sorties dans le graphique pour vérification visuelle 2. Vérifications fonctionnelles :
- L’EA respecte bien la condition unique sur la moyenne ADX > 18
- Il ne prend qu’une position à la fois
- Les entrées sont conformes aux conditions de croisement et seuils DI
- Les sorties automatiques fonctionnent exactement selon les 3 cas décrits
- Le stop loss est placé correctement dès l’ouverture
- Le break-even est appliqué une seule fois, uniquement au bon seuil
- Aucune erreur ne doit apparaître dans le journal ou l’onglet Experts (ex : retcode, GetLastError)
- Fournir une courte vidéo de test ou capture d’écran (optionnel mais apprécié) montrant l’exécution correcte sur au moins 10 trades
Validation finale :
La commande sera validée uniquement si toutes les conditions techniques et comportementales sont respectées et confirmées par les tests ci-dessus. Budget proposé : 80 usd minimum (peut s’ajuster selon la qualité et le délais)