Idée par : Vladimir Gribachev.
Code MQL5 par : Vladimir Karputov.
Ce Système de Trading est un EA qui n'utilise aucun indicateur personnalisé et qui ouvre des positions de manière pseudorandom. L'EA peut afficher les statistiques en deux langues :

Le Trailing modifie le Stop Loss des positions ouvertes. En cas de perte, le volume des lots augmente selon le principe de Martingale. Pour surveiller les pertes : dans OnTradeTransaction, nous attrapons la transaction DEAL_REASON_SL - le signe que le Stop Loss a été déclenché :
//+------------------------------------------------------------------+ //| Fonction TradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- obtenir le type de transaction en tant que valeur d'énumération ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- si la transaction résulte de l'ajout de la transaction dans l'historique if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_ticket =0; long deal_order =0; long deal_time =0; long deal_time_msc =0; long deal_type =-1; long deal_entry =-1; long deal_magic =0; long deal_reason =-1; long deal_position_id =0; double deal_volume =0.0; double deal_price =0.0; double deal_commission =0.0; double deal_swap =0.0; double deal_profit =0.0; string deal_symbol =""; string deal_comment =""; string deal_external_id =""; if(HistoryDealSelect(trans.deal)) { deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET); deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER); deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC); deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE); deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON); deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID); deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME); deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE); deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION); deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP); deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT); deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT); deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { PrevBars=0; if(deal_reason==DEAL_REASON_SL && deal_commission+deal_swap+deal_profit<0.0) last_lots_sl=deal_volume; else last_lots_sl=0.0; } } }
Paramètres d'entrée
- Stop Loss - valeur du Stop Loss ;
- Take Profit - valeur du Take Profit ;
- Trailing Stop - mode de trailing ;
- Trailing Step - étape de trailing ;
- Lots - taille de lot définie manuellement (si Lots est supérieur à zéro, alors Risk doit être égal à zéro) ;
- Risk - taille de lot calculée automatiquement (si Risk est supérieur à zéro, alors Lots doit être égal à zéro) ;
- Martingale - ratio d'augmentation des lots si la position précédente a été fermée par un Stop Loss et que le profit obtenu était négatif ;
- Max lots - taille de position maximale ; si cette taille est dépassée, l'EA interrompt son fonctionnement anormalement ;
- magic number - identifiant unique pour l'EA.
Ensuite, le test a été interrompu (l'EA a été déchargé du graphique de manière forcée), car le lot de référence a dépassé le paramètre Max lots :

Articles connexes
- Utiliser MQL5 Wizard pour Créer un Expert Advisor Basé sur les Modèles de Chandeliers Englobants et MFI
- Développez un Expert Advisor avec MQL5 : Signaux de Trading 3 Corbeaux Noirs / 3 Soldats Blancs + RSI
- Découvrez l'Expert Advisor exp_iCustom_v5 pour MetaTrader 4
- Découvrez le Système de Trading Exp_XPeriodCandle_X2 pour MetaTrader 5
- Découvrez CoensioTrader1V06 : Votre nouvel allié sur MetaTrader 5