Trading Sistemático

Cómo Utilizar Medias Móviles con un Asesor Experto en MetaTrader 4
MetaTrader4
Cómo Utilizar Medias Móviles con un Asesor Experto en MetaTrader 4

1. REGLA DE ENTRADA Entrada Larga: Ingresaremos en posiciones largas durante el Cruce Dorado. El valor de la media móvil anterior es mayor que el de la media móvil a corto plazo. El valor de la media móvil de hace dos períodos es menor que el de la media móvil a corto plazo. El valor de la media móvil de hace dos períodos es menor que el valor de la media móvil a corto plazo anterior. Si se cumplen estas tres condiciones, consideramos que se ha producido un Cruce Dorado y entramos en una posición larga. Entrada Corta: Ingresaremos en posiciones cortas durante el Cruce Morto. El valor de la media móvil anterior es menor que el de la media móvil a corto plazo. El valor de la media móvil de hace dos períodos es mayor que el de la media móvil a corto plazo. El valor de la media móvil de hace dos períodos es mayor que el valor de la media móvil a corto plazo anterior. Si se cumplen estas tres condiciones, consideramos que se ha producido un Cruce Morto y entramos en una posición corta. 2. REGLA DE SALIDA Las órdenes de entrada se gestionan únicamente con órdenes de stop loss y take profit. El punto de stop loss se establece a una distancia del valor de stop loss desde la media móvil a medio plazo. Las órdenes de take profit se fijan a la misma distancia que las órdenes de stop loss, pero en el lado positivo, asegurando así la equidad. 3. RESULTADO DE LA PRUEBA RETROACTIVA

2023.09.16
Asesor de Trading con RSI y Martingala para MetaTrader 5
MetaTrader5
Asesor de Trading con RSI y Martingala para MetaTrader 5

Hoy te traigo un asesor que combina dos poderosas estrategias: el indicador RSI y la técnica de Martingala. Este sistema de trading está diseñado para ayudarte a encontrar los mejores puntos de entrada y salida en el mercado, adaptándose a las condiciones actuales. Estrategia de Entrada y Salida La entrada en el mercado se realiza a partir de las señales que proporciona el indicador RSI. - Compra: si el RSI alcanza un mínimo en las últimas barras especificadas. - Venta: si el RSI alcanza un máximo en las últimas barras especificadas. En cuanto a la salida, las posiciones se cierran al alcanzar los niveles de TakeProfit o StopLoss, que puedes configurar en puntos mediante los parámetros correspondientes. Filtrado de Señales Horario: El asesor solo opera dentro del intervalo de tiempo que especifiques entre StartTime y EndTime. Evitar Noticias: Se evita operar durante los períodos que determines en el parámetro NewsTimeToAvoid. Spread: Se establecen valores máximos de spread a través del parámetro MaxSpread. Ajustes Adicionales La estrategia de Martingala puede ser utilizada para aumentar el tamaño de la posición durante las reversas del mercado. Esta funcionalidad se activa mediante el parámetro Upheaval y el multiplicador de Martingala MartingaleMultiplier. Si estás buscando maximizar tus oportunidades en el trading, este asesor puede ser una gran adición a tu arsenal. ¡No dudes en probarlo y compartir tu experiencia!

2023.09.12
Tal vez Awo EA: Tu Asesor Experto para MetaTrader 4
MetaTrader4
Tal vez Awo EA: Tu Asesor Experto para MetaTrader 4

Características Clave: Entrada con Media Móvil: Este EA utiliza una media móvil sencilla para identificar posibles puntos de entrada. Cuando las condiciones del mercado se alinean con la estrategia de cruce de medias móviles, puede abrir órdenes de compra o venta. Parámetros Personalizables: Puedes ajustar el comportamiento del EA usando parámetros de entrada como el período de la media, tamaño del lote, stop loss, take profit, niveles de breakeven, distancias deseadas para el breakeven y horas de operación. Estos parámetros te permiten adaptar el EA a diferentes estilos de trading y clases de activos. Funcionalidad de Breakeven: El EA incluye dos niveles de breakeven. Una vez que una operación está en ganancias, puede mover automáticamente el stop loss al nivel de breakeven para proteger tus ganancias. Las distancias deseadas para el breakeven se pueden ajustar según tus preferencias. Trailing Stop: El EA puede ajustar los niveles de stop loss a medida que la operación avanza a tu favor, ayudándote a asegurar beneficios durante tendencias fuertes. Horas de Inicio y Fin: Puedes especificar las horas en las que el EA debe operar activamente. Esta función te permite concentrar tus actividades de trading en sesiones de mercado específicas. Por Favor Haz: Revisar y optimizar cuidadosamente los parámetros de entrada para alinear el EA con tu estrategia de trading. Probar el EA en una cuenta demo antes de utilizarlo en un entorno de trading real. Monitorear el rendimiento del EA y ajustar los parámetros según sea necesario para adaptarse a las condiciones cambiantes del mercado. # Recuerda que el trading implica riesgos, y este EA no garantiza ganancias. Úsalo de manera responsable y mantente consciente de los riesgos asociados al trading automatizado.

