Question: ¿Qué significa el error «No hay suficiente dinero» en las plataformas MT4/MT5?
Table of Contents
- «No hay suficiente dinero» en MT4/MT5: qué significa, las causas exactas y las soluciones que funcionan
- Lo que comprueba la plataforma antes de rechazar una operación
- Por qué ocurre: las causas precisas
- Qué no es (y por qué es importante la distinción)
- Soluciones exactas que eliminan el error
- Escenarios prácticos y la resolución decisiva
- Manual para desarrolladores (MT4/MT5) para hacer desaparecer el error
- MT4 frente a MT5: las pequeñas diferencias que importan
- Una lista de verificación breve y fiable
- Por qué estos pasos eliminan el error de forma definitiva
«No hay suficiente dinero» en MT4/MT5: qué significa, las causas exactas y las soluciones que funcionan
«No hay suficiente dinero» es la forma sencilla en que MetaTrader indica que su margen libre es insuficiente para la operación que está intentando realizar (o el volumen al que está intentando aumentar). En MT4, esto aparece como error 134 – ERR_NOT_ENOUGH_MONEY
cuando un programa envía la orden; en MT5, el servidor de operaciones devuelve TRADE_RETCODE_NO_MONEY
(10019). En ambas plataformas, el significado es idéntico: el capital disponible de su cuenta no puede cubrir el margen que el servidor requiere para ese símbolo, en ese tamaño, en este momento.
Lo que comprueba la plataforma antes de rechazar una orden
Cuando envía una orden de mercado, una orden pendiente o una solicitud para aumentar el tamaño de la posición, el terminal (y el servidor) calculan el margen requerido para ese instrumento y volumen exactos, utilizando la configuración del contrato del símbolo y el apalancamiento de su cuenta. Si el cálculo muestra que Equidad − Margen actual < Nuevo margen requerido, la solicitud se rechaza con el mensaje «No hay suficiente dinero». MT5 lo documenta explícitamente y expone las definiciones utilizadas en la pestaña «Operaciones»: Margen es «el dinero necesario para cubrir las posiciones abiertas y las órdenes pendientes», Margen libre es Capital − Margen, y Nivel de margen es Capital / Margen × 100 %.
El cálculo básico depende del tipo de instrumento. La ayuda de MT5 especifica fórmulas canónicas, por ejemplo, margen de Forex = volumen (lotes) × tamaño del contrato ÷ apalancamiento; para los contratos negociados en bolsa y muchos CFD, las especificaciones de precio y tick entran en la fórmula (por ejemplo, volumen × tamaño del contrato × precio / Apalancamiento, o específico del índice Volumen × Tamaño del contrato × Precio × Valor del tick / Tamaño del tick). Estos son los valores que utiliza el servidor para decidir si tiene suficiente margen para continuar.
Para los desarrolladores, MT5 proporciona OrderCalcMargin()
para que pueda calcular el margen exacto requerido (devuelto en la divisa de su cuenta) antes de enviarlo. MT4 y MT5 también exponen las propiedades por símbolo y los campos de la cuenta para comprender los modos y umbrales de margen.
Por qué ocurre: las causas precisas
- Su volumen exige más margen del que su capital libre puede proporcionar
- La forma más rápida de cometer este error es simplemente solicitar demasiados lotes en relación con el tamaño del contrato y el apalancamiento. Un ejemplo clásico de Forex de las guías de los brókers: para EURUSD, Margen requerido = 100 000 (contrato) × Lotes ÷ Apalancamiento × Precio EURUSD si es necesario, y luego se convierte a la divisa de la cuenta. Si esa cantidad supera su margen libre, la orden se rechaza.
- Está operando con un símbolo con un modelo de margen más alto de lo que suponía
- Los CFD sobre índices, energías, metales, acciones y futuros suelen utilizar fórmulas de margen basadas en el precio y en los ticks, o valores específicos de margen inicial/de mantenimiento. El mismo tamaño de lote en oro o en un índice puede requerir mucho más margen que un par de divisas importante. La referencia de margen de MT5 muestra estas diferentes calculadoras y cómo el margen inicial/de mantenimiento para los futuros anula los cálculos basados en el apalancamiento.
- MT5 reserva margen para órdenes pendientes (y algunos mercados lo reservan en el servidor)
- MT5 define
ACCOUNT_MARGIN_INITIAL
como fondos reservados para todas las órdenes pendientes, y la definición de la pestaña «Operaciones» establece que el margen cubre las posiciones abiertas y las órdenes pendientes. Esa cantidad reservada reduce el margen libre y contribuye directamente a «No hay suficiente dinero». Las implementaciones de ECN también documentan públicamente la reserva del lado del servidor para las órdenes pendientes. - Usted está en modo cobertura y el mercado aplica un margen cubierto
- En MT5, en las cuentas de cobertura, el servidor puede aplicar un margen cubierto específico para compensar posiciones. Las propiedades de los símbolos, como
SYMBOL_MARGIN_HEDGED
, definen cuánto margen se sigue necesitando para la segunda parte. Si la cuenta no proporciona una compensación completa o aplica un margen cubierto absoluto, su margen libre puede agotarse antes de lo esperado y la plataforma devuelve Sin dinero. - El capital es menor de lo que cree debido a pérdidas flotantes, comisiones, swaps o beneficios bloqueados
- El capital de MT5 incluye (o excluye) las ganancias/pérdidas flotantes y puede mostrar ganancias que están bloqueadas hasta el final del día, dependiendo de la configuración del mercado. El margen se calcula a partir del capital, no del saldo. Una fuerte pérdida no realizada o un cargo por comisión intradía pueden reducir a cero el margen libre justo antes de enviarlo.
Qué no es (y por qué es importante la distinción)
- No es un problema de disponibilidad de precios (Cotizaciones fuera de servicio).
- No es un bloqueo de sesión/calendario (Mercado cerrado).
- No es un bloqueo de la canalización de órdenes (El contexto comercial está ocupado).
«No hay suficiente dinero» es estrictamente un resultado de riesgo y margen. La solución siempre es cambiar el cálculo del riesgo y el margen de la solicitud, no volver a intentarlo o esperar.
Soluciones exactas que eliminan el error
- Ajuste el volumen al símbolo y a la cuenta
Calcule el margen necesario para la operación antes de enviarla y elija un tamaño de lote que deje un margen de seguridad. La funciónOrderCalcMargin()
de MT5 devuelve el requisito en la divisa de depósito; en MT4, las constantesMarketInfo()
muestran los modos de margen y los requisitos por lote que le permiten escalar con precisión (por ejemplo,MODE_MARGINREQUIRED
,MODE_MARGINCALCMODE
,MODE_MARGININIT
,MODE_MARGINMAINTENANCE
,MODE_MARGINHEDGED
). Utilícelas para determinar el volumen de forma determinista. - Tenga en cuenta los modelos de margen específicos de cada instrumento
Espere fórmulas basadas en el apalancamiento en la mayoría de las divisas al contado; espere fórmulas dependientes del precio o iniciales/de mantenimiento en muchos CFD y futuros. La guía oficial de márgenes de MT5 proporciona las fórmulas; construya su dimensionamiento en torno a ellas para que la calculadora del servidor y sus expectativas coincidan exactamente. - Deje espacio para órdenes pendientes y posiciones cubiertas
Si realiza entradas con órdenes pendientes o ejecuta estrategias de cobertura, recuerde: el margen reservado para esas instrucciones reduce el margen libre. MT5 muestraACCOUNT_MARGIN_INITIAL
para que pueda medir cuánto hay ya reservado; las propiedades del símbolo definen el margen cubierto si abre una posición compensatoria. Trate esos números como restricciones presupuestarias estrictas. - Tamaño con realidad patrimonial, no saldo
Su patrimonio (saldo ± P/L flotante − comisión ± cualquier importe bloqueado) es el punto de partida real para el margen libre, según las definiciones de la plataforma. Si tiene pérdidas o comisiones intradía, reduzca primero el volumen solicitado o la exposición y, a continuación, envíe la nueva operación.
Escenarios prácticos y la resolución decisiva
- Una orden de oro de 1,00 lotes se rechaza con el mensaje «No hay suficiente dinero».
El oro suele utilizar modelos vinculados al precio o de margen inicial que eclipsan los requisitos de FX. Aplique la fórmula del instrumento de la guía de MT5 y reduzca el volumen hasta queOrderCalcMargin
devuelva un requisito cómodamente por debajo de Equity − Margin. - Una nueva operación con el EURUSD falla a pesar de que el saldo parece suficiente.
Ya ha realizado varias órdenes pendientes y la plataforma reserva margen para ellas. Su ACCOUNT_MARGIN_INITIAL más el margen de la posición abierta dejan muy poco margen libre para la nueva orden. Cancele o reduzca las órdenes pendientes, o reduzca el tamaño del nuevo lote, y vuelva a enviarlo. - Se rechaza una segunda etapa cubierta en MT5.
El símbolo define un margen cubierto; añadir la operación de compensación sigue requiriendo una cantidad monetaria definida. ConsulteSYMBOL_MARGIN_HEDGED
y presupuéstelo al planificar el volumen de la segunda parte. - Un programa muestra el error 134 de MT4 solo en las ventas.
El margen del lado de la venta puede diferir ligeramente si el modelo del bróker utiliza factores dependientes del precio o de la oferta/demanda; el resultado sigue siendo el mismo: el margen requerido para ese lado excede el margen libre. Corrija el cálculo o reduzca el tamaño del lote para queOrderSend
se borre. Los hilos de la comunidad ilustran este síntoma exacto.
Guía para desarrolladores (MT4/MT5) para hacer desaparecer el error
- 1) Cálculo previo del margen:
– MT5: llame aOrderCalcMargin(order_type, symbol, lots, price, margin_out)
y utilice el valor devuelto para aceptar/rechazar el volumen localmente.
– MT4: lee las constantes de margen por símbolo a través deMarketInfo()
para calcular el margen requerido para el tamaño de lote previsto.
El objetivo es enviar solo las solicitudes que el servidor aceptará. - 2) Presupuesto para pendientes y reglas de cobertura:
– InspeccioneAccountInfoDouble(ACCOUNT_MARGIN_INITIAL)
para ver el margen reservado (pendientes).
– LeaSYMBOL_MARGIN_HEDGED
y las propiedades relacionadas para saber cuánto costará una posición de compensación.
A continuación, dimensione la siguiente acción para que el total se ajuste al presupuesto. - 3) Respete el modo de cálculo del instrumento:
MT5 enumera múltiples modelos de margen (Forex, contratos, índices, futuros). Utilice las fórmulas documentadas para el modo de cálculo de operaciones del símbolo, de modo que su estimación refleje la del servidor. - 4) Falla pronto, no en el servidor:
Si tu comprobación previa muestra un margen libre < margen requerido + buffer, no envíes. Pon la acción en cola hasta que mejore el capital o se reduzca el volumen. (Esto también mantiene los registros limpios y evita reintentos con límite de velocidad). - 5) Muestre al usuario el cuello de botella:
En herramientas/EA, muestre: Equidad, Margen, Margen libre,ACCOUNT_MARGIN_INITIAL
(MT5) y el margen requerido por orden. Los operadores dejan de recibir el error 134/10019 una vez que ven qué es lo que está consumiendo su presupuesto.
MT4 frente a MT5: las pequeñas diferencias que importan
- Códigos de error: MT4 utiliza 134 /
ERR_NOT_ENOUGH_MONEY
; MT5 devuelveTRADE_RETCODE_NO_MONEY
y ofrece funciones de comprobación previa más completas.li> - Calculadoras integradas:
OrderCalcMargin()
de MT5 proporciona el margen necesario en la divisa de la cuenta para una operación hipotética; MT4 se basa en las propiedades del símbolo/cuenta y en la aritmética de su código. - Presupuestación de órdenes pendientes: los campos de la cuenta de MT5 incluyen explícitamente el margen reservado para órdenes pendientes en el modelo de la plataforma; los servidores ECN documentan públicamente reservas similares en cuentas reales.
- Detalles de la cobertura: MT5 detalla el margen cubierto a través de
SYMBOL_MARGIN_HEDGED
y propiedades relacionadas; utilícelas para evitar sorpresas al añadir posiciones opuestas.
Una lista de verificación breve y fiable
- Calcule el tamaño de la orden utilizando la fórmula documentada del símbolo; en Forex es Lotes × Tamaño del contrato ÷ Apalancamiento (ajustado al precio/divisa cuando corresponda).
En muchos CFD, el precio y los ticks forman parte del cálculo. - Confirme que el margen libre es suficiente antes de enviar: Margen libre = Capital − Margen, y el Margen ya incluye la cobertura de las órdenes pendientes en la contabilidad de la plataforma.
- Presupuesto para coberturas: si abre una posición compensatoria, incluya el margen cubierto de las propiedades del símbolo.
- Recuerde la realidad del capital: las pérdidas flotantes, las comisiones y cualquier beneficio bloqueado reducen lo que puede utilizar ahora.
- Automatice la comprobación previa: utilice
OrderCalcMargin()
(MT5) o constantes de margen (MT4) para que solo se envíen las órdenes viables.
Por qué estos pasos eliminan el error de forma definitiva
El servidor rechaza las órdenes con el mensaje «No hay suficiente dinero» solo cuando el cálculo del margen requerido supera su capacidad libre. La plataforma publica las fórmulas y los campos exactos que utiliza, y MT5 incluso ofrece una función específica para calcular los requisitos en la divisa de su depósito. Cuando dimensiona las órdenes con esos mismos datos, tiene en cuenta las reservas de órdenes pendientes y el margen cubierto, y basa sus decisiones en el capital en lugar del saldo, la solicitud que envía ya cumple el umbral del servidor. En ese momento, el error 134 / TRADE_RETCODE_NO_MONEY
deja de aparecer, ya que sus solicitudes coinciden al centavo con los controles de riesgo de la plataforma.
- Close