Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
35
Ranking:
(2)
Publicado:
AutoLot.mqh (0.97 KB) ver
AutoLot.mq5 (1.78 KB) ver
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

La función CalcularLote está diseñada para calcular automáticamente el tamaño del lote de negociación basándose en los principios de gestión del riesgo. Permite a un operador especificar el porcentaje del saldo de la cuenta que está dispuesto a arriesgar en una operación y determinar el volumen de posición óptimo en función de ello.

Sintaxis

double CalculateLot(double riskPercent, double stopLossPips);

Parámetros

Параметр        Тип     Описание
riskPercent     double  Процент от текущего баланса счета, которым трейдер готов рискнуть. Указывается в абсолютном значении (например, 2.0 = 2% от баланса).
stopLossPips    double  Расстояние до уровня Stop Loss в пунктах. Для 5-значных котировок указывается количество стандартных пунктов (например, 1000 = 1000 пунктов = 100 пипсов).

Valor de retorno

La función devuelve el volumen de lote normalizado ( doble ), que:

  • Se ajusta a las reglas de redondeo al paso de volumen ( VOLUME_STEP );

  • No supera el volumen máximo permitido ( VOLUME_MAX );

  • No sea inferior al volumen mínimo permitido ( VOLUME_MIN ).

Si el valor calculado supera los límites permitidos, la función devuelve un valor limitado (minLot o maxLot).

Algoritmo de funcionamiento

  1. Obtención de los parámetros de cuenta y símbolo

    • Saldo actual ( ACCOUNT_BALANCE )

    • Valor del tick ( SYMBOL_TRADE_TICK_VALUE )

    • Mínimo, máximo y paso de cambio de lote

  2. Cálculo del importe del riesgo en la divisa del depósito

    riskAmount = баланс × (риск% / 100)

  3. Cálculo del volumen del lote

    lotSize = riskAmount / (stopLossPips × tickValue)

  4. Normalización y validación

    • Redondeo al paso más próximo ( VOLUME_STEP )

    • Validación del valor mínimo y máximo

Ejemplos de utilización

Ejemplo 1 Uso básico en un Asesor Experto

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnTick()
{
   //--- Riesgo 1.5% del balance y stop loss 500 pips
   double lot = CalculateLot(1.5, 500);
   
   //--- Compruebe que el lote se calcula correctamente
   if(lot > 0.0)
     {
      //--- Obtener precios actuales
      double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
      
      //--- Calcular niveles
      double sl = ask - 500 * _Point;
      double tp = ask + 1500 * _Point;
      
      //--- Abrir una posición
      trade.Buy(lot, _Symbol, ask, sl, tp);
     }
}


Ejemplo 2. Uso en un script con comprobación de errores

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnStart()
{
   double riskPercent  = 2.0;   // Riesgo 2% del saldo
   double stopLossPips = 1000;  // Stop loss 1000 puntos
   
   double lot = CalculateLot(riskPercent, stopLossPips);
   
   //--- Información de salida sobre el cálculo
   Print("=== Resultados del cálculo del lote ===");
   Print("Saldo de cuenta: ", AccountInfoDouble(ACCOUNT_BALANCE));
   Print("Riesgo, %: ", riskPercent);
   Print("La cantidad de riesgo:", AccountInfoDouble(ACCOUNT_BALANCE) * riskPercent / 100.0);
   Print("Stop loss, puntos: ", stopLossPips);
   Print("Coste del tictac:", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE));
   Print("Lote calculado: ", lot);
   Print("================================");
   
   if(lot <= 0.0)
     {
      Alert("Error: Falló el cálculo del lote. Compruebe los parámetros de riesgo y stop loss".);
     }
}

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/71010

ZigZag Support and Resistance Detection ZigZag Support and Resistance Detection

ZigZag SNR Detection identifica los niveles de soporte y resistencia mediante puntos de pivote ZigZag.

To Close All Open Trades of Different Symbols To Close All Open Trades of Different Symbols

Detalles Técnicos Utiliza el OrderSend de MQL5 con TRADE_ACTION_DEAL para el cierre instantáneo del mercado a los precios Bid/Ask actuales. Incluye tolerancia al deslizamiento (10 puntos), coincidencia de volumen adecuada y preservación del número mágico. Bucles hacia atrás a través de las posiciones para evitar el cambio de índice durante la ejecución.

Accumulation/Distribution Accumulation/Distribution

El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.