2023.09.10
Nuevo Concepto: Trailing Take Profit para MetaTrader 5
MetaTrader5
Nuevo Concepto: Trailing Take Profit para MetaTrader 5

Hoy vamos a hablar de un concepto interesante que puede cambiar la forma en la que gestionamos nuestras operaciones: el Trailing Take Profit. Este sistema es diferente al tradicional Trailing Stop, que sigue el precio hasta que se alcanza el nivel de stop loss y se cierra la posición con beneficios. En contraste, el Trailing Take Profit sigue el precio cuando una posición está en pérdida y, al final, cierra la posición con una pérdida controlada. Por ejemplo, imagina que tienes una operación en pérdida y el precio actual alcanza el TrailingTPStart (digamos que está configurado en 500 puntos). Cuando el precio se mueve 500 puntos desde el precio de apertura y tu posición está en -500 puntos de pérdida, el take profit comienza a seguir el precio. La distancia máxima entre el take profit y el precio se establece con TrailingTPDistance. No estoy seguro si esto te ayudará, pero este concepto puede ser útil para algunos EA que no utilizan stop loss, permitiendo así reducir pérdidas en ciertas situaciones. Cómo configurar el Trailing Take Profit en tu EA Ejecuta el TrailingTakeProfit EA. Si TrailingTP_Mode está activado, el EA funcionará automáticamente. Introduce el nombre del símbolo, por ejemplo, GBPUSD en el EA. Configura TrailingTPStart. Este es el número de puntos desde el precio actual donde comenzará a funcionar el take profit y a seguir el precio cuando la posición esté en pérdida. Establece TrailingTPDistance. Este es el máximo de puntos que puedes permitir entre el take profit y el precio actual.

2023.07.11
AK-47 Scalper EA: Tu Asesor Experto para MetaTrader 5
MetaTrader5
AK-47 Scalper EA: Tu Asesor Experto para MetaTrader 5

