Error al importar un Expert Advisor

hola, queria dejar este problema que me esta dando la plataforma. intento crear robot legendario. me da error.
intento dar un prompt a la ia para crear un bot error, por cantidad de caracteres.

intento importar un mq5 error nuevamente. no se que puede estar pasando. me puede ayudar porfavor a resolver.

nota: a pesar de no importar el mq5 me descontó los 25 creditos.

Hola,

El error de bot Legendario puede haber sido un error puntual de la API de la IA o alguna interferencia de una extensión del navegador. Lo he comprobado todo y funciona con normalidad:

El mensaje al importar un EA es porque el EA era demasiado extenso y no pudo procesarse. Debería tener muchísimas lineas de código y por protección salta el time out.

Lo voy a revisar con el equipo para ver una forma eficiente de procesar este tipo de archivos más extensos de lo normal.

No obstante, si quieres, manda un reporte desde la app al equipo de soporte técnico con lo sucedido, lo revisarán al detalle y te devolverán los créditos utilizados sin problemas para que puedas volver a generar con ellos.

Un saludo,

Ignacio

:rocket: Solucionado

Hemos mejorado la herramienta Forja para que puedas importar Expert Advisors más grandes y complejos con más margen de tiempo, el límite de tamaño pasa de 500 KB a 1,5 MB, el tiempo máximo de espera se amplía a 6 minutos y la IA dispone de más tiempo para analizar EAs extensos.

Además, el sistema ahora solo te descuenta créditos cuando la conversión termina con éxito, si hay un error, timeout o fallo del servicio, no se consumen créditos y verás un mensaje claro indicándolo. Los mensajes de error se han ajustado para que sea más fácil saber qué ha pasado y cuánto puede tardar la operación.

Ahí lo llevas:

Cualquier cosa me dices.

Un saludo,

Ignacio

1 me gusta

Ignacio, ya mande el reporte.

es posible que se pueda extender el limite de caracteres que se puede enviar a la ia ?
o quizas subir un txt y que lo pueda interpretar. seria ideal.

Hemos escrito a la vez, justo encima tienes el mensaje.

gracias ignacio por la pronta solucion. son un equipo admirable la verdad. :sports_medal:

solo faltaria tocar el punto de construir con la ia a traves de prompt.
te comentaba que quizas una opcion seria mandarle un txt.
ya que si intento mandarle el prompt por el chat da error por exceso de caracteres.

2 Me gusta

Ignacio, consulta sobre el tema de importacion de mq5. deberia el sistema dejar todos los nodos unidos correctamente al crear el diagrama no ? porque en mi caso no a sucedido.
porfavor revisar. tambien le pedi a copilot que repara los errores y no lo hizo.

de todas maneras lo reporte.

Hola,

gracias ignacio por la pronta solucion. son un equipo admirable la verdad. :sports_medal:

solo faltaria tocar el punto de construir con la ia a traves de prompt.
te comentaba que quizas una opcion seria mandarle un txt.
ya que si intento mandarle el prompt por el chat da error por exceso de caracteres.

Esto no es necesario, no tienes que proporcionarle ningún prompt a Chat AI para diseñar y construir bots, no es un chat GPT al que por ejemplo le podrías mandar una foto de tu nevera y pedirle que te diseñe la cena, o una foto de un coche y que te diga que modelo es etc. A un chat GPT genérico, necesitas ponerlo en contexto para que sepa que debe hacer o que se espera de el.

Chat AI es un constructor de bots, ya sabe lo que se espera de el: Diseñar y construir bots de trading.

No necesitas enviarle un prompt de cientos de lineas, simplemente explicarle la estrategia que quieres en un o dos párrafos, o diez si quieres ser muy específico, pero es necesario más. Simplemente es contarle la estrategia como se la contarías a un compañero tomando un café.

Ejemplo, imagina que vas a una carnicería, le dirías al carnicero:

