Trading Sistemático

Dual StopLoss: Combina Stop Loss Oculto y Regular en MetaTrader 4
MetaTrader4
Dual StopLoss: Combina Stop Loss Oculto y Regular en MetaTrader 4

Cuando un trader abre una nueva posición, lo primero que debe considerar es la gestión del dinero. Controlar el riesgo y administrar el capital es fundamental, y una de las maneras más comunes de hacerlo es estableciendo un margen de pérdida para nuestras operaciones. Muchos traders creen que al fijar un Stop Loss (o incluso un Take Profit) en la ventana de modificación de posiciones, el servidor del bróker está obligado a cerrar su operación tan pronto como el precio alcance ese límite. Pero, en realidad, no es tan simple. Todo depende del tipo de cuenta que tengas con tu bróker. En cuentas ECN, cuando le das un precio al bróker como Stop Loss o Take Profit, él cerrará tu posición en el primer precio disponible una vez que se alcance ese límite. Si no estás de acuerdo con esto, te invito a revisar con más detalle tu historial de operaciones. Ahí notarás que algunas de tus órdenes se cierran a precios diferentes a los que estableciste, lo que puede causarte pérdidas mayores y ganancias inesperadas. Esto se debe al SLIPPAGE. Además, hay traders que piensan que el límite de pérdida no debería ser indicado con precisión al bróker. De aquí nace el concepto de Stop Loss OCULTO, y este robot está diseñado precisamente para eso. Ahora puedes tener tanto un STOP LOSS OCULTO como un STOP LOSS REGULAR juntos. El STOP LOSS REGULAR se puede configurar fácilmente para tus posiciones, como siempre lo has hecho. No importa si utilizas robots o si operas manualmente. Simplemente ejecuta este robot en un gráfico nuevo (cualquiera) para gestionar todas tus posiciones. El valor de entrada determina la distancia entre el STOP LOSS OCULTO y el STOP LOSS REGULAR. Ten en cuenta que este valor se define en puntos, no en pips.

2021.04.23
Asistente de Scalping v1.0: Tu aliado en MetaTrader 4
MetaTrader4
Asistente de Scalping v1.0: Tu aliado en MetaTrader 4

El scalping es una de las estrategias más populares en el mundo del trading, y muchos traders la han probado al menos una vez. Como un scalper suele realizar más de 10 operaciones al día, establecer Stop Loss y Take Profit para cada operación puede resultar un poco tedioso. Si tu estrategia implica operar con varios instrumentos financieros y buscar el Break Even, gestionar todas estas órdenes puede volverse aburrido y, muchas veces, propenso a errores. Además, si operas en gráficos con tiempos cortos y en varios pares de divisas, puede ocurrir un movimiento de precio rápido justo cuando te alejas de tu escritorio para tomar un café, y podrías perder la oportunidad de asegurar un Break Even. No hay que olvidar que la posibilidad de que un movimiento de precio rápido convierta una operación rentable en una pérdida siempre está presente. Con este asistente, podrás determinar fácilmente la cantidad de Stop Loss y Take Profit que necesitas. Tan pronto como abras una operación, el asistente configura automáticamente los valores iniciales y, si el precio se mueve lo suficiente en la dirección deseada, la operación se convierte en libre de riesgo o Break Even. Todos los valores de entrada están en PUNTOS (no en PIP). extern double WhenToMoveToBE; // Determinas cuántos puntos debe estar el precio alejado del punto de entrada para que el EA lleve la orden a Break Even. extern double BEAmount; // Configuras la distancia del Stop Loss al punto de entrada.

2021.04.23
Scheduler Automático: Tu Asesor Experto para MetaTrader 4 y 5
MetaTrader4
Scheduler Automático: Tu Asesor Experto para MetaTrader 4 y 5

