Guía de pruebas y optimización de expert advisors de IA | Deriv Blog

Perfeccione su expert advisor de IA con técnicas de prueba adecuadas. Nuestra guía cubre problemas comunes, métodos de prueba y optimización de expert advisors para bots de trading confiables.

Por el equipo de Deriv · 21 April 2025 · 6 min de lectura

Share

Los expert advisors de trading con IA ya están aquí, pero usted aún necesita probarlos y refinarlos.

Si ya utilizó herramientas de IA como Claude o ChatGPT para crear un expert advisor para Deriv MT5 o un cBot para Deriv cTrader, ya va por buen camino. Pero incluso cuando el código parece correcto, todavía puede contener errores que afecten el funcionamiento del bot.

Antes de ejecutar su expert advisor (EA) en un mercado real, es importante probarlo y asegurarse de que funcione como usted espera.

En esta guía, revisaremos errores comunes de programación en EAs generados por IA, cómo corregirlos y consejos prácticos para mejorar el rendimiento de su bot.

Errores comunes de programación MQL5 con IA

Estos son algunos de los problemas más comunes que se encuentran en EAs generados por IA, junto con formas de corregirlos:

  • Error de identificador no declarado en MQL5

Este error aparece cuando el bot usa una variable o un nombre que no se definió correctamente, como omitir un parámetro o usar un nombre incorrecto en indicadores como iMA().

Corrección:
Revise los parámetros del indicador y asegúrese de que todos los nombres de las variables coincidan con lo que espera MetaEditor (la herramienta de programación de MT5).

  • Funciones de ejecución de operaciones Buy/Sell faltantes

Algunos bots generados por IA omiten la lógica esencial para abrir operaciones.

Corrección:
Agregue manualmente funciones básicas de ejecución de operaciones. Aquí tiene un ejemplo de una estructura básica para colocar una orden de compra:

void OpenBuy() { 

   MqlTradeRequest request; MqlTradeResult result; 

   request.action = TRADE_ACTION_DEAL; 

   request.type = ORDER_TYPE_BUY; 

   request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); 

   request.volume = 0.1; request.magic = 12345; 

   OrderSend(request, result); 

}

Asegúrese también de incluir lógica para órdenes de venta y definir las condiciones bajo las cuales deben colocarse las operaciones.

  • Condiciones de bucle incorrectas en Deriv cTrader

En Deriv cTrader, la lógica del bot debe ejecutarse dentro de funciones específicas como OnBar() o OnTick(). Estas se activan automáticamente cuando el mercado se mueve. Si su código se coloca fuera de estas secciones, por ejemplo, en el bucle incorrecto o en el ámbito global, no se ejecutará como se espera.

Corrección:

Asegúrese de que las barras y los ticks se gestionen dentro de OnBar() o OnTick(). Esto permitirá que su bot responda correctamente a nuevos ticks o barras durante el backtesting y el trading en vivo.

  • Cálculo incorrecto del tamaño del lote en función del porcentaje del saldo

Cuando la IA intenta establecer el tamaño del lote en función del saldo de su cuenta (por ejemplo, arriesgando un 2% por operación), puede omitir un detalle importante: el tamaño del contrato. Esto puede llevar a tamaños de lote inexactos. Esto no generará un error de código, pero en las pruebas verá tamaños de operación que no coinciden con sus ajustes de riesgo, lo que resultará en una exposición excesiva o insuficiente en operaciones en vivo.

Corrección:
Utilice una fórmula con un tamaño de lote que tenga en cuenta el tamaño del contrato, como:

//-----------------------------------------------------------------

double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);

double riskMoney = accountBalance * (RiskPercent / 100.0);

double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);

double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);

double pointValue = tickValue / tickSize;

double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);

if(contractSize > 0)

pointValue = pointValue / contractSize;

double lotSize = riskMoney / (StopLossPoints * pointValue);

double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);

double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);

double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);

lotSize = MathMax(lotSize, minLot);

lotSize = MathMin(lotSize, maxLot);

lotSize = MathFloor(lotSize / lotStep) * lotStep;

  • Otros errores

Si encuentra uno de estos errores, o cualquier otro, siempre puede pedir ayuda a su modelo de IA para identificar y corregir el problema.

Simplemente copie el mensaje de error y el código relevante, y luego compártalos con el modelo de IA. La mayoría de las veces, debería poder identificar el problema y ofrecer una corrección o sugerir posibles soluciones.

Consejo: Ejecute siempre un backtest antes de pasar a producción. Problemas como este no aparecen hasta que prueba la estrategia con datos reales del mercado.

Mejore su expert advisor generado por IA

Una vez que su bot funcione, puede hacer pequeños cambios para mejorar su rendimiento y estabilidad. Aquí tiene algunos trucos comunes para lograrlo:

  • Agregue lógica de manejo de errores para gestionar comportamientos inesperados durante alta volatilidad o problemas de conexión.
  • Use un stop-loss móvil para asegurar posibles ganancias cuando el mercado se mueva a su favor.
  • Haga backtesting de su estrategia con datos históricos para ver cómo habría funcionado.
  • Limpie y organice su código para mejorar la legibilidad y eficiencia. Esto hará que sea más fácil actualizarlo o solucionar problemas más adelante.

Consejo: Use el MetaEditor Debugger (en MT5) para probar cómo se ejecuta su bot paso a paso.

Por qué el backtesting de operaciones es fundamental

Los bots generados por IA son una excelente forma de automatizar su trading sin necesidad de programar desde cero. Pero incluso con IA, su estrategia aún necesita controles y ajustes humanos para funcionar bien en condiciones reales.

Antes de pasar a producción, tómese el tiempo para probarla a fondo y hacer pequeñas mejoras. Incluso correcciones menores pueden marcar una gran diferencia en la consistencia y eficacia con la que funciona su EA.

Join 3M+ global traders

Open an account in minutes and start trading the world's markets — forex, stocks, indices, and more.