Trading Systématique

Burg Extrapolator : votre Expert Advisor pour MetaTrader 5
MetaTrader5
Burg Extrapolator : votre Expert Advisor pour MetaTrader 5

Auteur de l'idée : Vladimir, auteur du code mq5 : barabashkakvn. L'Expert Advisor utilise la méthode de Burg pour la prédiction linéaire. La prédiction linéaire repose sur la recherche de valeurs futures comme fonctions linéaires de valeurs passées. Imaginons que nous avons la plage de prix x[0]..x[n-1], où l'indice supérieur correspond à des prix plus récents. La prédiction du prix futur x[n] est calculée comme suit : x[n] = -Sum(a[i]*x[n-i], i=1..p) où a[i=1..p] sont les coefficients du modèle et p est l'ordre du modèle. La méthode de Burg détermine les coefficients a[] en minimisant l'erreur quadratique moyenne sur les dernières n-p barres d'entraînement. Paramètres d'entrée MaxRisk - risque maximum de toutes les opérations effectuées simultanément. ntmax - nombre maximum d'opérations dans une seule direction. MinProfit - bénéfice prédit minimal à partir duquel des positions seront ouvertes. MaxLoss - perte prédite maximale à partir de laquelle des positions seront fermées. TakeProfit - valeur de Take Profit. StopLoss - valeur de Stop Loss. TrailingStop - fonction de Trailing Stop. PastBars - nombre de barres précédentes utilisées pour prédire les valeurs futures. ModelOrder - ordre du modèle de Burg en fonction du nombre de barres passées (0..1). UseMOM - active le dé-trend des données d'entrée : mom(i)=log[p(i)/p(i-1)]. UseROC - active le dé-trend des données d'entrée : roc=100*(p(i)/p(i-1)-1). Seule l'une des variables UseMOM et UseROC peut être vraie, c'est-à-dire que UseMOM=true ET UseROC=true n'est pas autorisé. Comme la plupart des Expert Advisors optimisés, le Burg Extrapolator ne fonctionne bien que sur les barres d'entraînement. Cet Expert Advisor perdra constamment de l'argent sans une re-optimisation régulière.

2017.11.03
Trading Opposé : L'EA Indispensable pour MetaTrader 5
MetaTrader5
Trading Opposé : L'EA Indispensable pour MetaTrader 5

Dans le monde du trading, il arrive parfois qu'il faille prendre des décisions rapides après avoir clôturé une position. C'est là qu'intervient l'Expert Advisor de trading opposé. En gros, cet outil permet d'ouvrir une position inverse dès qu'une autre est fermée, tout en gardant le même volume. Par exemple, imaginons que vous ayez une position AUDUSD en achat (BUY) de 0,01 lot. Une fois que vous fermez cette position (que ce soit manuellement ou automatiquement), l'EA de trading opposé s'active et ouvre immédiatement une nouvelle position AUDUSD, mais cette fois-ci en vente (SELL). Le code complet de cet EA se trouve dans la fonction OnTradeTransaction : //+------------------------------------------------------------------+ //| Fonction OnTradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans,                         const MqlTradeRequest &request,                         const MqlTradeResult &result)   { //--- récupérer le type de transaction    ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- si la transaction est le résultat d'une entrée dans l'historique    if(type==TRADE_TRANSACTION_DEAL_ADD)      {       long     deal_type         =-1;       long     deal_entry        =-1;       double   deal_volume       =0.0;       string   deal_symbol       ="";       if(HistoryDealSelect(trans.deal))         {          deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);          deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);          deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);          deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);         }       else          return;       if(deal_entry==DEAL_ENTRY_OUT)         {          switch((int)deal_type)            {             case  DEAL_TYPE_BUY:                m_trade.Buy(deal_volume,deal_symbol);                break;             case  DEAL_TYPE_SELL:                m_trade.Sell(deal_volume,deal_symbol);                break;             default:                break;            }         }      }   } Dans ce code, nous attendons la clôture de la position (DEAL_ENTRY_OUT). Une fois que cette opération est enregistrée, nous vérifions le type de la transaction (si nous avons fermé une position d'achat, alors il faudra ouvrir une position de vente, et vice versa).

2017.11.03
up3x1 Investor : Expert en Trading pour MetaTrader 5
MetaTrader5
up3x1 Investor : Expert en Trading pour MetaTrader 5