¡Hola, traders! Hoy quiero hablarles sobre una herramienta que puede facilitar mucho su experiencia de trading: el Scheduler Automático, un asesor experto para MetaTrader 4 y 5 que puedes encontrar en EarnForex.com. Este Scheduler Automático te permite tener el control total sobre los períodos en los que el AutoTrading está habilitado o deshabilitado en tu plataforma MetaTrader. ¡Es como tener un asistente personal que se encarga de tus operaciones! Una de las mejores características de este asesor es que puedes establecer horarios específicos para cada día de la semana. Esto significa que puedes programar el AutoTrading para que esté activo solo cuando realmente lo necesites, y se desactivará automáticamente fuera de esos períodos. ¡Adiós a las sorpresas desagradables! Además, si deseas, el Scheduler también puede intentar cerrar todas las operaciones abiertas y las órdenes pendientes antes de desactivar el AutoTrading. Esto te da una capa extra de seguridad y te permite gestionar tus posiciones de manera más efectiva. Control total sobre tus horarios de trading Desactivación automática fuera de los períodos programados Cierre de operaciones antes de desactivar el AutoTrading Así que si buscas una manera de optimizar tu estrategia de trading y asegurarte de que tus operaciones estén bajo control, no dudes en probar el Scheduler Automático. ¡Tu cartera te lo agradecerá!

2021.04.01
Cierra Órdenes por Objetivo o Limita Pérdidas - Herramienta para MetaTrader 4
MetaTrader4
Cierra Órdenes por Objetivo o Limita Pérdidas - Herramienta para MetaTrader 4

Utilizando el EA para el Trading En el mundo del trading, contar con las herramientas adecuadas puede marcar la diferencia. Hoy vamos a hablar sobre un Asesor Experto (EA) que te ayudará a gestionar tus órdenes de manera más eficiente. Inputs Necesarios Este EA requiere tres entradas que debes configurar: Objetivo de Beneficio Límite de Pérdidas Número Mágico extern    double         inTargetProfitMoney     = 10;       //Objetivo de Beneficio ($) extern    double         inCutLossMoney          = 0.0      //Límite de Pérdidas ($) extern    int            inMagicNumber           = 0        //Número Mágico Cuando este EA se ejecuta, primero llamará a la función OnInit(), donde verificaremos la inicialización de las entradas y variables. int OnInit()   { //---    if(inTargetProfitMoney <= 0)      {       Alert("Entrada inválida");       return(INIT_PARAMETERS_INCORRECT);      }    inCutLossMoney = MathAbs(inCutLossMoney) * -1; //---    return(INIT_SUCCEEDED);   } Cada vez que haya un movimiento de precio (tick), se llamará a la función OnTick(). void OnTick()   { //---    double   tFloating = 0.0;    int tOrder  = OrdersTotal();    for(int i=tOrder-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber)            {             tFloating   += OrderProfit()+OrderCommission() + OrderSwap();            }         }      }    if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0))      {       fCloseAllOrders();      }   } En la función OnTick, se calcula el beneficio o pérdida total. Si se cumple el objetivo o se alcanza el límite de pérdida, se cierran todas las órdenes. void fCloseAllOrders()   {    double   priceClose = 0.0;    int tOrders = OrdersTotal();    for(int i=tOrders-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL))            {             priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK);             if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold))               {                Print("AVISO: Cierre Fallido");               }            }         }      }   } Para más información detallada y compartir códigos MQL4, te invito a unirte a nuestro grupo de Telegram: t.me/codeMQL

2021.03.31
Cómo implementar un Trailing Stop con MagicNumber en MetaTrader 4
MetaTrader4
Cómo implementar un Trailing Stop con MagicNumber en MetaTrader 4

