Construya Su Propio Sistema De Comercio Automatizado
MetaTrader 5 - Ejemplos Cómo hacer un robot de comercio en ningún momento para hacer un robot de comercio, necesita un sistema de comercio El comercio en los mercados financieros implica muchos riesgos, incluyendo el más crítico - el riesgo de tomar una decisión comercial equivocada. El sueño de cada comerciante es encontrar un robot comercial. Que siempre está en buena forma y no está sujeta a debilidades humanas - miedo, avaricia e impaciencia. Cada recién llegado quiere obtener o crear un sistema de comercio claro y estricto que se puede presentar en forma de algoritmos y deshacerse por completo de las operaciones de rutina. ¿Es posible? Un sistema comercial es una condición necesaria para entrar en el mercado y ese sistema debe ser rentable, por supuesto. Cuando los recién llegados llegan al mercado, suelen estar abrumados por la gran masa de información difícil de entender. Los libros y los foros del comerciante pueden proporcionar una cierta ayuda en ese caso. Desafortunadamente, no todos los autores son comerciantes exitosos y no todos los comerciantes exitosos escribir libros. Muchos recursos web especiales se crean sólo para obtener ganancias para sus propietarios, ya que es mucho más difícil negociar su propio dinero que emitir pronósticos y enseñar sistemas de comercio. Cada comerciante debe pasar de forma independiente todas las etapas de la creación de un sistema comercial. Hay un refrán popular que no importa qué sistema usted utiliza para negociar, la cosa principal es que usted debe negociar realmente según ese sistema. De lo contrario, el comercio en el mercado se convierte en una apuesta con un resultado previsible. Trading Robots y Forex Forex mercado se cree que tiene una gran liquidez. Además, permite el comercio 24 horas al día, a diferencia de muchos otros mercados. Por lo tanto, muchos comerciantes tratan de hacer robots comerciales especialmente para el mercado de divisas, ya que ofrece una gran cantidad de instrumentos comerciales. Sin embargo, los escépticos afirman que todos los pares de divisas están fuertemente correlacionados entre sí, proporcionando una volatilidad muy baja en el mercado. Pero sus oponentes responden que cada par de divisas tiene sus propias características y la baja volatilidad es compensada por un gran apalancamiento. En cualquier caso, los instrumentos de Forex son atractivos para hacer que los robots comerciales y la mayoría de los partidarios del comercio automatizado perfeccionar sus habilidades en pares de divisas. MetaTrader 4 y MetaTrader 5 terminales comerciales están especialmente diseñados para desarrollar fácilmente sistemas automatizados de comercio, pero al mismo tiempo su interfaz también es conveniente para el comercio manual. Cómo comenzar a hacer un robot de comercio Hay muchos enfoques para la construcción de un sistema de comercio automatizado. Describiremos solamente algunos más importantes. El primer enfoque se basa en las matemáticas. Un desarrollador trata de crear una especie de ecuación que puede considerar muchos factores. Este enfoque se basa en la firme creencia de que los movimientos de precios son gestionados por un modelo que se puede encontrar utilizando datos históricos disponibles. En la mayoría de los casos, los seguidores de tal enfoque saben demasiado matemáticas pero no saben nada sobre / no están interesados en el mercado. El mercado es una abstracción pura, un tipo de juego intelectual para ellos. Este enfoque suele conducir a muchos años de estudio y desarrollo, mientras que un resultado definitivo en forma de un sistema automatizado de comercio automatizado no es tan importante. El segundo enfoque se basa en el estudio de las leyes del mercado. No se intenta entender por qué el precio sube o baja cuando aparecen varias figuras de análisis técnico en un gráfico. La ventaja de este enfoque es que no requiere ningún conocimiento especial de las matemáticas y no hace ninguna suposición acerca de la fuerza motriz del mercado. Es más clara y conveniente cuando se estudia el comercio. Es más popular entre los comerciantes que recibieron el reconocimiento universal. La desventaja del enfoque es la necesidad de rastrear constantemente todos los símbolos necesarios. Tarde o temprano, un comerciante comienza a considerar la automatización de los procesos de negociación y la cuestión más importante aparece en esa etapa de la complejidad de la formalización de las normas comerciales cuando se trata de expresarlos en forma de algoritmos. En algunos casos, los comerciantes que tratan de ordenar un robot comercial no pueden describir las reglas de negociación y encontrar un terreno común con los programadores. El tercer enfoque se basa en el intento de crear una caja negra basada en redes neuronales con el uso de las herramientas ya hechas disponibles en paquetes especiales de software y matemáticas. La creación de un sistema de comercio automatizado con los elementos de la inteligencia artificial es una tarea emocionante y desafiante, incluso para los recién llegados, ya que no requiere ni un fondo matemático profundo, ni la experiencia de programación - todo se hace usando ayudas visuales. Un comerciante debe conocer los conceptos básicos de los indicadores técnicos, poseer una capacidad para preparar los datos de precios necesarios y la experiencia en un paquete definitivo para trabajar con redes neuronales. El principal inconveniente de este enfoque es que un robot comercial obtenido utilizando herramientas especializadas para trabajar con redes neuronales es en realidad una caja negra. Los comerciantes no conocen sus principios de trabajo y, en general, es imposible predecir qué fase del mercado será la más problemática para el robot. Los programadores a menudo eligen el cuarto enfoque que comienzan a hacer un robot comercial desde el principio sin pasar tiempo para el comercio manual. ¿Por qué el comercio manualmente Usted puede hacer un robot de pasar unos meses y cosechar los beneficios de sus esfuerzos entonces. Pero sin dolores, sin ganancias. En la mayoría de los casos, los programadores comienzan a crear toda la infraestructura necesaria utilizando un lenguaje de programación familiar en lugar de simplemente hacer que un robot comercial obtenga y procese datos de precios, representación visual de gráficos e indicadores, métodos personalizados de probar estrategias sobre datos históricos y así sucesivamente. Ellos ganan mucha experiencia en el proceso. Pero en la mayoría de los casos, esa experiencia no los aproxima a la creación de objetivos finales de un sistema de comercio automatizado. E incluso si se crea un robot comercial, no hay garantía de que sea rentable. Y qué si un programador quiere escribir otro sistema de comercio Reestructuración profunda y nuevos errores de programación son inevitables. También existe el quinto enfoque de compra de un sistema de comercio de ready-made en forma de un robot comercial. En este caso, un comerciante actúa como un operador o un sintonizador. Este enfoque ahorra mucho tiempo (no hay necesidad de aprender muchas cosas nuevas) y permite a los comerciantes entrar rápidamente en el mundo del comercio automatizado. El principal inconveniente de este enfoque se deriva de sus ventajas que usted no conoce los principios de operación de su robot comercial y su estructura. E incluso si un vendedor le ha proporcionado una descripción detallada del sistema de comercio implementado, nunca estará completamente seguro en él. Sin embargo, ninguno de los enfoques mencionados puede darle garantía absoluta excepto un depósito bancario. Pero eso no es una solución muy adecuada para las personas interesadas en el mercado de comercio y formas de aumentar sus activos privados. Cuál es el mejor acercamiento a la negociación automatizada para un comerciante Cada uno de los cinco acercamientos descritos tiene sus ventajas y corresponde a cierto tipo definido de comerciante. Es poco probable que elija el primer enfoque (descripción analítica del mercado) sin un buen conocimiento matemático. Es igualmente improbable que comience a hacer robots comerciales basados en redes neuronales. Sin embargo, ambos enfoques son muy emocionantes y proporcionan un buen ejercicio intelectual. A continuación se discutirá sólo el segundo enfoque, que ya se considera el clásico. Ese es el enfoque que suelen escoger los nuevos seguidores de la negociación automatizada, ya que el análisis técnico sigue siendo el área de conocimiento clave al aprender los fundamentos de las operaciones. Otra ventaja del segundo enfoque es que después de pasar algún tiempo para el comercio manual y obtener el sentido del mercado, ya tendrá una buena comprensión de las herramientas de análisis técnico. Además, usted será capaz de programar estrategias comerciales o crear redes neuronales en un nivel superior. Los primeros pasos en la fabricación de un robot de comercio Para hacer un sistema de comercio automatizado, necesita conocimientos de programación y el conocimiento de todas las complejidades de las solicitudes de comercio de procesamiento. Pero primero puede comenzar con los robots de comercio de Asesores Expertos listos para usar de la biblioteca gratuita de Base de código. Descargue cualquier Asesor Experto (robot de comercio) y lo lanzará en el Probador de Estrategia de terminales MetaTrader 4 o MetaTrader 5. Seleccione un intervalo de historial que muestre una tendencia fuerte y un intervalo con un plano. Realice la optimización de los parámetros de entrada de un Asesor experto y examine sus diferencias en estos dos intervalos. Inicie un Expert Advisor con los parámetros óptimos para un plano en un intervalo de tendencia y con los parámetros óptimos para una tendencia en un intervalo plano. Examine las diferencias en los resultados de negociación, ofertas distribuciones y otros parámetros estadísticos. Como resultado, usted sabrá cuánto el comportamiento de su sistema de comercio puede variar cuando la situación del mercado cambia. Sería mejor probar varias estrategias comerciales estándar utilizando este método en diferentes partes de la historia y varios símbolos. Este tipo de prueba impide la instalación de un sistema de comercio para un intervalo definido de la historia y proporciona una mejor comprensión de los sistemas de tendencias y contra-tendencias. El siguiente paso sería crear sistemas comerciales más complejos basados en la combinación de señales simples ya existentes de MQL5 Wizard set. Usted puede probar y desarrollar su intuición comercial de la clasificación de las señales malas de un sistema utilizando un filtro basado en otro sistema sin medios de programación. Lo principal aquí es no sobrepasar. Cuantos más parámetros de entrada tenga un sistema de comercio, más fácil será instalarlo. Ha habido muchas discusiones sobre las diferencias entre la optimización y la adaptación. Aquí no hay soluciones ampliamente aceptadas. Pero la visualización de los resultados de la prueba / optimización y su propio sentido común puede ayudarle. Aprenda a identificar los parámetros de entrada más críticos que afectan a su sistema de comercio de todo el conjunto de datos de entrada. No prestar mucha atención a los parámetros secundarios que toman tiempo durante la optimización, pero no afectan a la lógica misma del sistema. Recuerde que un buen sistema de comercio siempre demuestra un pequeño movimiento libre de parámetros secundarios, pero no muestra volatilidad dramática en caso de cambios de mercado despreciables. Puede pasar tanto tiempo en esta etapa, como desee, hasta que esté seguro de que puede entender cualquier estrategia de negociación que examina los resultados de la prueba y la optimización. El conocimiento de las fortalezas y debilidades de los sistemas estándar le permitirá estar mejor preparado al crear su propio robot comercial. Programación de un Robot Comercial Suponga que ha aprendido / está aprendiendo el lenguaje de programación MQL4 o MQL5 y ahora está listo para escribir su primer Asesor Experto para el terminal cliente de MetaTrader. Aquí son posibles varios casos. En primer lugar, puede examinar varios robots de fabricación ya hechos descritos en los artículos para comprender mejor las complejidades de la programación. Segundo, puede hacer preguntas sobre MQL4munity o MQL5munity. Si tiene algún problema sin resolver. Los participantes comunitarios experimentados suelen ayudar a los recién llegados mostrando interés sincero en el tema. En tercer lugar, puede solicitar imrpovement o el desarrollo de un asesor experto o un indicador en el servicio de trabajos. Si usted no es capaz de escribir un programa necesario por su cuenta. Pero incluso si hace un pedido a través del servicio independiente, debe tener alguna idea sobre las pruebas de estrategia para encontrar un lenguaje común con un desarrollador. Además, el conocimiento básico de un lenguaje de programación le permite implementar pequeñas correcciones y cambios en el código después de que el trabajo ya se haya completado. Después de todo, no sería demasiado conveniente llamar a un programador para solucionar cada pequeño problema que encuentre. Sería mucho más fácil y más rápido arreglarlo usted mismo. No hay necesidad de reinventar la rueda Cómo encontrar su propia estrategia comercial, o al menos en qué dirección debe centrarse su búsqueda Todos los comerciantes proteger sus propios sistemas de comercio, si tienen uno. Todos los recién llegados quieren crear un sistema rentable o obtener uno ya hecho. Al mismo tiempo, cualquier solución obtenida parece ser demasiado simple en comparación con las ideas de los recién llegados acerca de un sistema comercial genuino. Los hombres del ejército en todo el mundo son propensos a niveles excesivos de secreto. Hay muchos chistes sobre eso incluyendo el siguiente: El secreto militar no está en lo que estás estudiando, - dice un oficial a los estudiantes de la escuela militar, - sino en el hecho de que exactamente lo estás estudiando. La situación con los sistemas de negociación es bastante similar: la mayoría de los comerciantes utilizan ideas comerciales simples y bien conocidas con pequeñas modificaciones, por ejemplo, añadiendo Trailing Stop o confirmaciones de los indicadores de tendencia. Hay un montón de foros de comerciantes con acceso limitado donde los participantes se unen a sus esfuerzos para desarrollar o mejorar algunos sistemas de comercio secreto. Lo más interesante es que tales sistemas no contienen nada especial en absoluto. Por lo general, una idea bien conocida (como el comercio con la tendencia) se utiliza como base. Luego se perfecciona con algunos nuevos indicadores desconocidos para el público en general. Por lo tanto, puede tomar fácilmente los códigos de fuente de robots comerciales disponibles e intentar utilizarlos correctamente con varios símbolos y plazos. Otro dicho popular se puede mencionar aquí: No te gustan los gatos Usted simplemente no sabe cómo cocinar Es difícil de creer, pero la probabilidad de que desarrolle algo realmente nuevo es muy pequeño. Lo principal aquí es crear un sistema utilizando ingredientes disponibles. No creo que algunos genios tengan acceso a algunos sistemas secretos de los laboratorios de la NASA. Ese es el secreto del Grial. Sólo unos pocos lo harán. Así que, ¿por qué nadie usa las ideas comerciales, si están literalmente al alcance de los brazos? La respuesta probablemente radica en la psicología humana. El personal de muchos bancos y grandes fondos de inversión incluye comerciantes que realizan negocios de acuerdo a estrictas reglas y dentro de volúmenes limitados. Pero por algunas razones, sólo unos pocos comerciantes institucionales abandonan sus empresas y comienzan a operar con su propio dinero. Resulta que usted necesita no sólo una estrategia comercial, sino también la disciplina de hierro para seguirla. Muchos comerciantes descubrieron con pesar que también tienen los mismos problemas psicológicos descritos en los libros. Después de darse cuenta de que el peor enemigo de los comerciantes son ellos mismos, un recién llegado comienza a pensar en hacer un robot comercial para eliminar una carga psicológica. Aunque me desvío ligeramente del tema, debo mencionar a los comerciantes legendarios de las tortugas que negociaron con éxito en mercados múltiples a finales del vigésimo siglo. Lea Camino de la Tortuga y verá que lo más importante para un comerciante es una auto-disciplina y no algún sistema de alto secreto. Por desgracia, la mayoría de los recién llegados no será capaz de seguir una estrategia rentable, incluso si lo obtienen de forma gratuita. El problema es que la mayoría de las estrategias comerciales que son perfectamente adecuadas para el comercio manual difícilmente puede ser formalizada y transcrita a un lenguaje de programación. Las estrategias que pueden formalizarse fácilmente (por ejemplo, aquellas que involucran dos intersecciones de promedios móviles) son demasiado simples y requieren muchos perfeccionamientos y mejoras, de modo que pueden usarse en la práctica. Por lo tanto, una idea simple es gradualmente complicada por un montón de parámetros externos que impiden que un robot de comercio de entradas falsas y errores claramente visibles para un desarrollador. Emerge un problema de optimización de robots comerciales. Este proceso no debe convertirse en una sobre optimización y ajuste para un intervalo de historia particular. Para abordar este problema, la prueba directa utilizando los parámetros del sistema obtenidos se ha implementado en el terminal MetaTrader 5. Si los resultados de las pruebas directas no difieren significativamente de los obtenidos en la sección de optimización, existe la probabilidad de que un robot comercial sea lo suficientemente estable durante algún tiempo después de su lanzamiento en una cuenta comercial. Una longitud de un intervalo para la optimización de parámetros y un valor real de que algún tiempo dependen de un sistema de comercio determinado. Por lo tanto, la optimización de un robot comercial antes de lanzarlo en una cuenta de trading recuerda a desenrollar una eslinga - cuanto más cuidadosamente hemos desenrollado y lanzado un proyectil de la eslinga, cuanto más lejos volará y más precisa su trayectoria será. Un robot de comercio completamente desarrollado mantendrá un resultado positivo en una cuenta de negociación por un tiempo más largo que un robot de negociación obtenido como resultado de un ajuste. Podemos decir que el Grial es una idea de trabajo y un ajuste correcto de los parámetros que se realizan de vez en cuando en los momentos de cambios en las condiciones del mercado. Esto puede ser ilustrado por los resultados del Campeonato Automatizado de Comercio que se celebra desde hace muchos años. Asesores Expertos enviados de todos los participantes pasan a través de pruebas automáticas en el intervalo de tiempo de enero a finales de julio. El requisito principal para pasar la prueba automática es un beneficio obtenido durante ocho meses de pruebas. Pero menos de la mitad de los robots comerciales admitidos para el Campeonato siguen siendo rentables después de tres meses de trabajo autónomo. También puede probar sus habilidades en la toma y el ajuste de su robot de comercio para participar en el Campeonato y obtener los resultados de la prueba de su asesor experto. Además, la participación es gratuita y los premios son impresionantes. Esperamos verlos allí Conclusión Los comerciantes intradía profesionales pasan muchas horas sentados en sus computadoras y esperando el momento adecuado para realizar un trato. Por supuesto, no pueden estar en buena forma todo el tiempo. La mayoría de los comerciantes llegan a la conclusión de que sus acciones violan sus propias reglas comerciales. No todos los sistemas comerciales pueden ser completamente formalizados, pero incluso estos sistemas pueden en la mayoría de los casos adoptar herramientas adicionales, tales como indicadores, sistemas analíticos y filtros de señales falsas. No hacemos ninguna recomendación especial aquí en relación con el aprendizaje de idiomas MQL4 o MQL5, ya que hay muchos otros artículos útiles sobre ese tema. El propósito de este artículo era proporcionar alguna idea inicial acerca de cómo empezar a hacer su robot de comercio para los terminales MetaTrader 4 y MetaTrader 5. Esperamos que este artículo ahorre tiempo para los recién llegados y mostrar la dirección correcta en la difícil tarea de desarrollar un sistema de comercio automatizado. Advertencia: Todos los derechos sobre estos materiales están reservados por MQL5 Ltd. Copia o reimpresión de estos materiales en todo o en parte está prohibido. MetaTrader 5 - Ejemplos Crear su propio robot de comercio en 6 pasos Una vez más sobre el MQL5 Wizard El mundo que nos rodea Está cambiando rápidamente, y tratamos de mantenerse al día. No tenemos tiempo para aprender algo nuevo, y esta es una actitud normal de un ser humano normal. Los comerciantes son personas como todos los demás, quieren obtener los máximos resultados para el mínimo de esfuerzo. Especialmente para los comerciantes, MetaEditor 5 ofrece un maravilloso MQL5 Wizard. Hay varios artículos que describen cómo crear un sistema de comercio automatizado utilizando el asistente, incluyendo una versión ligera MQL5 Wizard for Dummies y una versión de los desarrolladores - MQL5 Wizard: New Version. Todo parece bueno - un robot comercial se crea en 5 clics del ratón, se puede probar en el Tester de Estrategia y optimizar los parámetros de un sistema de comercio, puede permitir que el robot resultante de comercio en su cuenta sin necesidad de hacer nada más manualmente . Pero el problema surge cuando el desarrollador de un comerciante / MQL5 quiere crear algo propio, algo único que nunca ha sido descrito en ninguna parte, y va a escribir su propio módulo de señales comerciales. El comerciante abre la documentación MQL5, llega a la Biblioteca Estándar, y se horroriza al ver. Cinco Clases Terribles Verdaderamente, el Asistente MQL5 simplifica enormemente la creación de Asesores Expertos, pero primero debes aprender qué se utilizará como entrada para ello. Para crear automáticamente un Asesor experto utilizando el Asistente MQL5, asegúrese de que sus componentes cumplan con cinco clases básicas de la sección Clases base de asesores expertos: CExpertBase es una clase base para otras cuatro clases. CExpert es la clase para crear un robot de negociación que es la clase que negocia. CExpertSignal es una clase para crear un módulo de señales comerciales que el artículo trata sobre esta clase. CExpertTrailing es una clase para arrastrar una protección Stop Loss. CExpertMoney es la clase de gestión de dinero. Aquí está toda la fuerza de la gran y terrible aproximación que se llama Programación orientada a objetos (OOP). Pero no tengas miedo, ahora casi todo el mundo tiene un teléfono celular con un montón de funciones, y casi nadie sabe cómo funciona. No necesitamos estudiar todo esto, sólo discutiremos algunas funciones de la clase CExpertSignal. En este artículo vamos a pasar por las etapas de la creación de un módulo de señales comerciales. Y usted verá cómo hacerlo sin tener que aprender OOP o las clases. Pero si quieres, puedes ir un poco más allá. 1. Crear una clase desde cero No vamos a alterar ningún módulo existente de señales comerciales para nuestras necesidades, porque es la manera de confundirse. Por lo tanto, simplemente escribiremos nuestra propia clase, pero primero usaremos el Navegador para crear una nueva carpeta para almacenar nuestras señales en MQL5 / Include / Expert /. Haga clic con el botón derecho en la carpeta que hemos creado, seleccione Nuevo archivo y cree una nueva clase para nuestro módulo de señales comerciales. Rellene los campos: Nombre de clase - el nombre de la clase. Este será un módulo para generar señales en la intersección de dos promedios móviles, así que vamos a nombrarlo MACross. Base Name es la clase de la cual se deriva nuestra clase. Y debemos derivar de la clase base CExpertSignal. Haga clic en Finalizar y un borrador de nuestro módulo estaremos listos. Está todo al este tan lejos. Sólo necesitamos agregar la declaración de inclusión al archivo resultante para que el compilador sepa dónde encontrar la clase base CExpertSignal Compruebe la clase resultante (debe estar libre de errores de compilación) y haga clic en F7. No hay errores y podemos seguir adelante. 2. Una Manija al Módulo Nuestra clase está completamente vacía, no tiene errores y podemos probarlo - vamos a intentar crear un nuevo Asesor Experto en el Asistente MQL5 basado en él. Llegamos al paso de seleccionar un módulo de señales comerciales y ver. Que nuestro módulo no está allí. Y cómo puede estar allí No añadimos ninguna indicación para que el MQL5 Wizard comprenda que nuestra clase podría ser algo útil. Permite arreglar esto. Si observa los módulos del paquete estándar, verá que cada uno de ellos contiene un encabezado al principio del archivo. Este es el identificador del módulo compilado de acuerdo a ciertas reglas. Y las reglas son muy simples. Abra, por ejemplo, el código fuente del módulo de señales comerciales basadas en AMA (vea la descripción lógica en Signals of the Adaptive Moving Average). Ejecute el MQL5 Wizard eligiendo este módulo. Comparar: El último bloque en el identificador se refiere a los parámetros del módulo, la primera línea contiene el nombre del módulo que se mostrará en el Asistente MQL5. Como puede ver, no hay nada complicado. Por lo tanto, el identificador de cada módulo contiene las entradas siguientes: Título: el nombre del módulo que se mostrará en el Asistente MQL5. Tipo: la versión del módulo de señales. Debe ser siempre SignalAdvanced. Nombre: el nombre del módulo después de que esté seleccionado en el Asistente MQL5 y se utiliza en los comentarios para describir los parámetros internos del Asesor experto generado (preferiblemente especificado). ShortName - un prefijo para el nombre automático de parámetros externos en el Asesor Experto generado (en la forma de SignalltShortNamegtltParameterNamegt). Clase - el nombre del, que está contenido en el módulo. Page - un parámetro para obtener ayuda para este módulo (sólo para módulos de la entrega estándar). A continuación viene la descripción de los parámetros en forma de Parameterlistofvalues, en la que se especifica lo siguiente (separados por comas): El nombre de la función para establecer el valor del parámetro al iniciar el Asesor experto. El tipo de parámetro puede ser enumeración. El valor predeterminado del parámetro, es decir, el valor que se establecerá en el parámetro, si no lo cambia en el MQL5 Wizard. Descripción del parámetro, que aparece al iniciar el Asesor experto generado en el Asistente MQL5. Ahora, sabiendo todo esto, permite crear el manejador de nuestro módulo de señales comerciales. Por lo tanto, estamos escribiendo un módulo para obtener señales comerciales en la intersección de dos promedios móviles. Debemos establecer al menos cuatro parámetros externos: FastPeriod - el período del promedio rápido de FastMethod - el tipo de suavizado del promedio lento SlowPeriod - el período del lento lento promedio SlowMethod - el tipo de suavizado de la lenta media móvil También podría agregar un cambio y el tipo de precios para calcular cada uno de los promedios móviles, pero no cambia nada fundamentalmente. Así que la versión actual es la siguiente: El identificador del módulo está listo, y hemos descrito lo siguiente en él: El nombre que se muestra en el Asistente MQL5 - Señales en la intersección de dos promedios móviles. Cuatro parámetros externos para configurar las señales comerciales. FastPeriod - el período de la media de movimiento rápido con el valor predeterminado de 13. FastMethod - el tipo de suavizado de la media móvil rápida, el suavizado simple de forma predeterminada. SlowPeriod - el período de la media móvil lenta con el valor predeterminado de 21. SlowMethod - el tipo de suavizado de la media móvil lenta, el suavizado simple por defecto. Guarde los cambios y compile. No debe haber ningún error. Ejecute el Asistente MQL5 para comprobar. Ahora, nuestro módulo está disponible para la selección, y muestra todos nuestros parámetros. Enhorabuena, nuestro módulo de señal de trading se ve muy bien ahora. 3. Métodos para configurar parámetros Ahora es hora de trabajar con los parámetros externos. Dado que nuestro módulo de comercio está representado por la clase MACross, sus parámetros deben almacenarse dentro de la misma clase que los miembros privados. Permite agregar cuatro líneas (igual al número de parámetros) a la declaración de clase. Ya hemos descrito el parámetro en el identificador y sabemos lo siguiente: Pero, ¿cómo aparecen los valores de los parámetros externos del módulo en los miembros adecuados de nuestra clase? MACross Todo es muy simple, sólo tiene que declarar los métodos públicos del mismo nombre En la clase, es decir, para agregar cuatro líneas a la sección pública: Cuando genera un Asesor experto en base a este módulo utilizando el Asistente MQL5 y ejecutarlo en el gráfico, estos cuatro métodos se llaman automáticamente al inicializar el Asesor experto. Así que aquí hay una regla simple: La regla de la creación de parámetros en el módulo - para cada parámetro que hemos declarado en el identificador, debemos crear un miembro privado en la clase para almacenar su valor y un miembro público para establecer un valor para él . El nombre del método debe coincidir con el nombre del parámetro. Y el último momento es establecer valores por defecto para nuestros parámetros que se utilizarán en caso de que no se llamen los métodos de valoración. Cada variable declarada o miembro de la clase debe ser inicializado. Esta técnica permite evitar muchos de los errores difíciles de encontrar. Para la inicialización automática, la mejor opción es el constructor de la clase, es siempre el primero en ser llamado cuando se crea un objeto. Para los valores por defecto, usaremos los escritos en el identificador del módulo. Aquí los miembros de la clase se inicializan utilizando la lista de inicialización. Como puede ver, todavía no hemos utilizado indicadores de media móvil. Hemos encontrado una regla simple - como muchos parámetros se indican en el identificador del módulo, por lo que muchos métodos y miembros deben estar en la clase que implementa el módulo. No hay nada complicado Sin embargo, no se olvide de establecer valores por defecto de los parámetros en el constructor. 4. Comprobar la corrección de los parámetros de entrada Hemos creado parámetros para nuestro módulo de negociación, métodos escritos para establecer valores para ellos, y ahora viene la siguiente fase importante: se debe comprobar la corrección de los parámetros. En nuestro caso, debemos comprobar los periodos de promedios móviles y el tipo de suavizado para su cálculo. Para ello debe escribir su propio método ValidationSettings () en la clase. Este método se define en la clase primaria CExpertBase. Y en todos sus hijos es obligatoriamente redefinido. Pero si no sabe nada acerca de la programación orientada a objetos, recuerde que en nuestra clase deberíamos escribir la función ValidationSettings (), que no requiere parámetros y devuelve true o false. Como puede ver, en la parte pública de la clase MACross hemos añadido la declaración del método ValidationSettings () y luego agregamos el cuerpo del método en la siguiente forma: Primero viene el tipo de retorno, luego el nombre de la clase y luego el operador de resolución del ámbito. Y todo esto es seguido por el nombre del método previamente declarado. No olvide que el nombre y el tipo de parámetros deben coincidir en la declaración y la descripción del método de clase. Sin embargo, el compilador le advertirá de tal error. Tenga en cuenta que primero se llama al método de clase base y, a continuación, se comprueban los parámetros de entrada. Si no agrega esta línea, el Asesor experto generado no podrá inicializar nuestro módulo de señales comerciales. 5. ¿Dónde están nuestros indicadores? Su tiempo para trabajar con los indicadores, ya que todos los trabajos preparatorios con los parámetros para ellos se han completado. Cada módulo de señales comerciales contiene el método InitIndicators (), que se llama automáticamente cuando se ejecuta el Asesor experto generado. En este método, debemos proporcionar indicadores de promedios móviles para nuestro módulo. En primer lugar, declarar el método InitIndicators () en la clase y pegar su borrador: Así que no hay nada complicado, declaramos el método y luego simplemente crear el cuerpo del método, como lo hemos hecho para el método ValidationSettings (). Por encima de todo, no olvide insertar el nombre de la clase y el operador. En la definición de la función. Tenemos un borrador, que podemos insertar en un código para crear promedios móviles. Hagamos esto correctamente - para cada indicador creamos una función separada en la clase, que devuelve true si tiene éxito. La función puede tener cualquier nombre, pero deje que refleje su propósito, así que permite llamar a las funciones CreateFastMA () y CreateSlowMA (). Eso es todo, sólo necesitamos escribir código que genere los indicadores MA y de alguna manera integra las manecillas de estos indicadores en el módulo de comercio, para que el módulo pueda utilizar los valores de estos indicadores. Es por eso que un puntero a una variable de tipo CIndicators se pasa como un parámetro. Lo siguiente está escrito en Documentation about it: The CIndicators es una clase para recopilar instancias de series de tiempo y clases de indicadores técnicos. La clase CIndicators proporciona la creación de clases de indicadores técnicos instanciados, su almacenamiento y administración (sincronización de datos, manejo y gestión de memoria). Esto significa que debemos crear nuestros indicadores y colocarlos en esta colección. Dado que sólo los indicadores de la forma CIndicator y sus hijos pueden ser almacenados en la colección, debemos utilizar este hecho. Usaremos CiCustom. Que es el niño mencionado. Para cada promedio móvil declaramos un objeto de tipo CiCustom en la parte privada de la clase: Por supuesto, puede crear su propia clase de indicador, que se derivará de CIndicator. E implementar todos los métodos necesarios para utilizar con el Asistente MQL5. Pero en este caso queremos mostrar cómo se puede utilizar cualquier indicador personalizado en el módulo de señales comerciales utilizando CiCustom. Heres cómo se ve en el código: En el método CreateFastMA (), compruebe primero el puntero de la colección de indicadores y, a continuación, agregue un puntero del mfastma MA rápido a esta colección. A continuación, declarar la estructura MqlParam, que está especialmente diseñado para almacenar parámetros de indicadores personalizados y llenarlo con valores. Utilizamos Promedio móvil personalizado del paquete de entrega de terminales estándar como el indicador MA personalizado. El nombre del indicador debe indicarse en relación con la carpeta de datos / MQL5 / Indicators /. Dado que Custom Moving Average. mq5 del paquete estándar se encuentra en la carpeta de datos / MQL5 / Indicadores / Ejemplos /, especificamos su ruta incluyendo la carpeta Ejemplos: Si observa el código de este indicador, puede ver todos los datos necesarios: Los valores de la estructura contienen los pares de tipo-valor: tipo de parámetro - cadena (para transferir el nombre del indicador) el nombre del archivo ejecutable del indicador personalizado - Tipo de parámetro Movers Averages. exe personalizado - int (valor del período) Período del tipo de parámetro de media móvil - int (valor de cambio) desplazamiento horizontal del promedio en barras parámetro tipo - int (valor de enumeración es un entero) método de promediación Después de llenar la estructura, el indicador se inicializa mediante el método Create () Todos los parámetros requeridos: el nombre del símbolo y el tiempo en que se calcula, el tipo del indicador de la enumeración ENUMINDICATOR, el número de parámetros de indicador y la estructura MqlParam con valores de parámetro. Y el último es especificar el número de búferes de indicadores utilizando el método NumBuffers (). El método CreateSlowMA () para crear el promedio de movimiento lento es simple. Cuando utilice indicadores personalizados en el módulo, no olvide que el Asesor experto generado por el Asistente MQL5 también se ejecutará en el probador. Así que al comienzo de nuestro archivo agregamos el testerindicator de propiedad de propiedad que comunica al probador la ubicación de los indicadores requeridos: Si utilizamos varios indicadores diferentes, debemos agregar esta línea para cada uno de ellos. Por lo tanto, hemos añadido los indicadores. Para más comodidad, permite proporcionar dos métodos de recepción de valores de MA: Como puede ver, los métodos son muy simples, utilizaron el método GetData () de la clase principal de SIndicator, que devuelve un valor del búfer indicador especificado en la posición especificada . Si necesita clases para trabajar con indicadores clásicos del paquete estándar, están disponibles en la sección Clases para trabajar con indicadores. Estamos listos para pasar a la etapa final. 6. Definir los métodos LongCondition y ShortCondition Todo está listo para que nuestro módulo funcione y genere señales comerciales. Esta funcionalidad se proporciona por dos métodos que deben describirse en cada hijo de CExpertSignal. LongCondition () comprueba las condiciones de compra y devuelve la intensidad de la señal larga de 0 a 100. ShortCondition () - comprueba la condición de venta y devuelve la intensidad de la señal corta de 0 a 100. Si la función devuelve un valor nulo, significa que no hay señal de negociación. Si hay condiciones para la señal, entonces puede estimar la intensidad de la señal y devolver cualquier valor que no exceda de 100. La evaluación de la intensidad de la señal le permite crear sistemas de comercio con flexibilidad basados en varios módulos y modelos de mercado. Lea más sobre esto en MQL5 Wizard: New Version. Puesto que estamos escribiendo un simple módulo de señales comerciales, podemos estar de acuerdo en que las señales de compra y venta se valoran por igual (100). Permite agregar los métodos necesarios en la declaración de clase. Además, permite crear la descripción de las funciones. Esto es lo que comprueba la señal de compra (es igual con la señal de venta): Tenga en cuenta que hemos declarado la variable idx, a la que se asigna el valor devuelto por la función StartIndex () de la clase primaria CExpertBase. La función StartIndex () devuelve 0, si el Asesor experto está diseñado para trabajar en todas las garrapatas y, en este caso, el análisis comienza con la barra actual. Si el Asesor experto está diseñado para trabajar a precios abiertos, StartIndex () devuelve 1 y el análisis comienza con la última barra formada. Por defecto StartIndex () devuelve 1. Lo que significa que el Asesor experto generado por el Asistente MQL5 sólo se ejecutará en la apertura de una nueva barra e ignorará las garrapatas entrantes durante la formación de la barra actual. Cómo activar este modo y cómo se puede utilizar se describirá más adelante en la carrera de acabado. El módulo está listo para su uso, así que permite crear un robot comercial en el MQL5 Wizard basado en este módulo. Comprobación de un asesor experto en el probador Para probar la eficacia de nuestro módulo, permite generar un asesor experto basado en él en el Asistente MQL5 y ejecutarlo en el gráfico. La pestaña Entradas de la ventana de inicio aparece contiene los parámetros del módulo MACross. El MQL5 Wizard también ha añadido todos los demás parámetros al generar el EA basado en el módulo de gestión de dinero seleccionado y el módulo de mantenimiento de posición (Trailing Stop). Así, sólo tuvimos que escribir un módulo de señales comerciales y recibimos una solución lista. Esta es la principal ventaja de usar el Asistente MQL5 Ahora permite probar el robot comercial en el MetaTrader 5 Strategy Tester. Vamos a tratar de ejecutar una rápida optimización de los parámetros clave. En estas configuraciones de parámetros de entrada, se requiere más de medio millón de pasadas para una optimización completa. Por lo tanto, elegimos la optimización rápida (algoritmo genético) y, adicionalmente, utilizar MQL5 Cloud Network para acelerar la optimización. La optimización se ha hecho en 10 minutos y tenemos los resultados. Como se puede ver, la creación de un robot de negociación en MQL5 y la optimización de los parámetros de entrada han tomado mucho menos tiempo de lo que sería necesario para escribir la lógica de servicio de gestión de posición, depuración y búsqueda de los mejores algoritmos. Puede saltarse este elemento o volver a él más tarde cuando esté completamente cómodo con la técnica de escribir un módulo de señales comerciales. Si abre el código fuente del Asesor experto generado por el Asistente MQL5, encontrará la variable global ExpertEveryTick con el valor false. Basado en esta variable, la función StartIndex () devuelve su valor. Comunica al Asesor experto el modo en que debe ejecutarse. Si configura ExpertEveryTick como verdadero y compila el código, el robot de comercio analizará cada señal entrante y, por lo tanto, tomará decisiones sobre los valores de la barra incompleta actual. Haga esto solo si entiende cómo funciona. No todos los sistemas comerciales están diseñados para trabajar dentro de la barra. También puede agregar una entrada de palabra clave para el parámetro ExpertEveryTick y, a continuación, tendrá un nuevo parámetro de entrada del Asesor experto. Que puede establecer en el inicio de EA en un gráfico o en el probador: Y ahora es el momento de resumir lo que hemos hecho. 6 Pasos para Crear un Módulo de Señales Comerciales Si ha dominado MQL5, ya no necesita escribir un Asesor Experto desde cero. Basta con crear un módulo de señales comerciales y, a partir de este módulo, generar automáticamente un robot de negociación con los módulos habilitados de seguimiento y volumen de comercio de gestión. E incluso si no está familiarizado con OOP o no desea profundizar mucho en la estructura de las clases de comercio, sólo puede pasar por 6 pasos: Crear una nueva clase utilizando el MQL5 Wizard en una carpeta separada MQL5 / Include / MySignals /. Nuestro módulo de señales comerciales se almacenará allí. Cree un identificador de módulo que describa los parámetros, su tipo y valores predeterminados. Declare los parámetros del módulo en la clase y agregue métodos para la inicialización en el constructor. Compruebe los parámetros de entrada y no olvide llamar ValidationSettings () de la clase base CExpertSignal. Crear objetos indicadores y agregar un método de inicialización predefinido InitIndicators (). Identificar las condiciones de las señales comerciales en los métodos LongCondition () y ShortCondition (). Cada paso es simple y requiere poca habilidad en la programación MQL5. Sólo tiene que escribir su módulo una vez, siguiendo las instrucciones, y la verificación adicional de cualquier idea de comercio no tomará más de una hora, sin cansar horas de codificación y depuración. De simple a complejo Recuerde que la estrategia comercial implementada por su robot de negociación creado con el Asistente MQL5, es tan complejo como el módulo de señales comerciales que utiliza. Pero antes de empezar a construir un sistema comercial complejo basado en un conjunto de reglas para la entrada y la salida, divídelo en varios sistemas simples y compruebe cada uno por separado. Basado en módulos simples, puede crear complejas estrategias de negociación utilizando los módulos ya hechos de señales comerciales, pero este es un tema para otro artículo. El lenguaje Microsofts Visual Basic (VBA) se utiliza junto con la interfaz de usuario de Excels, las fórmulas y las capacidades de cálculo para ofrecer herramientas de comercio poderosas y flexibles. Construir un sistema de comercio de valores automatizado en Excel Este curso en línea le muestra cómo construir un modelo automatizado de comercio de valores utilizando Microsoft Excel. El Modelo incluye cinco indicadores técnicos probados (ADX, cruces de media móvil, estocástica, bandas de Bollinger y DMI). Se le guía de manera detallada a través de la creación de hojas de trabajo, archivos, rangos, fórmulas de indicadores, botones de control, enlaces DDE / Active-X y módulos de código. Más información Construir un sistema automatizado de fondos del sector en Excel Este curso en línea le guía a través de la construcción de un modelo de rotación de fondos sectoriales a largo plazo utilizando Microsoft Excel. El Sistema se basa en el Modelo de Rotación del Sector de los economistas de mercado clásicos. Incorpora tres indicadores técnicos probados - fuerza relativa, promedio móvil de crossovers, y pendiente media móvil, para identificar los fondos del sector con mayor probabilidad de proporcionar beneficios a largo plazo. El Sistema se puede utilizar con cualquier fondo de inversión, fondo de índice, SPDR, ETF, futuro u otro índice de seguridad. Más información Construir un sistema automatizado de comercio de propagación en Excel Este curso en línea le muestra cómo construir y utilizar un modelo automatizado de comercio de propagación en Microsoft Excel. El sistema captura la diferencia de precio entre pares de seguridad de cualquier tipo: índices, acciones, futuros, opciones, LEAPs, etc. Los retornos de spread no suelen estar correlacionados con otras estrategias, lo que hace que el modelo sea una excelente adición a su programa de trading. El sistema utiliza tres indicadores técnicos probados: promedios móviles exponenciales, oscilador de precio porcentual (PPO) y canales Donchian. Más información Indicadores técnicos de archivos EZ en Excel Si te gusta diseñar y construir tus propios modelos comerciales, estos indicadores técnicos pre-construidos en Excel son tremendamente útiles. Los archivos EZ le ahorran innumerables horas de investigación y tiempo de cálculo, y cada indicador tiene 100 fórmulas correctas. Aprende más Qué obtienes con cada curso: Un tremendo valor 3 en 1 Un curso completo de cómo hacerlo Códigos PLUS de VBA y preguntas frecuentes Un modelo completo de Backtesting pre-construido en MS Excel con gráficos y estadísticas de comercio para su análisis histórico Acceso rápido A los materiales del curso Aprenda a integrar Excel, VBA, fórmulas y fuentes de datos en una herramienta de comercio rentable Adquirir conocimientos únicos aplicables a cualquier proyecto de modelado o análisis de Excel Ahorre dinero eliminando los costos recurrentes de software Calcule señales comerciales en un gran número de acciones, fondos , O se extiende en segundos (limitado sólo por la capacidad de datos de Excels) Acceso rápido a los materiales del curso Microsoft Excel 5 megabytes de espacio en disco (para almacenamiento de datos de stock) Intradía, diaria o semanal Precios de precios Open-High-Low Close-Volume Acceso a Internet OPCIONAL: DDE / Active-X enlace de importación de datos para Excel a través de su proveedor de datos (aconsejado para más de 5-10 valores, de lo contrario los datos de precios gratuitos de YahooFinance u otra fuente funciona bien ) Preguntas frecuentes ¿Qué aprenderé en este curso? ¿Es algo que puedo aprender en otro lugar? Nuestros cursos le enseñan cómo construir los componentes, el código, las fórmulas y la arquitectura de manejo de datos para el funcionamiento de los modelos comerciales. Si bien es posible aprender cada parte individualmente, ningún libro le muestra cómo integrar todas estas habilidades en un modelo de operación comercial. Nuestros cursos ofrecen enormes ahorros en tiempo y dinero al aliviar la necesidad de descubrir e implementar el conocimiento que se necesita para construir modelos de comercio a nivel institucional en Excel. Los cursos se centran directamente en la construcción de modelos comerciales sin el contenido innecesario o excesivamente generalizado que se encuentra en la mayoría de los libros de Excel y Visual Basic. Además, el conocimiento es transferible a cualquier tipo de comercio, inversión, estadística o modelos económicos, proporcionando un valor a largo plazo mucho más allá de los propios cursos. ¿Los modelos tienen gráficos o indicadores visuales Sí, los modelos contienen gráficos para mostrar el rendimiento histórico y las señales de comercio en comparación con el precio. Los modelos automatizados de comercio que construye se basan en cálculos, en lugar de utilizar herramientas gráficas gráficas. La mayor fortaleza de los modelos son su capacidad para calcular señales comerciales en cientos de acciones, fondos o se extiende rápidamente. ¿Pueden los modelos retroexaminar utilizando diferentes escenarios e indicadores? Sí. Además de los materiales del curso, se proporcionan modelos separados de backtesting para descargarlos para que pueda probar varias acciones, fondos y spreads. ¿Tengo que construir los modelos desde cero o hacer los cursos vienen con modelos terminados El propósito de estos cursos en línea es enseñar las habilidades y técnicas de la construcción de modelos comerciales en Excel. Se le requiere que construya el modelo como parte del curso. Para mayor comodidad, cada curso incluye un modelo completo de backtesting pre-construido que incorpora los mismos indicadores y lógica. No hay sustituto para la construcción de un modelo desde el principio en términos de saber cómo funciona en las condiciones reales de comercio. Esto es especialmente importante para los profesionales de la inversión, quienes deben conocer todos los detalles y matices de sus herramientas para cumplir con los requisitos de riesgo y divulgación. ¿Están las reglas y la lógica de negociación proporcionadas Sí. Cada curso discute la lógica de negociación y las reglas en profundidad significativa. Los modelos no son cajas negras. Se le enseña cómo funciona la lógica del sistema para que sus fortalezas y debilidades sean claramente evidentes. ¿Los cursos vienen con soporte técnico? Sí. Hay dos métodos de apoyo disponibles: 1) Una sección de preguntas frecuentes en línea está incluida en cada curso, y 2) Si la sección de preguntas frecuentes no responde a su pregunta, el soporte por correo electrónico está disponible sin costo alguno.
Comments
Post a Comment