Auteur de l'idée : PPP, Auteur du code MQL5 : barabashkakvn. Ce Système de Trading se concentre sur le stress causé par la publication d'indicateurs économiques majeurs sur le marché des FOREX. Nous analysons les valeurs des bougies en termes de Haut-Bas et Ouverture-Fermeture. Les paramètres de cet Expert Advisor sont optimisés pour le trading de l'EUR/USD sur un graphique H1. Nous recommandons un dépôt initial d'au moins 1000 €. Vous pouvez tenter d'augmenter vos profits en augmentant le facteur de risque, mais il est préférable de respecter les règles de gestion des fonds et de l'utiliser tel quel. Paramètres d'Entrée Paramètres de trading Stop Loss (en pips) - valeur du Stop Loss. Take Profit (en pips) - valeur du Take Profit. Trailing Stop (en pips) - valeur du trailing. Trailing Step (en pips) - valeur du pas de trailing. Risque en pourcentage d'un deal depuis une marge libre - risque par transaction en pourcentage de la marge libre. Facteur diminué (basé sur l'historique de trading) - ce facteur est utilisé en cas de pertes. Jours d'historique (uniquement si "Facteur diminué" > 0) - le nombre de jours pour analyser l'historique des trades. Paramètres de différence Différence high#1 moins low#1 (en pips) - la valeur minimale de la bougie Haut moins Bas; Différence open#1 moins close#1 (en pips) - la valeur minimale de la bougie Ouverture moins Fermeture. Exemple si test sur EUR/USD, H1 :

2017.11.03
Stratégie Last ZZ50 : Profitez du ZigZag sur MetaTrader 5
MetaTrader5
Stratégie Last ZZ50 : Profitez du ZigZag sur MetaTrader 5

La stratégie Last ZZ50 repose sur l'indicateur ZigZag et l'utilisation d'ordres en attente. C'est une méthode intéressante pour les traders qui souhaitent tirer parti des mouvements de marché. Cette idée a vu le jour sur le forum dans le sujet Une stratégie basée sur l'indicateur ZigZag - "Last ZZ50" (en russe). L'auteur de cette stratégie est Vitaly Muzichenko, tandis que le code MQL5 a été réalisé par Vladimir Karputov. Le principe général de la stratégie "Last ZZ50" est le suivant : Dans l'indicateur ZigZag, nous analysons toujours les deux derniers segments : AB et BC. Le segment AB n'est pas encore fixé et peut évoluer (la position du point A peut changer). Les ordres en attente sont placés au milieu des segments AB et BC de manière à ce que : Le déclenchement de l'ordre en attente sur le segment AB soit une continuation de la tendance indiquée par le segment BC. Le déclenchement de l'ordre en attente sur le segment BC soit une inversion de tendance indiquée par le segment BC. Étant donné que le segment AB n'est pas encore fixé, l'ordre en attente sera constamment ajusté pour maintenir son prix au milieu de AB. Les positions ouvertes sont gérées selon la règle suivante : nous attendons que la position se déplace dans la zone de profit (sans tenir compte des commissions et swaps) d'au moins (Trailing Stop + Trailing Step) points, puis nous activons la fonction de suivi pour cette position. Le processus de recherche des sommets est intégré dans cet Expert Advisor : l'indicateur est ajouté au graphique, et trois lignes verticales supplémentaires sont tracées à travers les points A, B et C :

2017.11.03
OzFx : Un Système de Trading Efficace pour MetaTrader 5
MetaTrader5
OzFx : Un Système de Trading Efficace pour MetaTrader 5

Auteur de l'idée : Yuri, auteur du code mq5 : barabashkakvn. Description des signaux d'ouverture de position : Stoh_main_1 - la valeur de l'oscillateur stochastique à la bougie #1. InpStochasticLevel - niveau d'entrée pour l'oscillateur stochastique. AC_1 - la valeur de l'oscillateur d'accélérateur à la bougie #1. ACPrev_2 - la valeur de l'oscillateur d'accélérateur à la bougie #2. Signal d'achat - lorsque l'oscillateur stochastique à la bougie #1 est supérieur au niveau d'entrée stochastique et l'oscillateur d'accélérateur à la bougie #1 est supérieur à celui de la bougie #2. Dans ce cas, l'oscillateur d'accélérateur à la bougie #1 doit être au-dessus de zéro, et celui de la bougie #2 doit être en dessous de zéro : if(Stoh_main_1>InpStochasticLevel && AC_1>ACPrev_2 && AC_1>0 && ACPrev_2<0 && count_buys==0) Signal de vente - lorsque l'oscillateur stochastique à la bougie #1 est inférieur au niveau d'entrée stochastique et l'oscillateur d'accélérateur à la bougie #1 est inférieur à celui de la bougie #2. Dans ce cas, l'oscillateur d'accélérateur à la bougie #1 doit être en dessous de zéro, et celui de la bougie #2 doit être au-dessus de zéro : if(Stoh_main_1<InpStochasticLevel && AC_1<ACPrev_2 && AC_1<0 && ACPrev_2>0 && count_sells==0) Un exemple de signal de vente : Lorsque le signal est reçu, nous ouvrons cinq positions avec le même lot. La première position a un Stop Loss et un Take Profit égaux à zéro. Toutes les positions suivantes ont un Stop Loss égal et chaque position a un Take Profit croissant avec un pas défini par l'entrée Take Profit (en pips). Résultats des tests sur tous les symboles sur la période D1 :

2017.11.03
Martin : Un Expert-Conseil Innovant pour MetaTrader 5
MetaTrader5
Martin : Un Expert-Conseil Innovant pour MetaTrader 5

Auteur de l'idée — Vladimir Khlystov, Auteur du code mq5 — barabashkakvn. Description de l'auteur de l'idée : Description L'Expert-Conseil a été conçu à la demande d'un membre du forum. Un commentaire de vvx080 : L'idée est de créer une grille d'ordres stop. Par exemple, nous plaçons d'abord deux ordres, un à la vente et un à l'achat ; une fois qu'un des ordres est déclenché, l'autre doit être supprimé. Si le trade est non rentable, après 10 points, nous ouvrons un ordre opposé avec un lot doublé. Si cela reste non rentable, après 20 points, nous ouvrons un autre ordre opposé deux fois plus grand que le précédent. Et ainsi de suite, si le trade reste négatif, après 30 points, nous ouvrons à nouveau un ordre opposé de taille doublée. Dans ces conditions, il y a peu de chances que le dépôt soit complètement perdu. En cas de mouvement positif du trade, nous utilisons un bon trailing pour capter 300 points de profit. Aucun stop loss ni take profit n'est utilisé pour les ordres, les trades se clôturent à un profit commun. Cette stratégie n'a pas peur des tendances ou des phases de stagnation. En tendance, le profit total est suivi. Voici le calcul préliminaire des lots et du dépôt : vente 0.1 -10p = -1, achat 0.2 -20p = -3 vente 0.4 -30p = -12 achat 0.8 -40p = -32 vente 1.6 -50p = -87 achat 3.2 -60p = -213 vente 6.4 -70p = -514 achat 12.8 -80p = -1194 vente 25.6 -90p = -2886 Je pense qu'un dépôt de 3000 devrait suffire, mais la stratégie a du mal à atteindre le 8ème ou 9ème ordre. Je peux me tromper quelque part, mais l'idée est là. L'Expert-Conseil sera plus précis. L'EA utilise une augmentation de lot, mais ne peut pas être considéré comme un pur martingale. De plus, l'EA réussit à sortir des phases de stagnation, alors que beaucoup de martingales n'y parviennent pas. Merci d'ajouter vos commentaires et vos idées pour améliorer la stratégie. Cependant, veuillez ne pas publier d'idées du type "le martingale est mauvais" sans d'abord tester l'EA au moins sur un compte démo et sans comprendre son principe de fonctionnement. Paramètres de l'Expert-Conseil InpStep - pas entre les positions. InpProfitClose - profit minimum, à partir duquel toutes les positions seront clôturées. InpLot - volume de position. Résultats des tests sur EURUSD :

2017.11.03
iCCI iMA : Un Système de Trading Efficace pour MetaTrader 5
MetaTrader5
iCCI iMA : Un Système de Trading Efficace pour MetaTrader 5

Auteur de l'idée : Andrey, auteur du code MQL5 : barabashkakvn. Calcul de la Moyenne Mobile en utilisant les données de l'Indice des Canaux de Marchandise : //--- création du handle de l'indicateur iMA    handle_iMA=iMA(m_symbol.Name(),Period(),15,0,MODE_EMA,handle_iCCI); //--- si le handle n'est pas créé    if(handle_iMA==INVALID_HANDLE)      {       //--- informer de l'échec et afficher le code d'erreur       PrintFormat("Échec de la création du handle de l'indicateur iMA pour le symbole %s/%s, code d'erreur %d",                   m_symbol.Name(),                   EnumToString(Period()),                   GetLastError());       //--- l'indicateur est arrêté prématurément       return(INIT_FAILED);      } Ce processus est similaire à celui de lancer l'indicateur Moyenne Mobile dans la fenêtre de l'Indice des Canaux de Marchandise avec l'option "Données de l'indicateur précédent" sélectionnée dans ses paramètres (appliquer l'indicateur aux données d'un autre indicateur). Principes d'ouverture et de fermeture des positions : Si la Moyenne Mobile calculée sur la base de l'Indice des Canaux de Marchandise croise l'Indice des Canaux de Marchandise vers le bas, une position d'achat est ouverte. Si la Moyenne Mobile calculée sur la base de l'Indice des Canaux de Marchandise croise l'Indice des Canaux de Marchandise vers le haut, une position de vente est ouverte. Si la Moyenne Mobile calculée sur la base de l'Indice des Canaux de Marchandise croise l'Indice des Canaux de Marchandise vers le haut, une position d'achat est fermée. Si la Moyenne Mobile calculée sur la base de l'Indice des Canaux de Marchandise croise l'Indice des Canaux de Marchandise vers le bas, une position de vente est fermée. Test sur EURUSD, H1 :

2017.11.03
Stop Loss et Take Profit : Optimisez vos Transactions sur MetaTrader 5
MetaTrader5
Stop Loss et Take Profit : Optimisez vos Transactions sur MetaTrader 5

Lorsque vous fermez une position par Stop Loss, le volume est doublé, tandis que si elle se ferme par Take Profit, le volume minimum est utilisé. Pour savoir si une transaction a été réalisée suite à l'activation d'un Stop Loss ou d'un Take Profit, on utilise la fonction OnTradeTransaction. Une excellente énumération ENUM_DEAL_REASON a été ajoutée dans la version 1625 : ENUM_DEAL_REASON Description de la raison ... ... DEAL_REASON_SL L'opération a été exécutée suite à l'activation du Stop Loss DEAL_REASON_TP L'opération a été exécutée suite à l'activation du Take Profit ... ... Vous pouvez vérifier cela dans OnTradeTransaction. En d'autres termes, c'est une méthode simple et fiable pour déterminer si une transaction résulte d'un Take Profit ou d'un Stop Loss. Actuellement (version 1626), cet Expert Advisor ne peut être vérifié que dans un test en direct, en le lançant sur un graphique ou en mode débogage sur des données réelles (F5 dans l'éditeur MetaEditor). J'ai utilisé la manœuvre suivante : Dans OnTradeTransaction, nous avons déterminé si le Take Profit ou le Stop Loss a été déclenché :       if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)          if(deal_entry==DEAL_ENTRY_OUT)            {             if(deal_reason==DEAL_REASON_SL)                ExtLot*=2.0;             else if(deal_reason==DEAL_REASON_TP)                ExtLot=m_symbol.LotsMin();            }