“Quiero que actues como un carnicero profesional, tu rol es el de un carnicero. Quiero que cojas el cuchillo adecuado para filetear pechugas de pollo, no otro, debes coger el de filetear….”

Seguramente no, el carnicero ya sabe que es un carnicero y sabe hacer su trabajo, sencillamente le dices:

“Quiero un kilo de pechugas de pollo fileteadas”

Lo mismo pasa con Chat AI, ya tiene el contexto y las instrucciones de que se espera de el y como debe ejecutar su función, solo tienes que decirle que es lo que quieres.

Si quieres, dime que es lo que intentas diseñar y lo vemos juntos.

Ignacio, consulta sobre el tema de importacion de mq5. deberia el sistema dejar todos los nodos unidos correctamente al crear el diagrama no ? porque en mi caso no a sucedido.
porfavor revisar. tambien le pedi a copilot que repara los errores y no lo hizo.

de todas maneras lo reporte.

Respecto al error que comentas del exportador del diseño, lo acabo de probar personalmente y funciona bien, no obstante, lo iremos vigilando para intentar reproducir el error que cometas:

Sobre Copilot AI, lo que comentas es totalmente normal. No existe a día de hoy ninguna IA (ni creo que exista en muchas décadas) que sea capaz de ejecutar una función al 100%. Siempre hay un margen pequeño para error, como con las personas, por ello requiere de supervisión.

Es una herramienta muy potente con los últimos modelos de IA más avanzados del mercado, no obstante, ni aun así es 100% infalible, no porque tenga un fallo de diseño, si no porque tal efectividad del 100% no existe. Si has utiliza modelos de IA (imagino que si) entenderás de lo que te hablo, por lo que no me extiendo más allá.

Copilot AI tiene un índice de efectividad del 92%, es alto, pero evidentemente no es el 100%. Te podría decir que si, que es infalible, pero te estaría mintiendo, porque no lo es. Las cosas como son.

Esto quiere decir que hasta el 92% de sus tareas las hará bien pero tiene un margen que requerirá supervisión.

No obstante, seguimos mejorando, analizándolo a diario y reforzando el aprendizaje, por lo que seguirá mejorando y siendo más efectivo cada día que pase.

Esta semana pasada mismo, ya había aprendido una nueva habilidad, la de reconocimiento de patrones en los diseños de nodos y ya es capaz de reconocer los tres nodos Top que se suelen utilizar en los diseños de las salidas de cada nodo en los mejores bots, por lo que sin saber que construir o diseñar, un usuario ya puede ver que nodo debería conectar a continuación:

Gracias por el feedback y por ayudarnos a seguir mejorando.

Un saludo,

Ignacio

3 Me gusta

ignacio. primero ante todo. te agradezco las respuestas que me das ya que sirve mucho aprender del sistema.

esto es lo que contiene mi bot pensado para XAUUSD basado en 6 agentes técnicos (RSI, MACD, BB, Stoch, EMA, Momentum) con sistema de scoring, filtros de Shannon (entropía), ADX (régimen), MA200, control de horarios y noticias, y gestión con ATR, breakeven y trailing, más panel visual y control de PnL diario.

cuando paso la importacion quedaron varios nodos sin conexion y ademas siento que son muchisimos nodos :sweat_smile:. deben un poco mas de 30. creo que podria funcionar con menos sin ser un experto…

Hola,

Lo acabo de crear, esto es lo que le puse en el chat:

diseña un bot para bot pensado para XAUUSD basado en 6 agentes técnicos (RSI, MACD, BB, Stoch, EMA, Momentum) con sistema de scoring, filtros de Shannon (entropía), ADX (régimen), MA200, control de horarios y noticias, y gestión con ATR, breakeven y trailing, más panel visual y control de PnL diario.

Lo que ha creado:

:robot: Bot Multi-Agente Profesional para XAUUSD

Voy a diseñarte un sistema de 6 agentes técnicos con scoring avanzado, filtros de entropía, régimen de mercado, y gestión profesional completa.