¿Eres un trader que busca optimizar sus operaciones en MetaTrader 5? Entonces, déjame presentarte al AK-47 Scalper EA, un asesor experto diseñado para maximizar tus oportunidades de trading. En este artículo, te mostraré cómo configurar y utilizar este potente sistema de trading. 1. Parámetros de entrada #define ExtBotName "AK-47 EA" // Nombre del Bot #define  Version "1.00" // Importar clase de entrada #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh>   #include <Trade\AccountInfo.mqh> #include <Trade\OrderInfo.mqh> //--- Variables predefinidas para la legibilidad del código #define Ask    SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define Bid    SymbolInfoDouble(_Symbol, SYMBOL_BID) //--- Parámetros de entrada input string  EASettings         = "---------------------------------------------"; //-------- <Configuración EA> -------- input int      InpMagicNumber    = 124656;   //Número mágico input string  MoneySettings      = "---------------------------------------------"; //-------- <Configuración de Dinero> -------- input bool     isVolume_Percent  = true;     //Permitir porcentaje de volumen input double   InpRisk           = 3;        //Porcentaje de riesgo del saldo (%) input string  TradingSettings    = "---------------------------------------------"; //-------- <Configuración de Trading> -------- input double   Inpuser_lot       = 0.01;     //Lotes input double   InpSL_Pips        = 3.5      //Stoploss (en Pips) input double   InpTP_Pips        = 7        //TP (en Pips) (0 = Sin TP) input int      InpMax_slippage   = 3        //Máximo slippage permitido (en Pips) input double   InpMax_spread     = 5        //Máximo spread permitido (en Puntos) (0 = flotante) input string   TimeSettings      = "---------------------------------------------"; //-------- <Configuración de Tiempo de Trading> -------- input bool     InpTimeFilter     = true;     //Filtro de Tiempo de Trading input int      InpStartHour      = 2;        //Hora de Inicio input int      InpStartMinute    = 30       //Minuto de Inicio input int      InpEndHour        = 21       //Hora de Fin input int      InpEndMinute      = 0        //Minuto de Fin 2. Inicialización de variables locales //--- Variables int      Pips2Points;    // slippage  3 pips    3=points    30=points double   Pips2Double;    // Stoploss 15 pips    0.015      0.0150 bool     isOrder = false; int      slippage; long     acSpread; string   strComment = ""; CPositionInfo  m_position;                   // objeto de posición de trading CTrade         m_trade;                      // objeto de trading CSymbolInfo    m_symbol;                     // objeto de información del símbolo CAccountInfo   m_account;                    // envoltorio de info de cuenta COrderInfo     m_order;                      // objeto de órdenes pendientes 3. Código Principal a/ Función de inicialización del experto //+------------------------------------------------------------------+ //| Función de inicialización del experto                                   | //+------------------------------------------------------------------+ int OnInit() {    //Detección de 3 o 5 dígitos    //Pip y punto    if(_Digits % 2 == 1) {       Pips2Double  = _Point*10;       Pips2Points  = 10;       slippage = 10* InpMax_slippage;    }    else {       Pips2Double  = _Point;       Pips2Points  =  1;       slippage = InpMax_slippage;    }         if(!m_symbol.Name(Symbol())) // establece el nombre del símbolo       return(INIT_FAILED);           RefreshRates(); //---    m_trade.SetExpertMagicNumber(InpMagicNumber);    m_trade.SetMarginMode();    m_trade.SetTypeFillingBySymbol(m_symbol.Name());    m_trade.SetDeviationInPoints(slippage); //---    return(INIT_SUCCEEDED); } b/ Función de tick del experto //+------------------------------------------------------------------+ //| Función de tick del experto                                             | //+------------------------------------------------------------------+ void OnTick() {    if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false) {       Comment("LazyBot\nTrading no permitido.");       return;    }         MqlDateTime structTime;    TimeCurrent(structTime);    structTime.sec = 0;       //Establecer hora de inicio    structTime.hour = InpStartHour;    structTime.min = InpStartMinute;          datetime timeStart = StructToTime(structTime);       //Establecer hora de fin    structTime.hour = InpEndHour;    structTime.min = InpEndMinute;    datetime timeEnd = StructToTime(structTime);       acSpread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);          strComment = "\n" + ExtBotName + " - v." + (string)Version;    strComment += "\nHora del servidor = " + TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS) + " - " + DayOfWeekDescription(structTime.day_of_week);    strComment += "\nTiempo de Trading = [" + (string)InpStartHour + "h" + (string)InpStartMinute + " --> " +  (string)InpEndHour + "h" + (string)InpEndMinute + "]";       strComment += "\nSpread actual = " + (string)acSpread + " Puntos";       Comment(strComment);       //Actualizar valores    UpdateOrders();       TrailingStop();           //Condiciones para operar según la sesión    if(InpTimeFilter) {       if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd) {          if(!isOrder) OpenOrder();       }    }    else {       if(!isOrder) OpenOrder();    }    } //---Fin de la función 3.1 Calcular señal para enviar órdenes //+------------------------------------------------------------------+ //| CALCULAR SEÑAL Y ENVIAR ORDEN                                  | //+------------------------------------------------------------------+ void OpenOrder(){       ENUM_ORDER_TYPE OrdType = ORDER_TYPE_SELL;//-1;       double TP = 0;    double SL = 0;    string comment = ExtBotName;       //Calcular Lotes    double lot1 = CalculateVolume();       if(OrdType == ORDER_TYPE_SELL) {       double OpenPrice = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              TP = OpenPrice - NormalizeDouble(InpTP_Pips * Pips2Double, _Digits);       SL = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);                if(CheckSpreadAllow()                                             //Verificar Spread          && CheckVolumeValue(lot1)                                      //Verificar volumen          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_SELL_STOP, OpenPrice)  //Verificar Dist desde OpenPrice a Bid          && CheckStopLoss(OpenPrice,  SL, TP)                           //Verificar Dist desde SL, TP a OpenPrice          && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_SELL)) //Verificar Balance cuando la orden sea Hit       {          if(!m_trade.SellStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))          Print(__FUNCTION__,"--> Error de OrderSend ", m_trade.ResultComment());       }    }    else if(OrdType == ORDER_TYPE_BUY) {       double OpenPrice = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);       SL = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              if(CheckSpreadAllow()                                             //Verificar Spread          && CheckVolumeValue(lot1)                                      //Verificar volumen          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_BUY_STOP, OpenPrice)   //Verificar Dist desde OpenPrice a Bid          && CheckStopLoss(OpenPrice,  SL, TP)                           //Verificar Dist desde SL, TP a OpenPrice                  && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_BUY))  //Verificar Balance cuando la orden sea Hit       {          if(!m_trade.BuyStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))// usar "ORDER_TIME_GTC" cuando la fecha de expiración = 0          Print(__FUNCTION__,"--> Error de OrderSend ", m_trade.ResultComment());       }    }    } 3.2 Calcular Volumen //+------------------------------------------------------------------+ //| CALCULAR VOLUMEN                                                 | //+------------------------------------------------------------------+ // Definimos la función para calcular el tamaño de la posición y devolver el lote a ordenar. double CalculateVolume() {    double LotSize = 0;    if(isVolume_Percent == false) {       LotSize = Inpuser_lot;      }    else {       LotSize = (InpRisk) * m_account.FreeMargin();       LotSize = LotSize /100000;       double n = MathFloor(LotSize/Inpuser_lot);       //Comment((string)n);       LotSize = n * Inpuser_lot;              if(LotSize < Inpuser_lot)          LotSize = Inpuser_lot;       if(LotSize > m_symbol.LotsMax()) LotSize = m_symbol.LotsMax();       if(LotSize < m_symbol.LotsMin()) LotSize = m_symbol.LotsMin();    }      //---    return(LotSize); }3.3 El EA tiene la función "Trailing Stop",  SL cambiará cada vez que el precio cambie (hacia abajo) //+------------------------------------------------------------------+ //| TRAILING STOP                                                    | //+------------------------------------------------------------------+ void TrailingStop() {    double SL_in_Pip = 0;    for(int i = PositionsTotal() - 1; i >= 0; i--) {       if(m_position.SelectByIndex(i)) {    // selecciona las órdenes por índice para acceder a sus propiedades                  if((m_position.Magic() == InpMagicNumber) && (m_position.Symbol() == m_symbol.Name())) {             // Para orden de compra             if(m_position.PositionType() == POSITION_TYPE_BUY) {                //-- Calcular SL cuando el precio cambia                SL_in_Pip = NormalizeDouble(Bid - m_position.StopLoss(), _Digits) / Pips2Double;                if(SL_in_Pip > InpSL_Pips) {                   double newSL = NormalizeDouble(Bid - InpSL_Pips * Pips2Double, _Digits);                                      if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> Error de OrderModify ", m_trade.ResultComment());                    continue                   }            }             }             // Para orden de venta             else if(m_position.PositionType() == POSITION_TYPE_SELL) {                //-- Calcular SL cuando el precio cambia                SL_in_Pip = NormalizeDouble(m_position.StopLoss() - Bid, _Digits) / Pips2Double;            if(SL_in_Pip > InpSL_Pips){                   double newSL = NormalizeDouble(Bid + (InpSL_Pips) * Pips2Double, _Digits);                   if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> Error de OrderModify ", m_trade.ResultComment());                      //continue;                 }            }             }       }     }   }       //--- Modificar orden pendiente      for(int i=OrdersTotal()-1; i>=0; i--) {// devuelve el número de órdenes actuales       if(m_order.SelectByIndex(i)) {      // selecciona la orden pendiente por índice para acceder a sus propiedades          if(m_order.Symbol() == m_symbol.Name() && m_order.Magic()==InpMagicNumber) {             if(m_order.OrderType() == ORDER_TYPE_BUY_STOP) {                SL_in_Pip = NormalizeDouble(Bid - m_order.StopLoss(), _Digits) / Pips2Double;                                   if(SL_in_Pip < InpSL_Pips/2) {                   double newOP = NormalizeDouble(Bid + (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP + InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Bid - (InpSL_Pips/2) * Pips2Double, _Digits);                                      if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Modificar orden pendiente error!", m_trade.ResultComment());                      continue                     }               }             }       }       else if(m_order.OrderType() == ORDER_TYPE_SELL_STOP) {                SL_in_Pip = NormalizeDouble(m_order.StopLoss() - Ask, _Digits) / Pips2Double;                           if(SL_in_Pip < InpSL_Pips/2){                   double newOP = NormalizeDouble(Ask - (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP - InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Ask + (InpSL_Pips/2) * Pips2Double, _Digits);                                      if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Modificar orden pendiente error!", m_trade.ResultComment());                      //continue                     }               }                   }       }     }   }    }