2017.11.03
Multi Arbitration 1.1xx : L'Expert Trading pour MetaTrader 5
MetaTrader5
Multi Arbitration 1.1xx : L'Expert Trading pour MetaTrader 5

Nous sommes ravis de vous présenter la nouvelle version de Multi Arbitration 1.000, qui a été améliorée pour offrir encore plus de fonctionnalités. Quoi de neuf par rapport à la version 1.000 ? Ce système de trading est désormais lancé uniquement sur le TIMEFRAME_M1 (voir l'explication ci-dessous dans le paramètre Time frame). L'EA peut maintenant trader deux symboles en même temps. Le deuxième symbole est choisi dans le tableau statique ExtArrSymbols : string         ExtArrSymbols[20]=   {    "EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD",    "AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",    "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY",    "EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"   }; //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'Expert                                   | //+------------------------------------------------------------------+ int OnInit() Le principe d'ouverture de position a changé : Une nouvelle position d'achat ne peut être ouverte que lorsque le prix actuel est inférieur à la position d'achat la plus basse. Une nouvelle position de vente ne peut être ouverte que lorsque le prix actuel est supérieur à la position de vente la plus haute. Le nouveau paramètre Time frame permet d'optimiser l'EA sur n'importe quel graphique. L'Expert Advisor fonctionne lorsque qu'une nouvelle bougie du symbole principal apparaît (c'est-à-dire le symbole du graphique sur lequel l'EA est exécuté) : //+------------------------------------------------------------------+ //| Fonction de tick de l'Expert                                             | //+------------------------------------------------------------------+ void OnTick()   { //--- nous travaillons uniquement au moment de la naissance d'une nouvelle bougie    static datetime prevtime=0;    datetime time_0=iTime(0,m_symbol_one.Name(),InpTimeFrame);    if(time_0==prevtime)       return;    prevtime=time_0; Ici, la variable InpTimeFrame est notre entrée Time frame. Selon l'entrée Time frame, nous pouvons permettre à l'EA de fonctionner sur n'importe quel timeframe ! Résultats des tests sur EURUSD :

2017.11.03
Premier Précédent 23 24 25 26 27 28 29 30 31 32 33 Suivant Dernier