:bar_chart: ARQUITECTURA DEL BOT

Este bot usa votación ponderada de 6 indicadores, con filtros inteligentes para operar solo en condiciones óptimas.


:link: FLUJO DE NODOS (33 nodos totales)

┌─────────────────────────────────────────────────────────┐
│  FASE 1: AGENTES TÉCNICOS (6 nodos)                     │
└─────────────────────────────────────────────────────────┘

1. indicator.rsi (period=14)
   └─► value (0-100)

2. indicator.macd (fast=12, slow=26, signal=9)
   ├─► main (línea MACD)
   └─► signal (línea señal)

3. indicator.bands (period=20, deviation=2.0)
   ├─► upper (banda superior)
   ├─► middle (banda media)
   └─► lower (banda inferior)

4. indicator.stochastic (kPeriod=5, dPeriod=3, slowing=3)
   ├─► main (%K)
   └─► signal (%D)

5. indicator.ma (period=50, maType=EMA, appliedPrice=PRICE_CLOSE)
   └─► value (EMA 50)

6. indicator.momentum (period=14, appliedPrice=PRICE_CLOSE)
   └─► value (momentum)

┌─────────────────────────────────────────────────────────┐
│  FASE 2: CONVERSIÓN A SEÑALES (12 nodos)                │
└─────────────────────────────────────────────────────────┘

7. indicator.currentPrice (priceType=PRICE_CLOSE)
   └─► value (precio actual)

8. logic.threshold (threshold=30, direction=BELOW)
   ← RSI[value]
   └─► result (RSI sobrevendido)

9. logic.threshold (threshold=70, direction=ABOVE)
   ← RSI[value]
   └─► result (RSI sobrecomprado)

10. logic.crossover (confirmationBars=1)
    ← MACD[main], MACD[signal]
    └─► signal (cruce alcista MACD)

11. logic.crossunder (confirmationBars=1)
    ← MACD[main], MACD[signal]
    └─► signal (cruce bajista MACD)

12. logic.comparison (operator=LESS_THAN)
    ← currentPrice[value], BB[lower]
    └─► result (precio toca BB inferior)

13. logic.comparison (operator=GREATER_THAN)
    ← currentPrice[value], BB[upper]
    └─► result (precio toca BB superior)

14. logic.threshold (threshold=20, direction=BELOW)
    ← Stoch[main]
    └─► result (Stoch sobrevendido)

15. logic.threshold (threshold=80, direction=ABOVE)
    ← Stoch[main]
    └─► result (Stoch sobrecomprado)

16. logic.comparison (operator=GREATER_THAN)
    ← currentPrice[value], EMA50[value]
    └─► result (precio > EMA50)

17. logic.comparison (operator=LESS_THAN)
    ← currentPrice[value], EMA50[value]
    └─► result (precio < EMA50)

18. logic.threshold (threshold=100, direction=ABOVE)
    ← Momentum[value]
    └─► result (momentum alcista)

┌─────────────────────────────────────────────────────────┐
│  FASE 3: SCORING PONDERADO (2 nodos)                    │
└─────────────────────────────────────────────────────────┘

19. logic.or (condición múltiple COMPRA)
    ← node_8[result]   (RSI<30: +20 puntos)
    ← node_10[signal]  (MACD cruce↑: +25 puntos)
    ← node_12[result]  (BB toca inferior: +15 puntos)
    ← node_14[result]  (Stoch<20: +15 puntos)
    ← node_16[result]  (Precio>EMA50: +15 puntos)
    ← node_18[result]  (Momentum>100: +10 puntos)
    └─► result (señal de compra)

20. logic.or (condición múltiple VENTA)
    ← node_9[result]   (RSI>70: +20 puntos)
    ← node_11[signal]  (MACD cruce↓: +25 puntos)
    ← node_13[result]  (BB toca superior: +15 puntos)
    ← node_15[result]  (Stoch>80: +15 puntos)
    ← node_17[result]  (Precio<EMA50: +15 puntos)
    └─► result (señal de venta)