2023.06.12
Niveles Martingala para la Gestión de Dinero en MetaTrader 5
MetaTrader5
Niveles Martingala para la Gestión de Dinero en MetaTrader 5

¡Hola, traders! Hoy quiero hablarles sobre un algoritmo de gestión de dinero que puede hacer maravillas en sus operaciones: el EA Martingala. Este sistema utiliza un enfoque de multiplier para abrir y cerrar posiciones, ayudándote a maximizar tus ganancias. Si estás listo para optimizar tus operaciones, sigue estos pasos: Ejecuta el EA antes de abrir cualquier posición para obtener los mejores resultados. Utiliza el "MartingaleEA-5Levels" en cualquier gráfico que desees. Asegúrate de que la opción "Modo Martingala" esté activada. Ingresa el nombre de los símbolos, como EURUSD o GBPUSD. Selecciona un multiplicador de martingala y colócalo en el campo de "Multiplicador de Volumen Martingala". Por ejemplo, si colocas 2, y el volumen de la primera posición es de 1 lote, la siguiente posición se abrirá con 2 lotes y la tercera con 4 lotes. Este EA puede abrir un máximo de 5 posiciones de martingala, así que establece un número entre 1 y 5 en el campo de "Número de Operaciones Martingala". En los campos de distancia (distancia 1 a distancia 5), coloca los pips o puntos que deseas entre cada posición que se abra. En el campo de "Cerrar todas las posiciones cuando el beneficio total sea", coloca un número como 100. Cuando todas las posiciones de martingala alcancen $100, se cerrarán automáticamente. En el campo de "Cerrar todas las posiciones cuando la pérdida total sea", coloca un número como -500. Cuando todas las posiciones de martingala alcancen -$500, se cerrarán todas las posiciones abiertas. ¡Así que ya lo sabes! Utiliza este EA para gestionar tus operaciones y aumentar tus posibilidades de éxito en el trading. ¡Mucha suerte y a operar!

