Mohamed Abdelmaaboud
Mohamed Abdelmaaboud
5 (1)
  • Información
7+ años
experiencia
2
productos
0
versiones demo
3
trabajos
0
señales
0
suscriptores
✅ I am Mohamed Hassan Abdel Maaboud, a financial market technical strategist, trader, trading trainer and coach, and trading systems developer with experience in the financial markets field since 2014.
✅ CFTe (Certified Financial Technician) holder from IFTA (International Federation of Technical Analysts).
✅ CETA (Certified ESTA Technical Analyst) 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
Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con Williams PR
Aprendiendo a diseñar un sistema de trading con Williams PR

Aquí tenemos un nuevo artículo de nuestra serie dedicada a la creación de sistemas comerciales basados en indicadores técnicos populares. En dicha serie, escribimos sistemas en el lenguaje MQL5 para su uso en MetaTrader 5. En este artículo, analizaremos el indicador de rango porcentual de Williams (Williams' %R).

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con Ichimoku
Aprendiendo a diseñar un sistema de trading con Ichimoku

Este artículo continúa la serie sobre la construcción de sistemas comerciales basados en los indicadores más populares. Esta vez hablaremos del indicador Iсhimoku y crearemos un sistema comercial basado en sus indicadores.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con Volumes
Aprendiendo a diseñar un sistema de trading con Volumes

En este nuevo artículo de la serie sobre la creación de sistemas comerciales basados en indicadores técnicos populares, hablaremos del indicador Volumes. El volumen como concepto es un factor importante en el comercio en los mercados financieros y, por tanto, debe tenerse siempre en cuenta. En este artículo, aprenderemos a desarrollar un sistema comercial basado en el indicador Volumes.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con MFI
Aprendiendo a diseñar un sistema de trading con MFI

Aquí tenemos un nuevo artículo de nuestra serie destinada a la creación de sistemas comerciales basados en indicadores técnicos populares. Esta vez está dedicado al índice de flujo de dinero (IMF). Estudiaremos este indicador con todo detalle y desarrollaremos sistemas comerciales MQL5 simples para su ejecución en MetaTrader 5.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con el indicador de Acumulación/Distribución
Aprendiendo a diseñar un sistema de trading con el indicador de Acumulación/Distribución

En este nuevo artículo de la serie sobre la creación de sistemas comerciales basados en indicadores técnicos populares, analizaremos el indicador de Acumulación/Distribución (A/D). También desarrollaremos un sistema comercial para la plataforma MetaTrader 5 utilizando algunas estrategias simples.

DIMITAR VASILEV
DIMITAR VASILEV 2022.12.17
//+------------------------------------------------------------------+
//| 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) {
//--- }
//+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //+------------------------------------------------------------------+
Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con OBV
Aprendiendo a diseñar un sistema de trading con OBV

En este nuevo artículo de nuestra serie para principiantes en programación MQL5, aprenderemos a construir sistemas de trading usando los indicadores más populares. En esta ocasión, analizaremos el indicador On Balance Volume (OBV), aprenderemos a utilizarlo y también a crear un sistema comercial basado en él.

احمد فايق المعيني
احمد فايق المعيني 2022.10.26
جيد محمد
Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema comercial basado en Parabolic SAR
Aprendiendo a diseñar un sistema comercial basado en Parabolic SAR

Esta es la continuación de una serie de artículos en los que aprendemos cómo crear sistemas comerciales usando los indicadores más populares. En el presente artículo, analizaremos el indicador Parabolic SAR. También desarrollaremos un sistema comercial para la plataforma MetaTrader 5 usando algunas estrategias simples.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con ATR
Aprendiendo a diseñar un sistema de trading con ATR

En este artículo, analizaremos una nueva herramienta técnica que puede usarse en el trading. Esta es una continuación de nuestra serie para aprender a diseñar sistemas de trading sencillos. En esta ocasión, trabajaremos con otro popular indicador técnico, el rango medio verdadero (Average True Range, ATR).

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con ADX
Aprendiendo a diseñar un sistema de trading con ADX

En este artículo, continuaremos nuestra serie sobre el diseño de sistemas de trading usando los indicadores más populares, y hablaremos del indicador del índice direccional medio (ADX). Analizaremos este indicador con detalle para entenderlo bien y utilizarlo con una sencilla estrategia. Y es que, profundizando en un indicador, podremos usarlo mejor en el trading.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema comercial basado en el Oscilador Estocástico
Aprendiendo a diseñar un sistema comercial basado en el Oscilador Estocástico

En este artículo, continuaremos con nuestra serie dedicada al diseño de sistemas comerciales. En esta ocasión, aprenderemos a diseñar un sistema de trading usando uno de los indicadores más útiles y populares, el indicador Oscilador Estocástico, que servirá para construir un nuevo bloque en nuestro conocimiento de los fundamentos.

Abdullah Alghamdi
Abdullah Alghamdi 2022.04.22
Thank you for amazing article 🙏 ❤️
Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema comercial basado en MACD
Aprendiendo a diseñar un sistema comercial basado en MACD

En este artículo, hablaremos de una nueva herramienta de nuestra serie, y aprenderemos a diseñar un sistema comercial basado en uno de los indicadores técnicos más populares: la convergencia/divergencia de medias móviles (MACD).

Mary Ann Thompson - MTTSoft
Mary Ann Thompson 2022.04.15
Please, article seems to be referring to beginners in programming.
Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema comercial basado en CCI
Aprendiendo a diseñar un sistema comercial basado en CCI

En este nuevo artículo de nuestra serie sobre el diseño de sistemas comerciales, hablaremos del Índice del Canal de Mercaderías (CCI), estudiaremos sus entresijos y crearemos juntos un sistema comercial basado en este indicador.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema comercial basado en Momentum
Aprendiendo a diseñar un sistema comercial basado en Momentum

En el artículo anterior, mencionamos la importancia de detectar las tendencias, es decir, de determinar la dirección del movimiento del precio. En este artículo, hablaremos sobre otro concepto importante en el trading, que también existe en forma de indicador: el impulso del precio o el indicador Momentum. Asimismo, desarrollaremos nuestro propio sistema comercial basado en este indicador.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema comercial basado en RSI
Aprendiendo a diseñar un sistema comercial basado en RSI

En este artículo, hablaremos sobre otro indicador popular y de uso común: RSI. Asimismo, aprenderemos a desarrollar un sistema comercial basado en las lecturas de este indicador.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con Envelopes
Aprendiendo a diseñar un sistema de trading con Envelopes

En este artículo, compartiré con ustedes uno de los métodos para comeciar con bandas. Esta vez analizaremos el indicador Envelopes y veremos lo fácil que resulta crear algunas estrategias basadas en él.

Mohamed Abdelmaaboud
Ha publicado el artículo Aprendiendo a diseñar un sistema de trading con las Bandas de Bollinger
Aprendiendo a diseñar un sistema de trading con las Bandas de Bollinger

En este artículo, hablaremos sobre las Bandas de Bollinger, uno de los indicadores más populares en el mundo del trading. Asimismo, trataremos el análisis técnico y veremos cómo diseñar un sistema de trading algorítmico basado en el indicador de las Bandas de Bollinger.

Mohamed Abdelmaaboud
Ha publicado el artículo Cómo desarrollar sistemas basados ​​en medias móviles
Cómo desarrollar sistemas basados ​​en medias móviles

En este artículo, aprenderemos cómo desarrollar varios sistemas basados ​​en estrategias que usan medias móviles.

Tasir .
Tasir . 2022.07.06
Sangat Bermanfaat. Terima kasih Bro untuk Berbagi Karya Anda
Mohamed Abdelmaaboud
Ha publicado el artículo Aprenda por qué y cómo diseñar su sistema de trading algorítmico
Aprenda por qué y cómo diseñar su sistema de trading algorítmico

En este artículo, mostraremos los fundamentos de MQL que permitirán a los tráders principiantes diseñar su propio sistema de trading algorítmico (Asesor Experto) mediante el diseño de un sistema de trading algorítmico simple después de mencionar algunas ideas básicas de MQL5

Captin Choi
Captin Choi 2022.07.28
감사합니다. 기초를 마련하는데 많은 도움 되었습니다.
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud
Discipline is the main key to success, not only in trading but in everything in our life.
Mohamed Abdelmaaboud
Mohamed Abdelmaaboud
One of the greatest benefits of coding at trading, it helps to avoid the effect of emotions on trading and achieve discipline.