┌─────────────────────────────────────────────────────────┐
│  FASE 4: FILTROS AVANZADOS (6 nodos)                    │
└─────────────────────────────────────────────────────────┘

21. indicator.entropy (period=20)
    └─► chaos (condition)
    └─► flow (condition)

22. indicator.adx (period=14)
    └─► value (fuerza de tendencia)

23. logic.threshold (threshold=25, direction=ABOVE)
    ← ADX[value]
    └─► result (tendencia confirmada)

24. indicator.ma (period=200, maType=SMA)
    └─► value (MA200)

25. logic.comparison (operator=GREATER_THAN)
    ← currentPrice[value], MA200[value]
    └─► result (precio > MA200 = sesgo alcista)

26. logic.timeFilter (mode=HOUR_RANGE, startHour=8, endHour=22)
    └─► allowed (horario permitido)

┌─────────────────────────────────────────────────────────┐
│  FASE 5: COMBINACIÓN DE FILTROS (2 nodos)               │
└─────────────────────────────────────────────────────────┘

27. logic.and (combinar filtros COMPRA)
    ← node_19[result]  (scoring compra)
    ← node_21[flow]    (entropía en flujo)
    ← node_23[result]  (ADX>25)
    ← node_25[result]  (precio>MA200)
    ← node_26[allowed] (horario permitido)
    └─► result (señal final de compra)

28. logic.and (combinar filtros VENTA)
    ← node_20[result]  (scoring venta)
    ← node_21[flow]    (entropía en flujo)
    ← node_23[result]  (ADX>25)
    ← node_26[allowed] (horario permitido)
    └─► result (señal final de venta)

┌─────────────────────────────────────────────────────────┐
│  FASE 6: GESTIÓN DE RIESGO (5 nodos)                    │
└─────────────────────────────────────────────────────────┘

29. indicator.atr (period=14, convertToPips=true, multiplier=2.0)
    └─► value (ATR en pips)
    └─► buySlPrice (SL dinámico compra)
    └─► buyTpPrice (TP dinámico compra)
    └─► sellSlPrice (SL dinámico venta)
    └─► sellTpPrice (TP dinámico venta)

30. risk.positionSizing (riskPercent=1.0, useEquity=true)
    └─► lotSize (tamaño calculado)
    └─► stopLossPips (SL calculado)

31. risk.breakeven (profitPoints=15, buffer=2)
    └─► (mueve SL a breakeven al ganar 15 pips)

32. risk.trailingStop (trailingMode=ATR, trailingValue=14, minProfit=20, atrMultiplier=1.5)
    └─► (trailing dinámico basado en ATR)

33. risk.maxDrawdown (maxDrawdownPercent=10, period=DAILY, action=STOP_TRADING)
    └─► limitReached (detiene trading si pérdida diaria >10%)

┌─────────────────────────────────────────────────────────┐
│  FASE 7: EJECUCIÓN (2 nodos)                            │
└─────────────────────────────────────────────────────────┘

34. action.buy
    ← node_27[result] (condition)
    ← node_30[lotSize] (lotSize)
    ← node_29[buySlPrice] (slPrice)
    ← node_29[buyTpPrice] (tpPrice)
    Parámetros: maxOrders=3, onePerBar=true, checkMargin=true

35. action.sell
    ← node_28[result] (condition)
    ← node_30[lotSize] (lotSize)
    ← node_29[sellSlPrice] (slPrice)
    ← node_29[sellTpPrice] (tpPrice)
    Parámetros: maxOrders=3, onePerBar=true, checkMargin=true

:gear: CONFIGURACIÓN DETALLADA DE CADA NODO

:bar_chart: AGENTES TÉCNICOS