2023.05.24
Gestión Dinámica de Stop Loss y Objetivos de Ganancia en MetaTrader 5
MetaTrader5
Gestión Dinámica de Stop Loss y Objetivos de Ganancia en MetaTrader 5

¿Te gustaría mejorar tu estrategia de gestión de riesgos en MetaTrader 5? En este artículo, te presento un código que actúa como un sistema de gestión de riesgos para un Asesor Experto (EA) que maneja operaciones existentes basándose en parámetros de entrada específicos. Aquí te dejo una breve explicación del código: Se incluyen los archivos de encabezado necesarios para las clases de información de operaciones y símbolos. Se definen los parámetros de entrada, como el porcentaje de riesgo, el porcentaje de ganancia y los puntos de stop loss dinámico. Se declaran variables globales para los objetos de información de operaciones y símbolos. La función OnInit inicializa el objeto de información del símbolo y verifica si hay errores. La función OnDeinit no realiza ninguna acción en este caso. La función OnTick se llama cada vez que se recibe un nuevo tick, y esta a su vez llama a la función CheckTrades. La función CheckTrades itera a través de todas las posiciones abiertas y verifica si la posición pertenece al símbolo actual. Si es así, calcula la ganancia actual y determina si se han alcanzado los umbrales de ganancia o pérdida. Si se alcanza alguno de estos umbrales, cierra la posición. Si no se alcanza ninguno de los umbrales, el código verifica si el tipo de posición es una orden de compra o venta y actualiza el nivel de stop loss con un stop loss dinámico. Si el nuevo nivel de stop loss es más favorable que el actual, se modifica la posición con el nuevo nivel de stop loss. Este código ofrece una estrategia de gestión de riesgos sencilla para manejar operaciones existentes, ajustando dinámicamente el nivel de stop loss y cerrando operaciones cuando se alcanzan los umbrales de ganancia o pérdida.

