¡Hola, traders! Hoy quiero compartir con ustedes un Asesor Experto (EA) muy sencillo que he estado usando en mis operaciones. Este EA, que utiliza el indicador DeMarker, es el más simple que he tenido, así que después de leerlo, no duden en dejar su valoración.
Este EA está diseñado para operar en un solo par de divisas. Las configuraciones como el marco temporal, lotes, stop loss y take profit se pueden ajustar desde el menú de propiedades.

extern ENUM_TIMEFRAMES TF = PERIOD_CURRENT;// Seleccionar el marco temporal extern int period = 8;// Periodo DeMarker extern double lt = 0.01;// Lotes extern int sl = 100;// Stop Loss extern int tp = 100;// Take Profit extern double OB = 0.7;// Sobrevendido extern double OS = 0.3;// Sobrecomprado extern bool OPENBAR = false;// Operar en el precio de apertura de la nueva barra
Aquí está el truco: divido las variables en tres partes:
- Datos | Marco Temporal
- Orden
- Par
//+------------------------------------------------------------------+ //-- marco temporal | indicador double dmrk[5]; int signal = -1;//-- 0.comprar 1.vender int hold = 0; //-- orden int ticket = 0; double lot = 0.0; int typ = -1; //-- par datetime t1 = 0; bool newbar = false; bool entry = false; //+------------------------------------------------------------------+
En la función OnInit(), inicializo la variable del array del indicador DeMarker y verifico el tamaño mínimo de lote de trading según los requisitos de mi bróker.
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnInit() { ArrayInitialize(dmrk,0.0); //--- const double test_lot = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(lt < test_lot) lt = test_lot; }
En la función OnTick(), calculo el indicador y determino las señales de compra y venta.
//--------------------------------------------------------------------------- signal = -1; //--------------------------------------------------------------------------- //---calcular for(int i = 0; i < ArraySize(dmrk); i++) { dmrk[i] = iDeMarker(Symbol(), TF, period, i); } //--- if(dmrk[1] > OB) { hold = 1;// establecer } else if(dmrk[1] < OS) { hold = -1;// establecer } else { hold = 0;// reiniciar } if(hold == 1) { if(dmrk[0] < OB && dmrk[1] > OB) { signal = OP_SELL; } } if(hold == -1) { if(dmrk[0] > OS && dmrk[1] < OS) { signal = OP_BUY; } }
Para abrir una señal de compra o venta...
//--------------------------------------------------------------------------- if(signal != -1) if(newbar == true) if(entry == false)// puerta abierta { //--- entry = true;// establecer //--- if(signal == OP_BUY) { { ticket = OrderSend(Symbol(), OP_BUY, lt, Ask, (int)((Ask - Bid) / Point), sl > 0 ? Bid - sl * Point : 0.0, tp > 0 ? Bid + tp * Point : 0.0, EAName + ":signal= " + IntegerToString(signal) + ":hold= " + IntegerToString(hold), EANumber, 0, clrBlue); signal = -1; //hold =0; }//reset else if(signal == OP_SELL) { { ticket = OrderSend(Symbol(), OP_SELL, lt, Bid, (int)((Ask - Bid) / Point), sl > 0 ? Ask + sl * Point : 0.0, tp > 0 ? Ask - tp * Point : 0.0, EAName + ":signal= " + IntegerToString(signal) + ":hold= " + IntegerToString(hold), EANumber, 0, clrRed); signal = -1; //hold =0; }//reset signal }
Y para el cierre...
if(entry == true) // cierre { if(OrderSelect(ticket, SELECT_BY_TICKET)) { if(OrderCloseTime() == 0)//-- orden activa { /* todo condición para cerrar */ //entry = false; } //else if(OrderCloseTime() != 0)//-- cierre por 1. manual 2. sl/tp 3. ea { entry = false;//reiniciar entrada } } }


¡Espero que este EA les sea útil y que puedan implementarlo en su trading! No olviden dejar sus comentarios y compartir sus experiencias. ¡Éxitos en sus operaciones!
Publicaciones relacionadas
- Señales de Trading con MQL5: Patrones de Estrellas y MFI
- Señales de Trading con Patrón Hammer/Hanging Man y Estocástico en MetaTrader 5
- MQL5 Wizard: Crea un Asesor Experto con Señales de Bullish Harami y Bearish Harami + CCI
- Crea tu Asesor Experto con MQL5: Señales de Trading Basadas en Dark Cloud Cover y Piercing Line
- MQL5 Wizard: Crea EAs con Señales de Trading basadas en Dark Cloud Cover y Piercing Line