El trailing stop es una herramienta esencial para nuestros trades, ya que nos permite mover el stop loss a la zona de ganancias, asegurando así nuestros beneficios de forma automática. Comencemos a codificar especificando los parámetros de entrada del trailing stop. input    bool     isTrailingStop = true;  //Trailing Stop input    int      trailingStart  = 15;    //Inicio del Trailing (pips) input    int      trailingStep   = 5     //Paso del Trailing (pips) input    int      MagicNumber = 0;        //Número Mágico Variable Global //Variable Global double   myPoint    = 0.0; Cuando ejecutamos este EA, la función OnInit() se ejecutará por primera vez y aquí validaremos e inicializaremos las variables de entrada. int OnInit()   {       if (isTrailingStop && trailingStart <= 0){       Alert ("Parámetros incorrectos");       return(INIT_PARAMETERS_INCORRECT);    }       myPoint     = GetPipPoint(Symbol());       return(INIT_SUCCEEDED);   } Cada vez que ocurre un movimiento de precio (tick) en el gráfico donde se ha emparejado este EA, se ejecutará la función OnTick(). Dentro de esta función, llamaremos a la función setTrailingStop(). void OnTick()   { //---    setTrailingStop(MagicNumber);      } Función setTrailingStop() void setTrailingStop(int magicNumber=0){    if (isTrailingStop==false) return;       int      tOrder = 0;    string   pair = "";    double   sl = 0.0, tp = 0.0;       pair = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       if (OrderMagicNumber() == magicNumber && StringFind(OrderSymbol(), pair, 0) == 0 ){          if (OrderType() == OP_BUY){             if ( (Bid - (trailingStart * myPoint)) >= OrderOpenPrice()                   && (Bid - ((trailingStart+trailingStep) * myPoint) >= OrderStopLoss() )                 ){                sl = NormalizeDouble(Bid - (trailingStart * myPoint), Digits());                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " no se actualizó el SL");                }             }          }                   if (OrderType() == OP_SELL){             if ( (Ask + (trailingStart * myPoint)) <= OrderOpenPrice()                   && ( (Ask + ((trailingStart+trailingStep) * myPoint) <= OrderStopLoss() ) || OrderStopLoss() == 0.0)                )             {                sl = NormalizeDouble(Ask + (trailingStart * myPoint), Digits() );                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " no se actualizó el SL");                }             }          }       } //fin if magicNumber    }//fin for } Otras funciones estándar necesarias son GetPipPoint() // Función GetPipPoint double GetPipPoint(string pair) {    double point= 0.0;    int digits = (int) MarketInfo(pair, MODE_DIGITS);    if(digits == 2 || digits== 3) point= 0.01;    else if(digits== 4 || digits== 5) point= 0.0001;    return(point); } Si tienes alguna pregunta, no dudes en dejarla en los comentarios. También puedes unirte a nuestro grupo de intercambio (en Español) t.me/codeMQL También te invitamos a descargar nuestra app SignalForex Apóyanos descargando y utilizando la app SignalForex para mejorar tus resultados en el trading. Descargar SignalForex

2021.03.30
Crossover de 2 MA: Tu Asesor Experto para MetaTrader 4
MetaTrader4
Crossover de 2 MA: Tu Asesor Experto para MetaTrader 4