2023.04.28
Asesor Experto para Abrir Múltiples Órdenes de Compra y Venta en MetaTrader 5
MetaTrader5
Asesor Experto para Abrir Múltiples Órdenes de Compra y Venta en MetaTrader 5

¡Hola, traders! Hoy les traigo un Asesor Experto (EA) para MetaTrader 5 (MT5) que les facilitará abrir múltiples órdenes de compra y venta según su preferencia. Este EA cuenta con variables de entrada que permiten definir el número de órdenes, el porcentaje de riesgo por operación, el stop loss, el take profit y el deslizamiento. Además, incorpora una interfaz de usuario sencilla con botones de Compra y Venta que activan la apertura de las órdenes que especifiquen. Así que, no te preocupes por complicaciones, ¡es muy fácil de usar! El EA calcula el tamaño de lote adecuado en función del porcentaje de riesgo y el stop loss que hayas configurado. También verifica el spread en relación al deslizamiento configurado antes de ejecutar las órdenes. Así, abrirá órdenes de compra si el precio promedio está por encima del precio de oferta actual y órdenes de venta si está por debajo del precio de demanda. Cuando hagas clic en el botón de Compra o Venta, el EA abrirá el número de órdenes que hayas especificado, aplicando el tamaño de lote calculado, así como el stop loss y el take profit que hayas definido. Es importante mencionar que este EA es un ejemplo básico y puede que no sea adecuado para operar en cuentas reales sin modificaciones y optimizaciones adicionales. Siempre es recomendable probar cualquier algoritmo de trading en un entorno seguro, como una cuenta demo, antes de arriesgar tu capital real.

2023.04.27
CheckTrades: Tu Asesor para Gestionar Riesgos en MetaTrader 5
MetaTrader5
CheckTrades: Tu Asesor para Gestionar Riesgos en MetaTrader 5

¡Hola, traders! Hoy vamos a hablar de CheckTrades, un script en MQL5 diseñado para MetaTrader 5 que se centra en la gestión de riesgos. Su función principal es cerrar posiciones abiertas una vez que alcanzan un umbral de ganancias o pérdidas definido por el usuario, calculado como un porcentaje del saldo de la cuenta. Es importante resaltar que este EA no genera señales de entrada ni reglas de tiempo en el mercado; su propósito es proteger tus inversiones cerrando posiciones cuando se cumplen ciertos criterios de rentabilidad o pérdida. Variables Externas en el Código RiskPercentage: Esta variable representa la máxima pérdida permitida por operación como un porcentaje del saldo de la cuenta. Si la pérdida actual de una posición abierta alcanza este porcentaje, la posición se cerrará para limitar el riesgo. ProfitPercentage: Esta variable indica la ganancia deseada por operación en porcentaje del saldo de la cuenta. Cuando la ganancia actual de una posición abierta llega a este porcentaje, se cerrará la posición para asegurar las ganancias. Lo bueno de este EA es que se puede aplicar a cualquier símbolo o marco temporal, ya que se enfoca en la gestión de riesgos y no depende de indicadores de mercado específicos. Sin embargo, ten presente que debe combinarse con una estrategia de trading que incluya señales de entrada y otras reglas de gestión de operaciones para que sea un sistema de trading completo. Si decides usar este código como un archivo de inclusión (colocándolo en la carpeta MQL5\Include), su objetivo principal será la gestión de riesgos, cerrando posiciones basadas en los umbrales de ganancias y pérdidas que definas. Puedes combinar este archivo de inclusión con otros que cumplan funciones específicas, como calcular el tamaño de la posición en función del riesgo de la cuenta, trailing stop-loss, y más. Para ello, utiliza la directiva #include en tu archivo principal de EA para incluir este archivo y luego llama a la función CheckTrades() cuando necesites gestionar las posiciones abiertas.

2023.04.25
Primero Anterior 4 5 6 7 8 9 10 11 12 13 14 Siguiente Último