1. indicator.rsi

  • period: 14
  • appliedPrice: PRICE_CLOSE
  • oversoldLevel: 30
  • overboughtLevel: 70
  • Peso en scoring: 20 puntos

2. indicator.macd

  • fastPeriod: 12
  • slowPeriod: 26
  • signalPeriod: 9
  • appliedPrice: PRICE_CLOSE
  • Peso en scoring: 25 puntos (el más importante)

3. indicator.bands (Bollinger Bands)

  • period: 20
  • deviation: 2.0
  • appliedPrice: PRICE_CLOSE
  • Peso en scoring: 15 puntos

4. indicator.stochastic

  • kPeriod: 5
  • dPeriod: 3
  • slowing: 3
  • maMethod: MODE_SMA
  • priceField: Low/High
  • Peso en scoring: 15 puntos

5. indicator.ma (EMA 50)

  • period: 50
  • maType: Exponential MA (1)
  • appliedPrice: PRICE_CLOSE
  • Peso en scoring: 15 puntos

6. indicator.momentum

  • period: 14
  • appliedPrice: PRICE_CLOSE
  • normalize: true
  • Peso en scoring: 10 puntos

:bullseye: FILTROS AVANZADOS

21. indicator.entropy

  • period: 20
  • Uso: Solo opera en estado “flow” (mercado ordenado)
  • Bloquea: Estados “chaos” (alta entropía)

22. indicator.adx

  • period: 14
  • Umbral mínimo: 25 (solo tendencias confirmadas)

24. indicator.ma (MA 200)

  • period: 200
  • maType: Simple MA (0)
  • Uso: Filtro de sesgo direccional (solo compra si precio > MA200)

26. logic.timeFilter

  • mode: HOUR_RANGE
  • startHour: 8
  • endHour: 22
  • Bloquea: Trading fuera de horario (evita gaps de apertura asiática)

:shield: GESTIÓN DE RIESGO

29. indicator.atr

  • period: 14
  • convertToPips: true
  • multiplier: 2.0
  • Uso: SL dinámico = 2×ATR, TP dinámico = 4×ATR (R:R 1:2)

30. risk.positionSizing

  • riskPercent: 1.0% (conservador)
  • useEquity: true
  • maxLeverage: 100 (control de apalancamiento)

31. risk.breakeven

  • profitPoints: 15 pips
  • buffer: 2 pips
  • onlyOnce: true

32. risk.trailingStop

  • trailingMode: ATR
  • atrPeriod: 14
  • atrMultiplier: 1.5
  • minProfit: 20 pips
  • adaptiveMode: true

33. risk.maxDrawdown

  • maxDrawdownPercent: 10%
  • period: DAILY
  • action: STOP_TRADING
  • warningLevel: 7%

:chart_increasing: SISTEMA DE SCORING (Puntuación Ponderada)

COMPRA (máximo 100 puntos)

  • RSI < 30: +20
  • MACD cruce alcista: +25
  • Precio toca BB inferior: +15
  • Stochastic < 20: +15
  • Precio > EMA50: +15
  • Momentum > 100: +10

VENTA (máximo 100 puntos)

  • RSI > 70: +20
  • MACD cruce bajista: +25
  • Precio toca BB superior: +15
  • Stochastic > 80: +15
  • Precio < EMA50: +15
  • (Momentum bajista no se usa para evitar scoring desequilibrado)

Umbral mínimo

  • Se requieren al menos 3 agentes activados simultáneamente
  • Con filtros (entropía + ADX + MA200) activados

:artist_palette: PANEL VISUAL (incluido en código generado)

El bot incluirá un panel on-chart con:

  • Scoring actual (0-100) para compra/venta
  • Estado de entropía (chaos/transition/flow)
  • ADX actual (con color verde si >25)
  • Posición vs MA200 (alcista/bajista)
  • PnL diario en tiempo real
  • Drawdown actual (alerta roja si >7%)
  • Próximas noticias (requiere calendario económico)