En este artículo, vamos a iniciar la creación de un Asesor Experto (EA) en MetaTrader 4, enfocándonos en el cruce de dos medias móviles. Comenzaremos definiendo las variables de entrada. //--- parámetros de entrada input    int      periodo_ma_rapida = 8;  //Periodo MA Rápida input    int      periodo_ma_lenta = 20; //Periodo MA Lenta input    double   takeProfit  = 20.0;  //Take Profit (pips) input    double   stopLoss    = 20.0  //Stop Loss (pips) input    double   tamañoLote     = 0.10;  //Tamaño del Lote input    double   capitalMinimo   = 100.0; //Capital Mínimo ($) input    int Deslizamiento = 3;       //Deslizamiento input    int NumeroMagico = 889;  //Número Mágico A continuación, definimos las variables globales. Estas variables tendrán un alcance global y serán accesibles en todas las funciones. //Variables Globales double   miPunto    = 0.0; int      miDeslizamiento = 0; int      TicketCompra   = 0; int      TicketVenta  = 0; Cuando se ejecuta el EA, la primera función que se ejecuta es OnInit(). Por lo general, utilizamos esta función para validar e inicializar las variables globales que se utilizarán. int OnInit() {    //validación de entrada, siempre debemos validar la inicialización de datos de entrada    if (periodo_ma_rapida >= periodo_ma_lenta || takeProfit < 0.0 || stopLoss < 0.0 || tamañoLote < 0.01 || capitalMinimo < 10){       Alert("ATENCIÓN - Los datos de entrada no son válidos");       return (INIT_PARAMETERS_INCORRECT);    }       double volumen_minimo=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);    if(tamañoLote<volumen_minimo)    {       string mensaje =StringFormat("El volumen es menor que el límite permitido de %.2f",volumen_minimo);       Alert (mensaje);       return(INIT_PARAMETERS_INCORRECT);    }       miPunto = GetPipPoint(Symbol());    miDeslizamiento = GetSlippage(Symbol(),Deslizamiento);    return(INIT_SUCCEEDED); } Cuando el precio del mercado se mueve (tick), se llamará a la función OnTick() y se ejecutarán todas las instrucciones y funciones contenidas en este bloque. Dentro de la función OnTick(), llamaremos a varias otras funciones. Empezaremos llamando a la función checkMinEquity() para controlar la suficiencia de la equidad de trading. Si los fondos de equidad son suficientes (superando la equidad mínima), se procederá a declarar la variable de señal y luego se llamará a la función NewCandle(), que indica cuando se forma una nueva vela. La función getSignal() leerá los valores de ambos indicadores de medias móviles y devolverá información sobre si ocurre un cruce ascendente o descendente como señal para comprar o vender. Basado en esta información de señal, se pasará a la función transaction() para abrir posiciones de compra o venta. A continuación, se llamará a la función setTPSL(), que se encarga de establecer los precios de take profit y stop loss.Si la equidad no cumple con el requisito de equidad mínima, se mostrará una alerta y este EA se detendrá. void OnTick() {    if (checkMinEquity()){              int signal = -1;       bool esNuevaVela = NewCandle(Period(), Symbol());              signal = getSignal(esNuevaVela);       transaction(esNuevaVela, signal);       setTPSL();                  }else{       //Detener trading, porque la equidad no es suficiente       Print("El EA se detendrá porque la equidad no es suficiente");    } } Función para setTPSL() void setTPSL(){    int   tOrder = 0;    string   strMN = "", par = "";    double sl = 0.0, tp = 0.0;       par = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       strMN = IntegerToString(OrderMagicNumber());       if (StringFind(strMN, IntegerToString(NumeroMagico), 0) == 0 && StringFind(OrderSymbol(), par, 0) == 0 ){          if (OrderType() == OP_BUY && (OrderTakeProfit() == 0 || OrderStopLoss() == 0) ){             if (takeProfit > 0) {                tp = OrderOpenPrice() + (takeProfit * miPunto);             }else{                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() - (stopLoss * miPunto);             }else{                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl ){                if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrBlue)){                   Print ("Modificación de Orden Exitosa");                }             }          }          if (OrderType() == OP_SELL && (OrderTakeProfit() == 0 || OrderStopLoss() == 0) ){             if (takeProfit > 0) {                tp = OrderOpenPrice() - (takeProfit * miPunto);             }else{                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() + (stopLoss * miPunto);             }else{                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl ){                if (OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrRed)){                   Print ("Modificación de Orden Exitosa");                }             }          }                }//fin if número mágico && par        } //fin for } Para más educación y compartir conocimientos, puedes unirte a nuestro grupo de Telegram t.me/codeMQL Si estás buscando una aplicación que apoye tu trading, descarga nuestra app SignalForex en la tienda de aplicaciones. https://play.google.com/store/apps/details?id=com.autobotfx.signalforex

2021.03.30
EA Adaptativo: Sistema de Aprendizaje Profundo para MetaTrader 4
MetaTrader4
EA Adaptativo: Sistema de Aprendizaje Profundo para MetaTrader 4

