Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Vues:
233
Note:
(9)
Publié:
Mise à jour:
\MQL5\Files\
trend_detector.onnx (6444.66 KB)
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Backtest EURUSD 01/03/2025 - 20/01/2026 Timeframe M5(ONNX AI training specifically for M5-M15)

Backtest GBPUSD 01/03/2025 - 20/01/2026 Timeframe M5 (ONNX AI training specifically for M5-M15)


1. Vue d'ensemble

SidewaysMartingale est un Expert Advisor conçu pour trader les marchés latéraux (en fourchette) en utilisant une stratégie de récupération de martingale, améliorée par un détecteur de tendance basé sur l'IA et implémenté via un modèle ONNX.

L'EA combine :

  • Classification des tendances par l'IA (latérale / haussière / baissière)

  • Indicateur d'enveloppes pour les entrées basées sur le range

  • Mise à l'échelle contrôlée des positions de la martingale

  • Fermeture du panier basée sur le profit

  • Arrêt d'urgence basé sur la marge

L'idée de base est la suivante :

Négociez uniquement lorsque le marché est statistiquement classé comme latéral et évitez d'ajouter des positions martingales lorsqu'une tendance forte est détectée.


2. Détecteur de tendances AI (intégration ONNX)

Sortie du modèle ONNX

Le modèle ONNX renvoie

  • Une étiquette prédite (non utilisée directement)

  • Un vecteur de probabilité avec trois probabilités:

Variable Signification
prob_side Probabilité que le marché soit latéral ou qu'il se situe dans une fourchette.
prob_bull Probabilité que le marché soit haussier (tendance à la hausse)
prob_bear Probabilité que le marché soit baissier (tendance baissière)

Ces probabilités sont extraites comme suit :

float prob_side = prob_data[0].values[0]; float prob_bull = prob_data[0].values[1]; float prob_bear = prob_data[0].values[2];


3. Ingénierie des caractéristiques (entrées AI)

L'EA introduit 9 caractéristiques dans le modèle ONNX :

Index des caractéristiques Description
f[0] Pente de l'EMA200 (direction et force de la tendance)
f[1] Distance du prix par rapport à la EMA200
f[2] Valeur ATR (volatilité)
f[3] Plage de bougies normalisée par l'ATR
f[4] Pression de rupture par rapport au sommet précédent
f[5] Dominance du corps de la bougie
f[6] Jour de la semaine
f[7] Heure du jour
f[8] Direction de la bougie précédente


Ces caractéristiques permettent au modèle d'IA de détecter

  • la volatilité du marché

  • La force de la tendance

  • Les modèles de comportement basés sur le temps

  • Le comportement de la structure des prix


4. Logique de détection des marchés latéraux

Un marché est considéré comme latéral lorsque :

bool is_sideway = (prob_side >= InpAISidewayThreshold);

Exemple :

  • Si InpAISidewayThreshold = 0.70

  • Il faut alors un niveau de confiance d'au moins 70 % pour classer le marché comme latéral.

Aucune nouvelle transaction n'est ouverte si cette condition n'est pas remplie.


5. Logique d'entrée (Scalping dans un range)

L'EA utilise des enveloppes pour détecter les extrêmes du range.

Entrée d'achat

if(price_close <= lower[0] && is_sideway)

  • Le prix touche ou casse l'enveloppe inférieure

  • L'IA confirme un marché latéral

  • Ouvre une position d'achat

Entrée de vente

else if(price_close >= upper[0] && is_sideway)

  • Le prix touche ou casse l'enveloppe supérieure

  • L'IA confirme un marché latéral

  • Ouvre une position de VENTE

💡 Cela permet de s'assurer que les transactions ne sont effectuées qu'aux extrêmes de la fourchette en l'absence de tendance.


6. Logique de récupération Martingale

Lorsque des positions existent déjà, l'EA applique une martingale basée sur la distance:

  • Une nouvelle position n'est ouverte que si le prix s'éloigne d'une distance en pip définie.

  • La taille du lot augmente en utilisant un multiplicateur ( LotMultiplier )

  • Le nombre maximum de transactions est limité ( MaxTradesInSeries )

Vérification de la distance

if(dist >= reqDist)


7. Filtre de sécurité AI pour Martingale

Il s'agit d'un mécanisme critique de contrôle des risques.

Avant d'ajouter une nouvelle position martingale, l'EA vérifie :

Si la série actuelle est ACHETER

if(s_seriesType == POSITION_TYPE_BUY && prob_bear >= InpAISafetyThreshold) return;

Si la série actuelle est VENTE

if(s_seriesType == POSITION_TYPE_SELL && prob_bull >= InpAISafetyThreshold) return;

Signification :

  • Si l'IA détecte une forte tendance opposée

  • Et que la confiance dépasse le seuil de sécurité InpAISafetyThreshold

  • L'expansion Martingale est stoppée

Cela permet d'éviter :

  • Martingale pendant les ruptures fortes

  • Les drawdowns profonds causés par la poursuite de la tendance


8. Objectif de profit et clôture du panier

L'EA surveille le profit flottant total de toutes les positions :

if(totalProfitUSD >= TakeProfitTargetUSD)

Une fois atteint :

  • Toutes les positions sont fermées

  • La série Martingale est réinitialisée

  • L'EA attend une nouvelle configuration latérale

Cette approche traite toutes les positions comme un seul panier.


9. Gestion du risque

Arrêt d'urgence basé sur la marge

if(((bal - eq)/bal)*100.0 >= StopLossByMarginPercent)

Si la baisse de l'action dépasse un pourcentage défini, toutes les positions sont immédiatement fermées :

  • Toutes les positions sont immédiatement fermées.

  • Prévient les scénarios d'appel de marge


10. Résumé de la stratégie

Composante Objectif
Détecteur de tendances AI Classifie le régime du marché
prob_side Permet de négocier uniquement dans des fourchettes
prob_bull / prob_bear Bloque la martingale pendant les tendances fortes
Enveloppes Définit les extrêmes de la fourchette
Martingale Récupération dans les marchés latéraux
Panier TP Sortie rapide après un retour à la moyenne
Marge SL Protection au niveau du compte

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/68537

nModifier les commandes nModifier les commandes

Fonction de modification des positions ouvertes et des ordres en cours

nPositions de profit et de perte nPositions de profit et de perte

Calculateur de pertes et profits des positions (ordres ouverts)

Spread Monitor and Filter Spread Monitor and Filter

This library provides real-time spread monitoring and statistical diagnostics for MetaTrader 5 symbols. It tracks spread evolution using a lightweight circular buffer and computes running metrics such as average, minimum, maximum, and standard deviation. The library classifies current spread conditions into informational states (low, normal, high, extreme) and offers helper methods to query spread behavior and stability. Optional notifications can be enabled to signal unfavorable market conditions. The library is purely analytical: it does not place trades, manage orders, or modify account state, and is intended to be used as a supporting tool inside Expert Advisors or indicators.

Session Time Filter Library Session Time Filter Library

Filter trades by trading sessions (London, NY, Tokyo, Sydney)