{"id":1173,"date":"2026-09-17T09:09:55","date_gmt":"2026-09-17T07:09:55","guid":{"rendered":"https:\/\/antoniofernandez.net\/?p=1173"},"modified":"2026-10-23T13:29:52","modified_gmt":"2026-10-23T11:29:52","slug":"errores-al-programar-un-robot-de-trading","status":"publish","type":"post","link":"https:\/\/antoniofernandez.net\/copia-divi\/errores-al-programar-un-robot-de-trading\/","title":{"rendered":"Errores habituales al programar un robot de trading"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/antoniofernandez.net\/copia-divi\/wp-content\/uploads\/2026\/09\/15.-Errores-habituales-al-programar-un-robot-de-trading-1024x683.png\" alt=\"Errores al programar un robot de trading mas habituales\" class=\"wp-image-1175\" srcset=\"https:\/\/antoniofernandez.net\/copia-divi\/wp-content\/uploads\/2026\/09\/15.-Errores-habituales-al-programar-un-robot-de-trading-1024x683.png 1024w, https:\/\/antoniofernandez.net\/copia-divi\/wp-content\/uploads\/2026\/09\/15.-Errores-habituales-al-programar-un-robot-de-trading-300x200.png 300w, https:\/\/antoniofernandez.net\/copia-divi\/wp-content\/uploads\/2026\/09\/15.-Errores-habituales-al-programar-un-robot-de-trading-768x512.png 768w, https:\/\/antoniofernandez.net\/copia-divi\/wp-content\/uploads\/2026\/09\/15.-Errores-habituales-al-programar-un-robot-de-trading.png 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">La programaci\u00f3n de un robot de trading requiere comprobar la l\u00f3gica, las \u00f3rdenes, el riesgo y la ejecuci\u00f3n del sistema.<\/figcaption><\/figure>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-1 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Cuando hablamos de los errores al programar un robot de trading, el programar un robot de trading no consiste simplemente en convertir una estrategia manual en c\u00f3digo. <\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-2 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Para que un sistema automatizado pueda funcionar de forma coherente, es necesario transformar las reglas de entrada, salida, gesti\u00f3n de posiciones y control del riesgo en instrucciones precisas que el programa pueda interpretar sin ambig\u00fcedades.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-3 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Es importante tener en cuenta las <a href=\"https:\/\/www.cftc.gov\/es\/LearnAndProtect\/AdvisoriesAndArticles\/AITradingBots.html\" target=\"_blank\" rel=\"noreferrer noopener\">advertencia de la CFTC sobre los bots de trading<\/a>.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-4 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un peque\u00f1o error de programaci\u00f3n puede cambiar completamente el comportamiento de una estrategia. Una condici\u00f3n mal definida, un c\u00e1lculo incorrecto del tama\u00f1o de posici\u00f3n, una gesti\u00f3n deficiente de las \u00f3rdenes o una diferencia entre las condiciones del backtest y las del mercado real pueden producir resultados muy diferentes de los esperados.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-5 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, antes de utilizar un robot de trading, es importante comprobar no solamente si la estrategia parece rentable en determinadas pruebas, sino tambi\u00e9n si el c\u00f3digo ejecuta exactamente las reglas que se pretend\u00edan programar.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-6 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">En este art\u00edculo veremos los errores m\u00e1s habituales al programar un robot de trading, por qu\u00e9 pueden producirse y qu\u00e9 comprobaciones pueden ayudar a reducirlos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es un robot de trading?<\/h2>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-7 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot de trading es un programa inform\u00e1tico dise\u00f1ado para analizar determinadas condiciones del mercado y ejecutar acciones siguiendo unas reglas previamente definidas.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-8 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Dependiendo de su dise\u00f1o, puede encargarse de tareas como:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-9\">\n<li>Analizar el precio.<\/li>\n\n\n\n<li>Detectar determinadas condiciones de entrada.<\/li>\n\n\n\n<li>Colocar \u00f3rdenes.<\/li>\n\n\n\n<li>Establecer stop loss y take profit.<\/li>\n\n\n\n<li>Gestionar posiciones abiertas.<\/li>\n\n\n\n<li>Calcular el tama\u00f1o de la posici\u00f3n.<\/li>\n\n\n\n<li>Aplicar filtros horarios.<\/li>\n\n\n\n<li>Controlar determinadas condiciones de mercado.<\/li>\n\n\n\n<li>Registrar informaci\u00f3n sobre las operaciones.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-10 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">En plataformas como MetaTrader, estos sistemas suelen desarrollarse mediante programas conocidos como Expert Advisors o EA.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-11 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La automatizaci\u00f3n permite ejecutar reglas de manera sistem\u00e1tica, pero no elimina los problemas derivados de una estrategia mal dise\u00f1ada o de un c\u00f3digo incorrecto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 1. Programar una estrategia que no est\u00e1 suficientemente definida<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-12 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Uno de los primeros problemas aparece incluso antes de escribir una sola l\u00ednea de c\u00f3digo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-13 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una estrategia manual puede utilizar expresiones como:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-color has-link-color wp-elements-14 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">\"Entrar cuando el precio confirme la ruptura.\"<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-15 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Para una persona, esta frase puede tener cierto significado dependiendo del contexto. Para un ordenador, no es una instrucci\u00f3n suficientemente precisa.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-16 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El programador necesita saber, por ejemplo:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-17\">\n<li>Qu\u00e9 nivel debe romperse.<\/li>\n\n\n\n<li>Cu\u00e1ntos puntos debe superar el precio.<\/li>\n\n\n\n<li>Qu\u00e9 vela debe confirmar la ruptura.<\/li>\n\n\n\n<li>Qu\u00e9 ocurre si vuelve inmediatamente al nivel.<\/li>\n\n\n\n<li>En qu\u00e9 temporalidad se analiza.<\/li>\n\n\n\n<li>Cu\u00e1ndo se considera v\u00e1lida la se\u00f1al.<\/li>\n\n\n\n<li>Cu\u00e1ndo deja de ser v\u00e1lida.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-18 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Cuanto m\u00e1s ambigua sea la estrategia, m\u00e1s dif\u00edcil ser\u00e1 convertirla correctamente en un algoritmo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-19 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, antes de programar un robot conviene convertir las ideas discrecionales en reglas objetivas y comprobables.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 2. Confundir la estrategia con el robot<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-20 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La estrategia y el robot no son exactamente lo mismo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-21 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La estrategia define las reglas mediante las cuales se pretende tomar decisiones de trading.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-22 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El robot es la implementaci\u00f3n inform\u00e1tica de esas reglas.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-23 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Esto significa que una estrategia puede estar correctamente planteada y, sin embargo, el robot puede ejecutarla de manera diferente debido a errores de programaci\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-24 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo, una estrategia podr\u00eda indicar:<\/p>\n\n\n\n<ol style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-25\">\n<li>Detectar una ruptura.<\/li>\n\n\n\n<li>Esperar una confirmaci\u00f3n.<\/li>\n\n\n\n<li>Calcular el riesgo.<\/li>\n\n\n\n<li>Abrir la posici\u00f3n.<\/li>\n\n\n\n<li>Colocar el stop loss.<\/li>\n\n\n\n<li>Gestionar la operaci\u00f3n.<\/li>\n<\/ol>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-26 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Si el c\u00f3digo ejecuta el paso 4 antes de completar correctamente el paso 2, el problema no est\u00e1 necesariamente en la estrategia, sino en su implementaci\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-27 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Separar ambos conceptos facilita encontrar d\u00f3nde se encuentra realmente un problema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 3. Utilizar condiciones ambiguas<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-28 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los algoritmos necesitan condiciones concretas.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-29 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una condici\u00f3n como:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-color has-link-color wp-elements-30 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">\"El mercado est\u00e1 fuerte.\"<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-31 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">no puede programarse directamente.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-32 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Es necesario establecer qu\u00e9 variables determinan esa condici\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-33 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-34\">\n<li>pendiente de una media m\u00f3vil;<\/li>\n\n\n\n<li>distancia entre el precio y una media;<\/li>\n\n\n\n<li>estructura de m\u00e1ximos y m\u00ednimos;<\/li>\n\n\n\n<li>volatilidad;<\/li>\n\n\n\n<li>rango de las velas;<\/li>\n\n\n\n<li>ruptura de un nivel;<\/li>\n\n\n\n<li>volumen, cuando los datos disponibles sean adecuados para el mercado analizado.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-35 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El objetivo es transformar conceptos subjetivos en reglas medibles.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-36 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Cuanto m\u00e1s precisa sea la definici\u00f3n, m\u00e1s reproducible ser\u00e1 el comportamiento del robot.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 4. No controlar correctamente las \u00f3rdenes<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-37 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La gesti\u00f3n de \u00f3rdenes es una de las partes m\u00e1s delicadas de un robot.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-38 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un c\u00f3digo mal dise\u00f1ado puede intentar:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-39\">\n<li>abrir varias posiciones cuando solo deb\u00eda abrir una;<\/li>\n\n\n\n<li>enviar \u00f3rdenes duplicadas;<\/li>\n\n\n\n<li>modificar continuamente el stop loss;<\/li>\n\n\n\n<li>abrir una operaci\u00f3n en cada tick;<\/li>\n\n\n\n<li>cerrar una posici\u00f3n que ya hab\u00eda sido cerrada;<\/li>\n\n\n\n<li>operar sobre un s\u00edmbolo diferente del previsto.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-40 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ello, el robot debe comprobar siempre el estado actual de las \u00f3rdenes y posiciones antes de ejecutar una nueva acci\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-41 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una regla importante es no asumir que una orden se ha ejecutado correctamente simplemente porque el programa ha intentado enviarla.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-42 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El sistema debe comprobar la respuesta del servidor y gestionar adecuadamente los posibles errores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 5. No controlar los errores de ejecuci\u00f3n<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-43 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los mercados reales no funcionan exactamente como una simulaci\u00f3n ideal.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-44 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una orden puede ser rechazada, ejecutarse a otro precio o no poder modificarse en determinadas circunstancias.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-45 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Tambi\u00e9n pueden producirse problemas relacionados con:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-46\">\n<li>spread;<\/li>\n\n\n\n<li>liquidez;<\/li>\n\n\n\n<li>slippage;<\/li>\n\n\n\n<li>desconexiones;<\/li>\n\n\n\n<li>cambios en las condiciones de mercado;<\/li>\n\n\n\n<li>restricciones del broker;<\/li>\n\n\n\n<li>tama\u00f1o m\u00ednimo de lote;<\/li>\n\n\n\n<li>distancia m\u00ednima de stops;<\/li>\n\n\n\n<li>horarios de negociaci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-47 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot robusto debe contemplar estas situaciones.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-48 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">No basta con programar el escenario normal. Tambi\u00e9n es necesario decidir qu\u00e9 debe hacer el sistema cuando algo sale diferente de lo previsto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 6. Calcular mal el tama\u00f1o de la posici\u00f3n<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-49 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El tama\u00f1o de la posici\u00f3n es especialmente importante cuando el robot utiliza un porcentaje o cantidad fija de riesgo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-50 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un error en el c\u00e1lculo puede provocar que la posici\u00f3n sea mucho mayor o menor de lo previsto.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-51 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Para determinar correctamente el volumen pueden intervenir variables como:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-52\">\n<li>capital de la cuenta;<\/li>\n\n\n\n<li>porcentaje de riesgo;<\/li>\n\n\n\n<li>distancia del stop loss;<\/li>\n\n\n\n<li>valor del tick;<\/li>\n\n\n\n<li>tama\u00f1o del contrato;<\/li>\n\n\n\n<li>divisa de la cuenta;<\/li>\n\n\n\n<li>caracter\u00edsticas espec\u00edficas del instrumento.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-53 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Adem\u00e1s, el volumen calculado debe adaptarse a las restricciones del broker, como volumen m\u00ednimo, m\u00e1ximo y paso permitido.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-54 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por tanto, no conviene asumir que un mismo c\u00e1lculo sirve de forma id\u00e9ntica para todos los activos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 7. Ignorar los decimales y las caracter\u00edsticas del s\u00edmbolo<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-55 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los instrumentos financieros pueden tener diferentes formatos de precio.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-56 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo, un activo puede cotizar con:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-57\">\n<li>2 decimales;<\/li>\n\n\n\n<li>3 decimales;<\/li>\n\n\n\n<li>4 decimales;<\/li>\n\n\n\n<li>5 decimales.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-58 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Tambi\u00e9n pueden variar:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-59\">\n<li>tama\u00f1o del contrato;<\/li>\n\n\n\n<li>valor del tick;<\/li>\n\n\n\n<li>volumen m\u00ednimo;<\/li>\n\n\n\n<li>incremento m\u00ednimo del volumen;<\/li>\n\n\n\n<li>distancia m\u00ednima de las \u00f3rdenes.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-60 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot que funciona correctamente en un instrumento puede comportarse de forma incorrecta al utilizarlo en otro si estas caracter\u00edsticas no se tienen en cuenta.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-61 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, el c\u00f3digo deber\u00eda obtener las propiedades relevantes del s\u00edmbolo en lugar de asumir valores fijos cuando no sea necesario.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 8. Utilizar mal la informaci\u00f3n de las velas<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-62 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Otro error frecuente consiste en utilizar informaci\u00f3n de la vela que todav\u00eda no ha terminado.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-63 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una vela en formaci\u00f3n puede cambiar su m\u00e1ximo, m\u00ednimo y cierre mientras contin\u00faa abierta.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-64 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Si el algoritmo utiliza esos datos para tomar decisiones, puede generar se\u00f1ales que desaparecen antes del cierre.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-65 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo, una estrategia que exige que una vela cierre por encima de una resistencia deber\u00eda esperar al cierre correspondiente si esa es realmente la regla definida.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-66 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Distinguir entre:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-67\">\n<li>vela actual;<\/li>\n\n\n\n<li>\u00faltima vela cerrada;<\/li>\n\n\n\n<li>datos hist\u00f3ricos;<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-68 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">es fundamental para evitar comportamientos inesperados.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 9. Programar mal la temporalidad<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-69 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot puede utilizar informaci\u00f3n de varias temporalidades.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-70 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-71\">\n<li>una temporalidad superior para determinar el contexto;<\/li>\n\n\n\n<li>otra para detectar una configuraci\u00f3n;<\/li>\n\n\n\n<li>otra para ejecutar una entrada.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-72 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El error aparece cuando el c\u00f3digo mezcla datos de diferentes marcos temporales sin controlar correctamente cu\u00e1ndo se ha producido una nueva vela.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-73 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Esto puede provocar:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-74\">\n<li>se\u00f1ales repetidas;<\/li>\n\n\n\n<li>entradas duplicadas;<\/li>\n\n\n\n<li>utilizaci\u00f3n de datos todav\u00eda incompletos;<\/li>\n\n\n\n<li>resultados diferentes de los esperados.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-75 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una buena programaci\u00f3n debe controlar expl\u00edcitamente la temporalidad utilizada en cada condici\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 10. No controlar correctamente las sesiones y horarios<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-76 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los mercados financieros no presentan necesariamente las mismas condiciones durante todo el d\u00eda.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-77 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una estrategia puede estar dise\u00f1ada para funcionar \u00fanicamente durante determinadas sesiones o franjas horarias.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-78 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Si el robot no controla correctamente el horario, puede operar:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-79\">\n<li>fuera del periodo previsto;<\/li>\n\n\n\n<li>durante cambios de sesi\u00f3n;<\/li>\n\n\n\n<li>en momentos de menor liquidez;<\/li>\n\n\n\n<li>despu\u00e9s de haber alcanzado el l\u00edmite diario establecido.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-80 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Adem\u00e1s, hay que prestar atenci\u00f3n a la hora del servidor, la hora local y los posibles cambios relacionados con el horario de verano.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-81 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un error de unas pocas horas puede modificar completamente el comportamiento de una estrategia basada en sesiones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 11. No contemplar spread y slippage<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-82 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los resultados de una estrategia dependen tambi\u00e9n de las condiciones de ejecuci\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-83 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El spread representa la diferencia entre determinados precios de compra y venta, mientras que el slippage puede hacer que una operaci\u00f3n se ejecute a un precio diferente del esperado.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-84 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot que ignora estas variables puede mostrar resultados demasiado optimistas en determinadas pruebas.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-85 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, al desarrollar un sistema autom\u00e1tico conviene analizar c\u00f3mo afectan los costes y las condiciones reales de ejecuci\u00f3n a la estrategia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 12. Introducir demasiados par\u00e1metros<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-86 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Otro problema aparece cuando el robot tiene una cantidad excesiva de par\u00e1metros configurables.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-87 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-88\">\n<li>periodo de una media;<\/li>\n\n\n\n<li>otra media;<\/li>\n\n\n\n<li>filtro de volatilidad;<\/li>\n\n\n\n<li>distancia m\u00ednima;<\/li>\n\n\n\n<li>horario;<\/li>\n\n\n\n<li>confirmaci\u00f3n adicional;<\/li>\n\n\n\n<li>filtro de tendencia;<\/li>\n\n\n\n<li>filtro de volumen;<\/li>\n\n\n\n<li>m\u00faltiples niveles de salida.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-89 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">A\u00f1adir par\u00e1metros no significa necesariamente mejorar el sistema.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-90 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Cuantos m\u00e1s elementos se incorporan, mayor puede ser la complejidad del c\u00f3digo y m\u00e1s dif\u00edcil resulta determinar qu\u00e9 componente est\u00e1 provocando un determinado resultado.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-91 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Adem\u00e1s, un exceso de par\u00e1metros puede facilitar la sobreoptimizaci\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-92 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, conviene mantener una estructura lo m\u00e1s sencilla posible mientras las reglas necesarias sigan estando representadas correctamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 13. No separar correctamente la l\u00f3gica del robot<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-93 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot complejo puede resultar dif\u00edcil de mantener si toda la l\u00f3gica est\u00e1 mezclada en un \u00fanico bloque de c\u00f3digo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-94 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Es recomendable separar conceptualmente diferentes funciones, como:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-95\">\n<li>detecci\u00f3n de se\u00f1ales;<\/li>\n\n\n\n<li>c\u00e1lculo del riesgo;<\/li>\n\n\n\n<li>c\u00e1lculo del volumen;<\/li>\n\n\n\n<li>ejecuci\u00f3n de \u00f3rdenes;<\/li>\n\n\n\n<li>gesti\u00f3n de posiciones;<\/li>\n\n\n\n<li>filtros horarios;<\/li>\n\n\n\n<li>control de errores;<\/li>\n\n\n\n<li>registro de informaci\u00f3n;<\/li>\n\n\n\n<li>panel o interfaz.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-96 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Esta separaci\u00f3n facilita localizar problemas y modificar una parte del sistema sin alterar accidentalmente otra.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-97 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Tambi\u00e9n permite realizar futuras versiones de manera m\u00e1s controlada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 14. No registrar informaci\u00f3n suficiente<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-98 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Cuando un robot funciona de forma incorrecta, es importante poder averiguar qu\u00e9 ocurri\u00f3.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-99 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Si el programa \u00fanicamente muestra:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"has-text-color has-link-color wp-elements-100 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">\"Error.\"<\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-101 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">resulta dif\u00edcil identificar el problema.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-102 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un sistema de registro puede indicar, por ejemplo:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-103\">\n<li>qu\u00e9 condici\u00f3n se detect\u00f3;<\/li>\n\n\n\n<li>qu\u00e9 precio se utiliz\u00f3;<\/li>\n\n\n\n<li>qu\u00e9 volumen se calcul\u00f3;<\/li>\n\n\n\n<li>qu\u00e9 orden se intent\u00f3 enviar;<\/li>\n\n\n\n<li>qu\u00e9 respuesta devolvi\u00f3 el servidor;<\/li>\n\n\n\n<li>qu\u00e9 condici\u00f3n impidi\u00f3 abrir una operaci\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-104 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los registros o logs son especialmente \u00fatiles durante el desarrollo y las pruebas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 15. No comprobar los valores antes de ejecutar una operaci\u00f3n<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-105 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Antes de enviar una orden, el robot deber\u00eda comprobar que los par\u00e1metros son coherentes.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-106 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Entre otras cosas, puede ser necesario verificar:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-107\">\n<li>volumen v\u00e1lido;<\/li>\n\n\n\n<li>stop loss v\u00e1lido;<\/li>\n\n\n\n<li>take profit v\u00e1lido;<\/li>\n\n\n\n<li>distancia de la orden respecto al precio;<\/li>\n\n\n\n<li>s\u00edmbolo correcto;<\/li>\n\n\n\n<li>direcci\u00f3n de la operaci\u00f3n;<\/li>\n\n\n\n<li>condiciones horarias;<\/li>\n\n\n\n<li>n\u00famero de posiciones existentes.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-108 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Estas comprobaciones funcionan como una capa adicional de protecci\u00f3n frente a errores de programaci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 16. Programar una gesti\u00f3n del riesgo demasiado compleja<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-109 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La gesti\u00f3n del riesgo puede automatizarse, pero complicarla innecesariamente puede introducir nuevos errores.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-110 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un sistema puede incorporar:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-111\">\n<li>riesgo fijo;<\/li>\n\n\n\n<li>porcentaje del capital;<\/li>\n\n\n\n<li>reducci\u00f3n del riesgo despu\u00e9s de p\u00e9rdidas;<\/li>\n\n\n\n<li>l\u00edmites diarios;<\/li>\n\n\n\n<li>l\u00edmite de posiciones;<\/li>\n\n\n\n<li>protecci\u00f3n de beneficio;<\/li>\n\n\n\n<li>stop din\u00e1mico.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-112 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Cada regla adicional debe estar claramente definida y probada.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-113 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una gesti\u00f3n del riesgo sencilla y correctamente implementada puede ser m\u00e1s f\u00e1cil de verificar que una estructura extremadamente compleja.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 17. No comprobar qu\u00e9 ocurre despu\u00e9s de reiniciar el robot<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-114 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot puede desconectarse, reiniciarse o volver a cargarse en la plataforma.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-115 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El sistema debe saber recuperar correctamente su estado.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-116 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo, si existe una operaci\u00f3n abierta, el robot deber\u00eda ser capaz de reconocerla despu\u00e9s de reiniciarse.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-117 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">De lo contrario, podr\u00eda:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-118\">\n<li>abrir una segunda operaci\u00f3n;<\/li>\n\n\n\n<li>perder informaci\u00f3n sobre la gesti\u00f3n de la posici\u00f3n;<\/li>\n\n\n\n<li>modificar incorrectamente un stop;<\/li>\n\n\n\n<li>interpretar el mercado como si no existiera ninguna posici\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-119 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, un robot robusto debe dise\u00f1arse teniendo en cuenta que puede ser reiniciado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 18. Depender de una conexi\u00f3n o servicio externo sin control<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-120 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Algunos robots utilizan informaci\u00f3n externa, indicadores personalizados, archivos, APIs u otros servicios.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-121 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Si uno de estos componentes deja de estar disponible, el robot puede comportarse de manera diferente.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-122 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Cuando existen dependencias externas conviene establecer qu\u00e9 debe hacer el sistema si:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-123\">\n<li>no recibe datos;<\/li>\n\n\n\n<li>recibe datos incompletos;<\/li>\n\n\n\n<li>el servicio no responde;<\/li>\n\n\n\n<li>existe un retraso;<\/li>\n\n\n\n<li>se produce una desconexi\u00f3n.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-124 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La automatizaci\u00f3n debe contemplar tambi\u00e9n los escenarios en los que una parte del sistema deja de funcionar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 19. Confundir un buen backtest con un robot correctamente programado<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-125 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un resultado positivo en un backtest no demuestra por s\u00ed mismo que el c\u00f3digo sea correcto.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-126 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una estrategia puede mostrar buenos resultados porque:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-127\">\n<li>existe un error en la l\u00f3gica;<\/li>\n\n\n\n<li>se est\u00e1 utilizando informaci\u00f3n que no estaba disponible en tiempo real;<\/li>\n\n\n\n<li>los costes de ejecuci\u00f3n no est\u00e1n correctamente representados;<\/li>\n\n\n\n<li>existe una configuraci\u00f3n excesivamente adaptada a los <a href=\"https:\/\/www.cftc.gov\/es\/LearnAndProtect\/AdvisoriesAndArticles\/fraudadv_tradingsystem.html\" target=\"_blank\" rel=\"noreferrer noopener\">datos hist\u00f3ricos<\/a>;<\/li>\n\n\n\n<li>determinadas condiciones del mercado no se reproducen adecuadamente.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-128 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, el desarrollo debe incluir diferentes fases de comprobaci\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-129 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El <a href=\"https:\/\/antoniofernandez.net\/copia-divi\/backtesting-de-una-estrategia-de-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">backtesting de una estrategia de trading<\/a> puede ayudar a estudiar el comportamiento hist\u00f3rico, pero posteriormente es necesario comprobar c\u00f3mo se comporta el sistema ante datos que no participaron en su desarrollo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 20. No realizar pruebas fuera de muestra<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-130 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Utilizar los mismos datos para desarrollar, ajustar y evaluar un robot puede proporcionar una visi\u00f3n demasiado optimista.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-131 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una forma de reducir este problema consiste en separar los datos utilizados para desarrollar el sistema de aquellos utilizados posteriormente para comprobar su comportamiento.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-132 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El concepto de <a href=\"https:\/\/antoniofernandez.net\/copia-divi\/overfitting-en-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">overfitting en trading<\/a> es especialmente importante en este contexto.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-133 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una estrategia que funciona muy bien sobre los datos utilizados para su desarrollo puede mostrar resultados diferentes cuando se enfrenta a datos nuevos.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-134 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ello, el proceso de validaci\u00f3n deber\u00eda intentar comprobar si las reglas mantienen un comportamiento razonablemente consistente fuera de la muestra utilizada para construirlas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 21. No realizar forward testing<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-135 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Despu\u00e9s de las pruebas hist\u00f3ricas, puede ser \u00fatil comprobar el robot utilizando datos nuevos y condiciones de mercado posteriores.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-136 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El <a href=\"https:\/\/antoniofernandez.net\/copia-divi\/forward-testing\/\" target=\"_blank\" rel=\"noreferrer noopener\">forward testing<\/a> permite estudiar c\u00f3mo se comporta una estrategia cuando se enfrenta a informaci\u00f3n que no fue utilizada durante su desarrollo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-137 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Esta fase puede realizarse en diferentes entornos, como una cuenta demo o determinadas modalidades de prueba, dependiendo del objetivo y de las caracter\u00edsticas del sistema.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-138 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El objetivo no es demostrar que una estrategia funcionar\u00e1 indefinidamente, sino detectar diferencias entre el comportamiento esperado y el comportamiento observado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 22. No probar situaciones excepcionales<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-139 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot no deber\u00eda probarse \u00fanicamente en condiciones normales.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-140 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Tambi\u00e9n conviene estudiar qu\u00e9 ocurre ante situaciones como:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-141\">\n<li>aumento repentino del spread;<\/li>\n\n\n\n<li>p\u00e9rdida de conexi\u00f3n;<\/li>\n\n\n\n<li>rechazo de una orden;<\/li>\n\n\n\n<li>ejecuci\u00f3n parcial, cuando corresponda;<\/li>\n\n\n\n<li>falta de datos;<\/li>\n\n\n\n<li>reinicio de la plataforma;<\/li>\n\n\n\n<li>apertura de una nueva sesi\u00f3n;<\/li>\n\n\n\n<li>volatilidad excepcional;<\/li>\n\n\n\n<li>ausencia de liquidez suficiente;<\/li>\n\n\n\n<li>m\u00faltiples se\u00f1ales simult\u00e1neas.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-142 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Estas pruebas pueden revelar problemas que no aparecen durante una sesi\u00f3n normal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 23. No establecer l\u00edmites de seguridad<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-143 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot puede incorporar l\u00edmites que impidan que un error puntual provoque una cadena de operaciones no deseadas.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-144 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Algunos ejemplos son:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-145\">\n<li>m\u00e1ximo de operaciones simult\u00e1neas;<\/li>\n\n\n\n<li>m\u00e1ximo de operaciones diarias;<\/li>\n\n\n\n<li>p\u00e9rdida m\u00e1xima diaria;<\/li>\n\n\n\n<li>l\u00edmite de exposici\u00f3n;<\/li>\n\n\n\n<li>l\u00edmite de volumen;<\/li>\n\n\n\n<li>horario m\u00e1ximo de funcionamiento;<\/li>\n\n\n\n<li>bloqueo despu\u00e9s de determinados errores.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-146 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los l\u00edmites concretos deben depender del dise\u00f1o del sistema y de la estrategia.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-147 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Su funci\u00f3n es actuar como una capa adicional de control.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 24. No comprobar el c\u00f3digo despu\u00e9s de realizar cambios<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-148 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Modificar un robot puede solucionar un problema y generar otro.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-149 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por ejemplo, un cambio realizado en el c\u00e1lculo del volumen puede afectar posteriormente a la gesti\u00f3n del riesgo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-150 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, despu\u00e9s de modificar una parte importante del c\u00f3digo conviene repetir las pruebas relevantes.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-151 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una pr\u00e1ctica \u00fatil es mantener versiones diferenciadas del robot y registrar los cambios realizados.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-152 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Esto facilita volver a una versi\u00f3n anterior si aparece un comportamiento inesperado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Error 25. Pensar que automatizar elimina la necesidad de supervisi\u00f3n<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-153 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Automatizar una estrategia no significa que el sistema pueda funcionar necesariamente sin supervisi\u00f3n.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-154 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El mercado puede cambiar, las condiciones de ejecuci\u00f3n pueden variar y tambi\u00e9n pueden aparecer problemas t\u00e9cnicos.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-155 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La supervisi\u00f3n puede incluir:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-156\">\n<li>comprobar que el robot est\u00e1 conectado;<\/li>\n\n\n\n<li>revisar que las operaciones se ejecutan correctamente;<\/li>\n\n\n\n<li>controlar errores;<\/li>\n\n\n\n<li>verificar el comportamiento del spread;<\/li>\n\n\n\n<li>comprobar la exposici\u00f3n;<\/li>\n\n\n\n<li>revisar peri\u00f3dicamente los resultados;<\/li>\n\n\n\n<li>detener el sistema cuando se detecte un comportamiento an\u00f3malo.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-157 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">En determinados contextos regulatorios, adem\u00e1s, existen requisitos espec\u00edficos relacionados con los sistemas de negociaci\u00f3n algor\u00edtmica y sus controles. La <a href=\"https:\/\/www.esma.europa.eu\/publications-and-data\/interactive-single-rulebook\/mifid-ii\/article-17-algorithmic-trading\" target=\"_blank\" rel=\"noreferrer noopener\">normativa MiFID II sobre trading algor\u00edtmico de ESMA<\/a> establece requisitos relacionados con sistemas, controles, pruebas y supervisi\u00f3n para los participantes a los que resulte aplicable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo reducir los errores al programar un robot de trading?<\/h2>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-158 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Una metodolog\u00eda ordenada puede ayudar a detectar problemas antes de utilizar el sistema en condiciones reales.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Definir las reglas<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-159 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Antes de programar, escribir todas las condiciones de forma objetiva.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Dise\u00f1ar la estructura<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-160 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Separar las diferentes funciones del robot para que puedan comprobarse individualmente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Programar una primera versi\u00f3n sencilla<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-161 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Es preferible construir una base funcional antes de incorporar m\u00faltiples filtros y funciones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Comprobar cada m\u00f3dulo<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-162 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Verificar individualmente:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-163\">\n<li>se\u00f1ales;<\/li>\n\n\n\n<li>entradas;<\/li>\n\n\n\n<li>salidas;<\/li>\n\n\n\n<li>volumen;<\/li>\n\n\n\n<li>stop loss;<\/li>\n\n\n\n<li>take profit;<\/li>\n\n\n\n<li>horarios;<\/li>\n\n\n\n<li>l\u00edmites de riesgo.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. Revisar los registros<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-164 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Analizar los mensajes generados por el programa para identificar comportamientos inesperados.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Realizar backtesting<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-165 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Comprobar el comportamiento hist\u00f3rico bajo diferentes condiciones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7. Analizar la robustez<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-166 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Evitar depender de una \u00fanica configuraci\u00f3n y estudiar c\u00f3mo cambia el comportamiento cuando se modifican determinadas condiciones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">8. Realizar pruebas con datos nuevos<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-167 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Utilizar forward testing para comprobar el comportamiento fuera del conjunto de datos utilizado durante el desarrollo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">9. Probar situaciones an\u00f3malas<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-168 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Simular o analizar escenarios que puedan provocar errores de ejecuci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">10. Supervisar antes de ampliar la operativa<\/h3>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-169 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Antes de aumentar el nivel de exposici\u00f3n, comprobar que el robot se comporta de acuerdo con las reglas programadas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Checklist antes de utilizar un robot de trading<\/h2>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-170 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Antes de utilizar un robot, puedes revisar esta lista:<\/p>\n\n\n\n<ul style=\"color:#e5e7eb;font-size:18px\" class=\"wp-block-list has-text-color has-link-color wp-elements-171\">\n<li>Las reglas de la estrategia est\u00e1n definidas de forma objetiva.<\/li>\n\n\n\n<li>Las condiciones de entrada est\u00e1n correctamente programadas.<\/li>\n\n\n\n<li>Las condiciones de salida est\u00e1n verificadas.<\/li>\n\n\n\n<li>El robot distingue correctamente entre velas abiertas y cerradas.<\/li>\n\n\n\n<li>La temporalidad utilizada es la correcta.<\/li>\n\n\n\n<li>El c\u00e1lculo del volumen ha sido comprobado.<\/li>\n\n\n\n<li>Se tienen en cuenta las caracter\u00edsticas del s\u00edmbolo.<\/li>\n\n\n\n<li>Se controla el spread.<\/li>\n\n\n\n<li>Se contempla el slippage.<\/li>\n\n\n\n<li>Se gestionan los errores de ejecuci\u00f3n.<\/li>\n\n\n\n<li>El robot controla correctamente las posiciones existentes.<\/li>\n\n\n\n<li>El sistema puede recuperarse despu\u00e9s de un reinicio.<\/li>\n\n\n\n<li>Se han establecido l\u00edmites de seguridad.<\/li>\n\n\n\n<li>Se han realizado pruebas hist\u00f3ricas.<\/li>\n\n\n\n<li>Se ha comprobado el comportamiento con datos nuevos.<\/li>\n\n\n\n<li>Se han probado situaciones excepcionales.<\/li>\n\n\n\n<li>Los registros permiten identificar errores.<\/li>\n\n\n\n<li>Los cambios de c\u00f3digo se documentan.<\/li>\n\n\n\n<li>El sistema ha sido supervisado antes de utilizarlo con mayor exposici\u00f3n.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1l es el error m\u00e1s importante al programar un robot?<\/h2>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-172 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">No existe un \u00fanico error que explique todos los problemas de los robots de trading.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-173 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Sin embargo, muchos fallos tienen un origen com\u00fan: <strong>programar reglas que no est\u00e1n suficientemente definidas y asumir que el c\u00f3digo representa exactamente la estrategia original sin comprobarlo.<\/strong><\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-174 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La programaci\u00f3n debe considerarse una parte del proceso de desarrollo, no una garant\u00eda de que la estrategia funcionar\u00e1.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-175 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Un robot puede estar t\u00e9cnicamente bien programado y utilizar una estrategia que no tenga una ventaja sostenible. Del mismo modo, una buena idea de trading puede producir resultados incorrectos si su implementaci\u00f3n contiene errores.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-176 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso es necesario analizar por separado:<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-177 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\"><strong>estrategia \u2192 c\u00f3digo \u2192 ejecuci\u00f3n \u2192 pruebas \u2192 validaci\u00f3n \u2192 supervisi\u00f3n.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-178 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Programar un robot de trading requiere mucho m\u00e1s que convertir unas reglas de entrada y salida en c\u00f3digo.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-179 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Los problemas pueden aparecer en cualquier fase: desde una estrategia ambigua hasta un c\u00e1lculo incorrecto del volumen, una mala gesti\u00f3n de las \u00f3rdenes, errores con las temporalidades, problemas de ejecuci\u00f3n o una recuperaci\u00f3n incorrecta despu\u00e9s de un reinicio.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-180 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Adem\u00e1s, las pruebas hist\u00f3ricas no sustituyen la validaci\u00f3n con datos nuevos. Un sistema automatizado debe comprobarse de forma progresiva y bajo diferentes condiciones antes de utilizarlo en un entorno real.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-181 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">La automatizaci\u00f3n puede aportar disciplina y capacidad para ejecutar reglas de manera sistem\u00e1tica, pero tambi\u00e9n puede ejecutar un error de forma sistem\u00e1tica si el dise\u00f1o o la programaci\u00f3n son incorrectos.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-182 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Por eso, un buen robot no deber\u00eda evaluarse \u00fanicamente por el beneficio obtenido en una prueba. Tambi\u00e9n es necesario analizar la calidad del c\u00f3digo, la l\u00f3gica de la estrategia, la gesti\u00f3n del riesgo, la ejecuci\u00f3n y la robustez del sistema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Contin\u00faa aprendiendo<\/h2>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-183 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Si quieres profundizar en el desarrollo y evaluaci\u00f3n de sistemas automatizados, puedes continuar con estos art\u00edculos:<\/p>\n\n\n\n<ul style=\"font-size:18px\" class=\"wp-block-list has-ast-global-color-7-color has-text-color has-link-color wp-elements-184\">\n<li class=\"has-ast-global-color-4-color has-text-color has-link-color wp-elements-185\"><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/expert-advisor-ea-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u00bfQu\u00e9 es un Expert Advisor (EA) en trading y c\u00f3mo funciona?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/crear-un-robot-de-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">C\u00f3mo crear una estrategia de trading desde cero<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/pruebas-de-robustez-en-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pruebas de robustez en trading: c\u00f3mo saber si una estrategia automatizada funciona<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/optimizacion-de-estrategias-de-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">Optimizaci\u00f3n de estrategias de trading: m\u00e9todos, ventajas y riesgos<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/overfitting-en-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">Overfitting en trading: qu\u00e9 es y c\u00f3mo evitar la sobreoptimizaci\u00f3n<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/forward-testing\/\" target=\"_blank\" rel=\"noreferrer noopener\">Forward testing: c\u00f3mo comprobar una estrategia con datos nuevos<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/metricas-de-trading\/\" target=\"_blank\" rel=\"noreferrer noopener\">M\u00e9tricas de trading: Profit Factor, Drawdown, Sharpe Ratio y m\u00e1s<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/blog\/\" target=\"_blank\" rel=\"noreferrer noopener\">Ver todas las entradas del blog<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/antoniofernandez.net\/copia-divi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Volver a la p\u00e1gina principal<\/a><\/p>\n\n\n\n<div class=\"wp-block-group has-text-color has-background has-link-color wp-elements-186 is-layout-constrained wp-block-group-is-layout-constrained\" style=\"color:#94a3b8;background-color:#111827\">\n<p class=\"has-text-color has-link-color wp-elements-187 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:25px\">\u26a0\ufe0f Aviso importante<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-188 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">Este contenido tiene car\u00e1cter exclusivamente educativo e informativo. La automatizaci\u00f3n de una estrategia no garantiza resultados positivos y cualquier sistema puede sufrir periodos de p\u00e9rdidas o dejar de comportarse como se esperaba.<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-189 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:25px\">\u26a0\ufe0f Aviso de riesgo<\/p>\n\n\n\n<p class=\"has-text-color has-link-color wp-elements-190 wp-block-paragraph\" style=\"color:#e5e7eb;font-size:18px\">El trading con instrumentos financieros implica riesgos y puede ocasionar p\u00e9rdidas. Los resultados obtenidos mediante backtesting o pruebas hist\u00f3ricas no garantizan resultados futuros. Antes de utilizar un sistema automatizado con dinero real, es importante comprender su funcionamiento, sus riesgos y las condiciones de ejecuci\u00f3n del intermediario utilizado.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Cuando hablamos de los errores al programar un robot de trading, el programar un robot de trading no consiste simplemente en convertir una estrategia manual en c\u00f3digo. Para que un sistema automatizado pueda funcionar de forma coherente, es necesario transformar las reglas de entrada, salida, gesti\u00f3n de posiciones y control del riesgo en instrucciones precisas [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1175,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-1173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trading-algoritmico-y-automatizacion"],"_links":{"self":[{"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/posts\/1173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/comments?post=1173"}],"version-history":[{"count":10,"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/posts\/1173\/revisions"}],"predecessor-version":[{"id":3262,"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/posts\/1173\/revisions\/3262"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/media\/1175"}],"wp:attachment":[{"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/media?parent=1173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/categories?post=1173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/antoniofernandez.net\/copia-divi\/wp-json\/wp\/v2\/tags?post=1173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}