Hola, traders. Hoy quiero compartirles una herramienta que he estado desarrollando: un Asesor Experto (EA) adaptativo que promete revolucionar nuestra forma de operar en los mercados. La idea de crear este sistema surgió tras el éxito que tuve con un EA que opera patrones estáticos, al que llamé "The Unreal Engine". Si quieren echar un vistazo, aquí les dejo el enlace: The Unreal Engine en el mercado. Sin embargo, me encontré con algunas limitaciones al probar este Asesor Experto de Aprendizaje Profundo debido a la capacidad de mi computadora. Para ser sincero, cuento con un PC de doble núcleo y 4 GB de RAM, lo que no es suficiente para llevar a cabo pruebas exhaustivas. Si desean evaluar este EA a fondo, necesitarán una computadora potente, ya que puede llevar mucho tiempo realizar pruebas durante varios años. El nombre de mi EA es "The Enchantress", y se encarga de recopilar cada patrón que se presenta en el mercado, abriendo órdenes virtuales con stop loss y take profit. Este EA detectará los mejores patrones del mercado para abrir operaciones reales. Importante: Este es un Asesor Experto de aprendizaje profundo, y se recomienda que funcione durante al menos 3 a 5 meses antes de abrir operaciones reales. Les aconsejo que realicen pruebas en el estrategia tester antes de utilizarlo en cuentas reales. Si alguno de ustedes prueba este EA, por favor, comparta sus resultados aquí: Resultados de prueba. Además, pueden seguir el canal de The Unreal Engine para más actualizaciones y noticias. ¡Feliz prueba! Les recomiendo que lo prueben en pares de 5 dígitos con un marco de tiempo mínimo de H1.

2021.03.13
EA Sencillo con el Indicador DeMarker para MetaTrader 4: Tu Asesor Experto
MetaTrader4
EA Sencillo con el Indicador DeMarker para MetaTrader 4: Tu Asesor Experto

¡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!

2020.12.17
Ejemplo de Asesor Experto: Creación de Archivos CSV para MetaTrader 4
MetaTrader4
Ejemplo de Asesor Experto: Creación de Archivos CSV para MetaTrader 4

¡Hola, colegas! Soy Lucas y quería aportar algo a esta maravillosa comunidad de traders de la que he aprendido tanto leyendo artículos informativos y mucho más. Soy un inversor en Forex y en la bolsa, y me dedico a crear asesores expertos para mi propio trading. Así que aquí les dejo mi contribución y espero que algunos de ustedes le encuentren utilidad a este experto. Este es un ejemplo de cómo puedes escribir datos de órdenes en un archivo CSV, que luego podrás estudiar y utilizar en tus análisis. Este experto no está diseñado para operar en el mercado (tal como está actualmente), sino que sirve para demostrar cómo puedes implementar y usar esta función en tu propio asesor experto. Puedes seguir desarrollándolo y modificándolo según tu estrategia. Este experto abrirá operaciones en la dirección seleccionada, y las órdenes se cerrarán virtualmente mediante la configuración de los parámetros de TP/SL. Si 'WriteCloseData' está configurado como verdadero, se creará un archivo donde se almacenarán datos de las órdenes, como dirección, ganancias/pérdidas, precio, entre otros, en formato CSV en tu terminal. Para probar este experto en el probador de estrategias, accederás a este archivo desde OpenDataFolder/tester/CSVexpert/CSVexample. La carpeta CSVexpert se creará automáticamente cuando comiences a probar, y el archivo que almacena todos los datos, CSVexample, se generará dentro de esa carpeta. Cuando implementes esta función en tu propio asesor experto o continúes construyendo sobre este y lo ejecutes en cuentas demo o reales, podrás acceder a este archivo creado desde MQL4/Files/CSVexpert/CSVexample. Puedes cambiar el nombre de la carpeta y del archivo a lo que desees, excepto por el .csv, que debes dejar como está. Recuerda que esto es solo un ejemplo de lo que puedes hacer y cómo utilizar esta función. No quiero que pierdas fondos pensando que esto puede ser utilizado para operar en este momento.

2020.11.14
Primero Anterior 10 11 12 13 14 15 16 17 18 19 20 Siguiente Último