Mohamed Abdelmaaboud / Profil
- Informations
7+ années
expérience
|
2
produits
|
0
versions de démo
|
3
offres d’emploi
|
0
signaux
|
0
les abonnés
|
✅ Certified Financial Technician® (CFTe®) holder from IFTA (International Federation of Technical Analysts).
✅ Certified ESTA Technical Analyst (CETA ) holder from ESTA (The Egyptian Society of Technical Analysts).
✅ The founder of Trades Coding for trading software products and services.
👉 Check out the website through the link: https://tradescoding.com/
✅ The founder of Trades Analysis for trading training and consulting services.
👉 Check out the website through the link: https://tradesanalysis.com/
✅ I am passionate about what I do and interested in adding more value using my experience in the field.
✅ I am the author of many articles here on the MQL5 website about algorithmic trading and how to create a trading system based on the most popular technical indicators.
You can find them through the following link:
👉 https://www.mql5.com/en/users/m.aboud/publications
✅You can join my telegram channel through the following link:
👉 https://t.me/tradescoding
✅ I author trading tools for MetaTrader 4 and MetaTrader 5.
You can find them through the following link:
👉 https://www.mql5.com/en/users/m.aboud/seller
✅ I can code smoothly with programming languages MQL4, and MQL5 to create trading systems for MetaTrader 4 and MetaTrader 5.
If you want a personal job, you can request that through the following link:
👉 https://www.mql5.com/en/job/new?prefered=m.aboud
![Apprenez à concevoir un système de trading basé sur l’indicateur Williams PR](https://c.mql5.com/2/47/why-and-how__4.png)
Un nouvel article dans notre série sur l'apprentissage de la conception d'un système de trading par les indicateurs techniques les plus populaires de MQL5 à utiliser dans le MetaTrader 5. Dans cet article, nous allons apprendre à concevoir un système de trading basé sur l'indicateur %R de Williams.
![Apprendre à concevoir un système de trading basé sur l’Ichimoku](https://c.mql5.com/2/47/why-and-how__3.png)
Voici un nouvel article dans notre série sur la façon de concevoir un système de trading avec les indicateurs les plus populaires. Nous allons parler de l'indicateur Ichimoku en détail et de comment concevoir un système de trading basé sur cet indicateur.
![Apprenez à concevoir un système de trading basé sur les Volumes](https://c.mql5.com/2/47/why-and-how__2.png)
Voici un nouvel article de notre série sur l'apprentissage de la conception de systèmes de trading basés sur les indicateurs techniques les plus populaires. Cette fois-ci, notre article sera consacré à l'indicateur Volumes. Le concept de volume est l'un des facteurs les plus importants dans le trading sur les marchés financiers. Nous devons donc y prêter attention. Dans cet article, nous allons apprendre à concevoir un système de trading simple grâce à l'indicateur des Volumes.
![Apprenez à concevoir un système de trading basé sur le MFI](https://c.mql5.com/2/47/why-and-how__1.png)
Le nouvel article de notre série sur la conception d'un système de trading basé sur les indicateurs techniques les plus populaires est basé sur un nouvel indicateur technique : le Money Flow Index (MFI). Nous l'apprendrons en détail et développerons un système de trading simple en MQL5 pour l'exécuter dans MetaTrader 5.
![Apprenez à concevoir un système de trading utilisant l’Accumulation/Distribution (AD)](https://c.mql5.com/2/47/why-and-how.png)
Bienvenue dans ce nouvel article de notre série sur l'apprentissage de la conception de systèmes de trading basés sur les indicateurs techniques les plus populaires. Dans cet article, nous découvrirons un nouvel indicateur technique appelé indicateur d'Accumulation/Distribution et découvrirons comment concevoir un système de trading en MQL5 basé sur des stratégies de trading AD Simples.
![DIMITAR VASILEV DIMITAR VASILEV](https://c.mql5.com/avatar/avatar_na2_micro.png)
//| TRENDLINE_RVI_DeMarker_ADX_ACMA_AO SYSTEM.mq5 |
//| Copyright 2022, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit() {
//--- create timer EventSetTimer(60); //--- return(INIT_SUCCEEDED); }
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//--- destroy timer EventKillTimer(); }
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick() {
////////////////////////Trend Lines//////////////////////////////////// long candlesUp = ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR, 0); double pLow[]; ArraySetAsSeries(pLow, true); CopyLow(_Symbol, _Period, 0, candlesUp, pLow); long candleLow = ArrayMinimum(pLow, 0, candlesUp); MqlRates pArrayUp[]; ArraySetAsSeries(pArrayUp, true); long DataUp = CopyRates(_Symbol, _Period, 0, candlesUp, pArrayUp); ObjectDelete(_Symbol,"UpwardTrendline"); ObjectCreate(_Symbol, "UpwardTrendline", OBJ_TREND, 0, pArrayUp[candleLow].time, pArrayUp[candleLow].low, pArrayUp[0].time, pArrayUp[0].low); ObjectSetInteger(0, "UpwardTrendline", OBJPROP_COLOR, Blue); ObjectSetInteger(0, "UpwardTrendline", OBJPROP_STYLE, STYLE_SOLID); ObjectSetInteger(0, "UpwardTrendline", OBJPROP_WIDTH, 1); ObjectSetInteger(0, "UpwardTrendline", OBJPROP_RAY_RIGHT, true); long candlesDown = ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR, 0); double pHighDown[]; ArraySetAsSeries(pHighDown, true); CopyHigh(_Symbol, _Period, 0, candlesDown, pHighDown); long candleHighDown = ArrayMaximum(pHighDown, 0, candlesDown); MqlRates pArrayDown[]; ArraySetAsSeries(pArrayDown, true); int DataDown = CopyRates(_Symbol, _Period, 0, candlesDown, pArrayDown); ObjectDelete(_Symbol, "DownwardTrendline"); ObjectCreate(_Symbol, "DownwardTrendline", OBJ_TREND, 0, pArrayDown[candleHighDown].time, pArrayDown[candleHighDown].high, pArrayDown[0].time, pArrayDown[0].high); ObjectSetInteger(0, "DownwardTrendline", OBJPROP_COLOR, Blue); ObjectSetInteger(0, "DownwardTrendline", OBJPROP_STYLE, STYLE_SOLID); ObjectSetInteger(0, "DownwardTrendline", OBJPROP_WIDTH, 1); ObjectSetInteger(0, "DownwardTrendline", OBJPROP_RAY_RIGHT, true); long candlesSupport = ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR, 0); double pLowSupport[]; ArraySetAsSeries(pLowSupport, true); CopyLow(_Symbol, _Period, 0, candlesSupport, pLowSupport); long candleLowSupport = ArrayMinimum(pLowSupport, 0, candlesSupport); MqlRates pArraySupport[]; ArraySetAsSeries(pArraySupport, true); int DataSupport = CopyRates(_Symbol, _Period, 0, candlesSupport, pArraySupport); ObjectDelete(_Symbol, "supportLine"); ObjectCreate(_Symbol, "supportLine", OBJ_HLINE, 0, pArraySupport[candleLowSupport].time, pArraySupport[candleLowSupport].low, pArraySupport[0].time, pArraySupport[0].low); ObjectSetInteger(0, "supportLine", OBJPROP_COLOR, Green); ObjectSetInteger(0, "supportLine", OBJPROP_STYLE, STYLE_SOLID); ObjectSetInteger(0, "supportLine", OBJPROP_WIDTH, 3); ObjectSetInteger(0, "supportLine", OBJPROP_RAY, true); long candlesResistance = ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR, 0); double pHighResistance[]; ArraySetAsSeries(pHighResistance, true); CopyHigh(_Symbol, _Period, 0, candlesResistance, pHighResistance); long candleHighResistance = ArrayMaximum(pHighResistance, 0, candlesResistance); MqlRates pArrayResistance[]; ArraySetAsSeries(pArrayResistance, true); long DataResistance = CopyRates(_Symbol, _Period, 0, candlesResistance, pArrayResistance); ObjectDelete(_Symbol, "resistanceLine"); ObjectCreate(_Symbol, "resistanceLine", OBJ_HLINE, 0, pArrayResistance[candleHighResistance].time, pArrayResistance[candleHighResistance].high, pArrayResistance[0].time, pArrayResistance[0].high); ObjectSetInteger(0, "resistanceLine", OBJPROP_COLOR, Red); ObjectSetInteger(0, "resistanceLine", OBJPROP_STYLE, STYLE_SOLID); ObjectSetInteger(0, "resistanceLine", OBJPROP_WIDTH, 3); ObjectSetInteger(0, "resistanceLine", OBJPROP_RAY_RIGHT, true); /////////////////////////////////////VIDYA///////////////////////////////////////////// MqlRates priceArrayVIDYA[]; double vidyaArray[]; double vidyaArray1[]; int DataVIDYA = CopyRates(_Symbol, _Period, 0, 3, priceArrayVIDYA); ArraySetAsSeries(vidyaArray, true); ArraySetAsSeries(vidyaArray1, true); int vidyaDef = iVIDyA(_Symbol, _Period, 9, 12, 0, PRICE_CLOSE); int vidyaDef1 = iVIDyA(_Symbol, _Period, 20, 50, 0, PRICE_CLOSE); CopyBuffer(vidyaDef, 0, 0, 3, vidyaArray); CopyBuffer(vidyaDef1, 0, 0, 3, vidyaArray1); double currentCloseVIDYA = NormalizeDouble(priceArrayVIDYA[2].close, 6); double vidyaVal = NormalizeDouble(vidyaArray[0], 6); double vidyaVal1 = NormalizeDouble(vidyaArray1[0], 6); ///////////////////RVI Moving Average///////////////////////////////////////////////// MqlRates pArrayRVI_MA[]; double maArrayRVI_MA[]; double rviArray[]; double rviSignalArray[]; int DataRVI_MA = CopyRates(_Symbol, _Period, 0, 1, pArrayRVI_MA); ArraySetAsSeries(maArrayRVI_MA, true); ArraySetAsSeries(rviArray, true); ArraySetAsSeries(rviSignalArray, true); int rviDef = iRVI(_Symbol, _Period, 10); int maDefRVI_MA = iMA(_Symbol, _Period, 100, 0, MODE_EMA, PRICE_CLOSE); CopyBuffer(rviDef, 0, 0, 3, rviArray); CopyBuffer(rviDef, 1, 0, 3, rviSignalArray); CopyBuffer(maDefRVI_MA, 0, 0, 3, maArrayRVI_MA); double rviValue = NormalizeDouble(rviArray[0], 3); double rviSignalValue = NormalizeDouble(rviSignalArray[0], 3); double maValueRVI_MA = NormalizeDouble(maArrayRVI_MA[0], 3); ////////////////////ACELERATOR_OSCILLATOR////////////////////////////////////// MqlRates pArrayACMA[]; double acArray[]; double maArrayACMA[]; int DataACMA = CopyRates(_Symbol,_Period, 0, 1, pArrayACMA); ArraySetAsSeries(acArray, true); ArraySetAsSeries(maArrayACMA, true); int acDefACMA = iAC(_Symbol, _Period); int maDefACMA = iMA(_Symbol, _Period, 50, 0, MODE_EMA, PRICE_CLOSE); CopyBuffer(acDefACMA, 0, 0, 3, acArray); CopyBuffer(maDefACMA,0, 0, 3, maArrayACMA); int acMaxArray = ArrayMaximum(acArray, 1, WHOLE_ARRAY); int acMinArray = ArrayMinimum(acArray, 1, WHOLE_ARRAY); double closingPriceACMA = pArrayACMA[0].close; double acValue = NormalizeDouble(acArray[0], 7); double acMaxValue = NormalizeDouble(acArray[acMaxArray], 7); double acMinValue = NormalizeDouble(acArray[acMinArray], 7); double maValueACMA = NormalizeDouble(maArrayACMA[0], 7);
///////////////////////AWESOME_OSCILLATOR/////////////////////////////////////////// MqlRates pArrayAO[]; double aoArray[]; double maArrayAO[]; int DataAO = CopyRates(_Symbol, _Period, 0, 1, pArrayAO); ArraySetAsSeries(aoArray, true); ArraySetAsSeries(maArrayAO, true); int aoDef = iAO(_Symbol, _Period); int maDefAO = iMA(_Symbol, _Period, 50, 0, MODE_EMA, PRICE_CLOSE); CopyBuffer(aoDef, 0, 0, 3, aoArray); CopyBuffer(maDefAO, 0, 0,3, maArrayAO); double closingPriceAO = pArrayAO[0].close; double aoValue = NormalizeDouble(aoArray[0], 7); double maValueAO = NormalizeDouble(maArrayAO[0], 7); ///////////////////////////DeMARKER_DIVERGENCE////////////////////////////////////////// double deMarkerArray[]; MqlRates pArrayDeMarker[]; ArraySetAsSeries(deMarkerArray, true); ArraySetAsSeries(pArrayDeMarker, true); int deMarkerDef = iDeMarker(_Symbol, _Period, 14); int pDataDeMarker = CopyRates(_Symbol, _Period, 0, 14, pArrayDeMarker); CopyBuffer(deMarkerDef, 0, 0, 14, deMarkerArray); double deMarkerVal = NormalizeDouble(deMarkerArray[0], 4); double deMarkerPrevVal = NormalizeDouble(deMarkerArray[1], 4); double currentHighDeMarker = NormalizeDouble(pArrayDeMarker[0].high, 6); double currentLowDeMarker = NormalizeDouble(pArrayDeMarker[0].low, 6); double prevHighDeMarker = NormalizeDouble(pArrayDeMarker[1].high, 6); double prevLowDeMarker = NormalizeDouble(pArrayDeMarker[1].low, 6); /////////////////////////////////////ADX//////////////////////////////////////
//creating a variable for signal //Create arrays for current ADX value, previous ADX value, +DI value and -DI value double ADXArray0[]; double ADXArray1[]; double PDIArray[]; double NDIArray[]; //Identifying the ADX, positive DI, negative DI. int ADXDef = iADX(_Symbol, _Period, 14); //Sort price arrays from current data ArraySetAsSeries(ADXArray0,true); ArraySetAsSeries(ADXArray1,true); ArraySetAsSeries(PDIArray,true); ArraySetAsSeries(NDIArray,true); //Filling data according to created ADX CopyBuffer(ADXDef,0,0,3,ADXArray0); CopyBuffer(ADXDef,0,0,2,ADXArray1); CopyBuffer(ADXDef,1,0,3,PDIArray); CopyBuffer(ADXDef,2,0,3,NDIArray); //Getting values of the current data double ADXValue=NormalizeDouble(ADXArray0[0], 2); double ADXValueLast=NormalizeDouble(ADXArray1[1], 2); double PDIValue=NormalizeDouble(PDIArray[0], 2); double NDIValue=NormalizeDouble(NDIArray[0], 2); //////////////////////////CONDITIONS//////////////////////////////////////////// bool BUY_CONDITION_1 = (vidyaVal > vidyaVal1); bool BUY_CONDITION_2 = (acValue > acMaxValue) && (closingPriceACMA > maValueACMA); bool BUY_CONDITION_3 = (aoValue > 0) && (closingPriceAO > maValueAO); bool BUY_CONDITION_4 = (pArrayRVI_MA[0].close > maValueRVI_MA) && (rviValue > rviSignalValue); bool BUY_CONDITION_5 = (ADXValue > 25) && (ADXValue > ADXValueLast); bool BUY_CONDITION_6 = (PDIValue > NDIValue); bool BUY_CONDITION_7 = (currentHighDeMarker > prevHighDeMarker) && (deMarkerVal < deMarkerPrevVal); //For BEARISH DIVERGENCE. bool SELL_CONDITION_1 = (vidyaVal < vidyaVal1); bool SELL_CONDITION_2 = (acValue < acMinValue) && (closingPriceACMA < maValueACMA); bool SELL_CONDITION_3 = (aoValue < 0) && (closingPriceAO < maValueAO); bool SELL_CONDITION_4 = (pArrayRVI_MA[0].close < maValueRVI_MA) && (rviValue < rviSignalValue); bool SELL_CONDITION_5 = (ADXValue > 25) && (ADXValue > ADXValueLast); bool SELL_CONDITION_6 = (PDIValue < NDIValue); bool SELL_CONDITION_7 = (currentLowDeMarker < prevLowDeMarker) && (deMarkerVal > deMarkerPrevVal); //For BULLISH DIVERGENCE. if((BUY_CONDITION_1) == 1) { Comment("BUY","\n", "Current Close Value is ",currentCloseVIDYA,"\n", "Current VIDYA (9,12) Value is ",vidyaVal,"\n", "Current VIDYA (20,50) Value is ",vidyaVal1); if((BUY_CONDITION_5 && BUY_CONDITION_6) == 1) { Comment("AC Closing Price Is ", closingPriceACMA, "\n", "AC Value Is ", acValue, "\n", "AC Max Value Is ", acMaxValue, "\n", "AC Min Value Is ", acMinValue, "\n", "AC MA Value Is ", maValueACMA, "\n", "AO Closing Price is ", closingPriceAO, "\n", "AO Value Is ", aoValue, "\n", "AO MA Value Is ", maValueAO, "\n", "RVI Closing price is ", pArrayRVI_MA[0].close, "\n", "RVI MA Value is ", maValueRVI_MA, "\n", "Relative Vigor Index Is ", rviValue, "\n", "RVI Signal Value Is ", rviSignalValue, "\n", "ADX Value is ", ADXValue, "\n", "ADX Value Last is ", ADXValueLast, "\n", "+DI Value is ", PDIValue, "\n", "-DI Value is ", NDIValue, "\n", "Current High Is ", currentHighDeMarker, "\n", "Prev. High Value Is ", prevHighDeMarker, "\n", "Current DeMarker Value Is ", deMarkerVal, "\n", "Prev. DeMarker Value Is ", deMarkerPrevVal); } } if((SELL_CONDITION_1) == 1) { Comment("SELL","\n", "Current Close Value is ",currentCloseVIDYA,"\n", "Current VIDYA (9,12) Value is ",vidyaVal,"\n", "Current VIDYA (20,50) Value is ",vidyaVal1); if((SELL_CONDITION_5 && SELL_CONDITION_6) == 1) { Comment("AC Closing Price Is ", closingPriceACMA, "\n", "AC Value Is ", acValue, "\n", "AC Max Value Is ", acMaxValue, "\n", "AC Min Value Is ", acMinValue, "\n", "AC MA Value is ", maValueACMA, "\n", "AO Closing Price Is ", closingPriceAO, "\n", "AO Value Is ", aoValue, "\n", "AO MA Value Is ", maValueAO, "\n", "RVI Closing Price Is ", pArrayRVI_MA[0].close, "\n", "RVI MA Value Is ", maValueRVI_MA, "\n", "Relative Vigor Index Is ", rviValue, "\n", "RVI Signal Value Is ", rviSignalValue, "\n", "ADX Value is ", ADXValue, "\n", "ADX Value Last is ", ADXValueLast, "\n", "+DI Value is ", PDIValue, "\n", "-DI Value is ", NDIValue, "\n", "Current Low Is ", currentLowDeMarker, "\n", "Prev. Low Is ", prevLowDeMarker, "\n", "Current DeMarker Value Is ", deMarkerVal, "\n", "Prev. DeMarker Value Is ", deMarkerPrevVal); } } } //+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer() {
//--- }
//+------------------------------------------------------------------+
//| Trade function |
//+------------------------------------------------------------------+
void OnTrade() {
//--- }
//+------------------------------------------------------------------+
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) {
//--- }
//+------------------------------------------------------------------+
//| Tester function |
//+------------------------------------------------------------------+
double OnTester() {
//--- double ret=0.0;
//--- //--- return(ret); }
//+------------------------------------------------------------------+
//| TesterInit function |
//+------------------------------------------------------------------+
void OnTesterInit() {
//--- }
//+------------------------------------------------------------------+
//| TesterPass function |
//+------------------------------------------------------------------+
void OnTesterPass() {
//--- }
//+------------------------------------------------------------------+
//| TesterDeinit function |
//+------------------------------------------------------------------+
void OnTesterDeinit() {
//--- }
//+------------------------------------------------------------------+
//| ChartEvent function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {
//--- }
//+------------------------------------------------------------------+
//| BookEvent function |
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol) {
//--- }
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+
![Apprenez à concevoir un système de trading basé sur l’OBV](https://c.mql5.com/2/46/why-and-how__6.png)
Ceci est un nouvel article de notre série pour les débutants sur la façon de concevoir un système de trading basé sur certains des indicateurs les plus populaires. Nous apprendrons un nouvel indicateur qui est l’On Balance Volume (OBV), et nous apprendrons comment nous pouvons l'utiliser et concevoir un système de trading basé dessus.
![احمد فايق المعيني احمد فايق المعيني](https://c.mql5.com/avatar/2022/10/63589a44-73c6.jpg)
![Apprenez à concevoir un système de trading basé sur Le SAR Parabolique](https://c.mql5.com/2/46/why-and-how__5.png)
Dans cet article, nous poursuivons notre série sur la conception d'un système de trading utilisant des indicateurs les plus populaires. Dans cet article, nous allons découvrir en détail l'indicateur SAR Parabolique, puis comment nous pouvons concevoir un système de trading à utiliser dans MetaTrader 5 en utilisant quelques stratégies simples.
![Apprendre à concevoir un système de trading basé sur l’ATR](https://c.mql5.com/2/46/why-and-how__4.png)
Dans cet article, nous allons découvrir un nouvel outil technique pouvant utilisé en trading, dans la continuité de la série dans laquelle nous apprenons à concevoir des systèmes de trading simples. Nous allons cette fois travailler avec un autre indicateur technique populaire : l’Average True Range (ATR).
![Apprenez à concevoir un système de trading basé sur l’ADX](https://c.mql5.com/2/46/why-and-how__3.png)
Dans cet article, nous poursuivons notre série sur la conception d'un système de trading en utilisant les indicateurs les plus populaires et nous parlerons de l'indicateur Average Directional Movement Index (ADX). Nous verrons cet indicateur en détail pour bien le comprendre et nous apprendrons comment l'utiliser à travers une stratégie simple. En apprenant quelque chose en détail, nous pouvons obtenir plus d'informations et nous pouvons mieux l'utiliser.
![Apprenez à concevoir un système de trading basé sur le Stochastique](https://c.mql5.com/2/46/why-and-how__2.png)
Dans cet article, nous poursuivons notre série d'apprentissage - cette fois, nous allons apprendre à concevoir un système de trading en utilisant l'un des indicateurs les plus populaires et les plus utiles, l'oscillateur stochastique, pour construire un nouveau bloc dans notre connaissance des bases.
![Abdullah Alghamdi Abdullah Alghamdi](https://c.mql5.com/avatar/2017/7/597B7B30-1EC3.jpg)
![Apprenez à concevoir un système de trading basé sur le MACD](https://c.mql5.com/2/46/why-and-how__1.png)
Dans cet article, nous allons découvrir un nouvel outil dans notre série : nous allons apprendre à concevoir un système de trading basé sur l'un des indicateurs techniques les plus populaires, le Moving Average Convergence Divergence (MACD).
![Mary Ann Thompson - MTTSoft Mary Ann Thompson - MTTSoft](https://c.mql5.com/avatar/avatar_na2_micro.png)
![Apprenez à concevoir un système de trading basé sur le Momentum](https://c.mql5.com/2/46/why-and-how.png)
Dans ce nouvel article de notre série sur la conception des systèmes de trading, je vais présenter le Commodities Channel Index (CCI), expliquer ses spécificités, et partager avec vous comment créer un système de trading basé sur cet indicateur.
![Apprenez à concevoir un système de trading utilisant le Momentum](https://c.mql5.com/2/45/why-and-how__5.png)
Dans mon article précédent, j'ai mentionné l'importance d'identifier la tendance, donc la direction des prix. Dans cet article, je vais vous présenter l'un des concepts et des indicateurs les plus importants, à savoir l'indicateur Momentum. Je vais vous expliquer comment concevoir un système de trading basé sur l’indicateur Momentum.
![Apprenez à concevoir un système de trading utilisant le RSI](https://c.mql5.com/2/45/why-and-how__4.png)
Dans cet article, je vais partager avec vous l'un des indicateurs les plus populaires et les plus utilisés dans le monde du trading : le RSI. Vous apprendrez à concevoir un système de trading utilisant cet indicateur.
![Apprenez à concevoir un système de trading avec les Enveloppes](https://c.mql5.com/2/45/why-and-how__3.png)
Dans cet article, je vais partager avec vous l'une des méthodes de trading avec les bandes. Cette fois, nous nous intéresserons aux enveloppes. Nous verrons à quel point il est facile de créer des stratégies de trading basées sur les enveloppes.
![Apprenez à concevoir un système de trading avec les Bandes de Bollinger](https://c.mql5.com/2/45/why-and-how__2.png)
Dans cet article, nous allons découvrir les Bandes de Bollinger, l'un des indicateurs les plus populaires dans le monde du trading. Nous allons considérer l'analyse technique et voir comment concevoir un système de trading algorithmique basé sur l'indicateur des Bandes de Bollinger.
![Apprenez à concevoir différents systèmes de Moyenne Mobile](https://c.mql5.com/2/45/why-and-how.png)
Il existe de nombreuses stratégies qui peuvent être utilisées pour filtrer les signaux générés en fonction de n'importe quelle stratégie, même en utilisant la moyenne mobile elle-même qui fait l'objet de cet article. Ainsi, l'objectif de cet article est de partager avec vous certaines des stratégies de moyenne mobile et comment concevoir un système de trading algorithmique.
![Tasir . Tasir .](https://c.mql5.com/avatar/2022/6/62B5C782-BE04.jpg)
![Apprenez Pourquoi et Comment Concevoir Votre Système de Trading Algorithmique](https://c.mql5.com/2/44/why-and-how__1.png)
Cet article montre les bases de MQL pour les débutants afin de concevoir leur système de trading algorithmique (Expert Advisor) en concevant un système de trading algorithmique simple après avoir mentionné quelques bases de MQL5
![Captin Choi Captin Choi](https://c.mql5.com/avatar/2021/12/61AAD9B1-7213.jpg)
![Mohamed Abdelmaaboud](https://c.mql5.com/avatar/2018/5/5AE8D3AC-DEC5.jpg)
![](https://c.mql5.com/1/228/Avoid_emotions.png)