:fire: CARACTERÍSTICAS PROFESIONALES

:white_check_mark: Ventajas del diseño

  1. Scoring ponderado: Evita señales débiles (requiere 3/6 agentes)
  2. Filtro Shannon: Solo opera en mercados “ordenados”
  3. ADX obligatorio: Solo toma tendencias reales (>25)
  4. MA200 como sesgo: Evita operar contra la corriente principal
  5. Gestión ATR dinámica: SL/TP se adaptan a volatilidad
  6. Control de PnL diario: Detiene trading si pierde 10% del día

:warning: Consideraciones importantes

  1. XAUUSD es volátil: Ajusta multiplier del ATR si necesitas stops más amplios
  2. Horarios GMT: Configura timeFilter según tu broker (GMT+0, GMT+2, etc.)
  3. Noticias de impacto: Este bot NO tiene integración con calendario económico nativo (deberías añadir manualmente pausas en NFP, FOMC, etc.)
  4. Backtesting: Prueba primero en demo con datos históricos de al menos 6 meses

:rocket: PRÓXIMOS PASOS

  1. Constrúyelo: Dime “constrúyelo” y te genero el JSON para construcción automática
  2. Genera código: Dime “genera el código” y te doy el MQL4 completo con panel visual
  3. Ajustar parámetros: Si quieres cambiar algún valor (ej: riesgo 2% en vez de 1%, ATR multiplicador 3x, etc.)

¿Quieres que lo construya automáticamente en el canvas o prefieres revisar/modificar algo antes? :bullseye:

Ya me dices si es esto lo que querías crear y lo subo a la biblioteca de bots para que lo puedas descargar y modificar.

Un saludo,
Ignacio

si ignacio eso es lo que queria crear. favor de subirlo a la biblioteca de bots.
muchas gracias por tu tiempo.
pd: es para mt5.

si ignacio eso es lo que queria crear. favor de subirlo a la biblioteca de bots.
muchas gracias por tu tiempo.
pd: es para mt5.

Hola,

Subido, es el bot 000249:

Ya me dices que tal te va la estrategia.

Un saludo,

Ignacio

Ignacio, ya monte el bot. funciona de momento sin backtest.
estas son las primeras operaciones.

Genial :rocket:

¿En qué time frame lo estás ejecutando?

en m15 para mas movimiento. lo deje en h1 al comienzo pero es mas lenta la “ accion “ .

1 me gusta

Hola ignacio. tengo desactivado el calculo automatico de riesgo ( lote ) lo dejo en 0.02
y el bot abre posiciones en 0.01. no entiendo que puede ocasionar este “ error “.
ademas tiene algo en el codigo que hace el trailling stop muy pegado a la orden y no deja “ respirar “

aunque yo creo un set especifico, el bot ya tiene configurado eso de raiz.

Hola ignacio. tengo desactivado el calculo automatico de riesgo ( lote ) lo dejo en 0.02
y el bot abre posiciones en 0.01. no entiendo que puede ocasionar este “ error “.

Hola,

El bot 000249 tiene calculo de lotaje conectado:

Siempre prevalecen las conexiones sobre los parámetros.

Revisa a ver como lo tienes, cualquier cosa me dices.

Un saludo,

Ignacio

si esta con eso dinamico. me gustaria quitarlo.
estaba viendo si lo quitaba el atr se quedaba desconectado.

me puedes ayudar porfavor ignacio. disculpa las molestias.

Hola,

No hay problema, solo tienes que desconectar esta entrada de los nodos de Buy y Sell:

Cuando la desconectes, puedes eliminar los nodos de ese flujo, solo los de ese flujo que no fuesen a ningún otro lugar.

Un saludo,

Ignacio

Hola Ignacio. quite lo dinamico. pero luego de eso ahora abre operaciones sin sl ni tp.
y ahora en una sola operacion le puso sl. lo puedes modificar el que esta en la biblioteca ?