Friday, December 23, 2016

Cree 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 para el comercio de su propio dinero que para 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 de comercio automatizado, 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 claro 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 generalmente elegido por 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 conceptos básicos de comercio. 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 de negociación más complejos basados ​​en la combinación de señales 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 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. En segundo lugar, 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 medias móviles) son demasiado simples y requieren muchos perfeccionamientos y mejoras para que puedan ser utilizados 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 usando 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 durante más tiempo 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 negociación para tomar parte en el Campeonato y obtener los resultados de las pruebas 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 Asistente MQL5 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 con 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 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 how it looks in the code: In the CreateFastMA() method, first check the pointer of the collection of indicators, and then add a pointer of the fast MA mfastma to this collection. Then declare the MqlParam structure, which is especially designed for storing parameters of custom indicators, and fill it with values. We use Custom Moving Average from the standard terminal delivery pack as the custom MA indicator. The name of the indicator must be indicated relative to the folder datafolder/MQL5/Indicators/ . Since Custom Moving Average. mq5 from the standard package is located in datafolder/MQL5/Indicators/ Examples/, we specify its path including the Examples folder: If you look at the code for this indicator, you can see all the required data: The values of the structure contain the type-value pairs: parameter type - string (to transfer the name of the indicator) the name of the executable file of the custom indicator - Custom Moving Averages. exe parameter type - int (value of the period) period of the moving average parameter type - int (shift value) horizontal shift of the average in bars parameter type - int (enumeration value is an integer) method of averaging After filling the structure, the indicator is initialized by the Create() method of all the required parameters: symbol name and the timeframe on which it is calculated, the type of the indicator from the ENUMINDICATOR enumeration, the number of indicator parameters and the MqlParam structure with parameter values. And the last one is specifying the number of indicator buffers using the NumBuffers() method. The CreateSlowMA() method for creating the slow moving average is simple. When using custom indicators in the module, do not forget that the Expert Advisor generated by the MQL5 Wizard will also run in the tester. So at the beginning of our file we add the property property testerindicator that communicates to the tester the location of required indicators: If we use several different indicators, we should add this line for each of them. So, we have added the indicators. For more convenience, lets provide two methods of receiving MA values: As you can see, the methods are very simple, they used the GetData() method of the SIndicator parent class, which returns a value from the specified indicator buffer at the specified position. If you need classes for working with classical indicators of the standard package, they are available in section Classes for working with indicators. We are ready to proceed to the final stage. 6. Define the LongCondition and ShortCondition Methods Everything is ready to make our module work and generate trading signals. This functionality is provided by two methods that must be described in each child of CExpertSignal. LongCondition() checks the buy conditions and returns the strength of the Long signal from 0 to 100. ShortCondition() - checks the sell condition and returns the strength of the Short signal from 0 to 100 . If the function returns a null value, it means that there is no trading signal. If there are conditions for the signal, then you can estimate the strength of the signal and return any value not exceeding 100. Evaluation of the signal strength allows you to flexibly build trading systems based on several modules and market models. Read more about this in MQL5 Wizard: New Version . Since we are writing a simple module of trading signals, we can agree that the buy and sell signals are valued equally (100). Lets add necessary methods in the class declaration. Also, lets create the description of functions. This is how the buy signal is checked (its all the same with the sell signal): Note that we have declare the idx variable, to which the value returned by the StartIndex() function of the parent class CExpertBase is assigned. The StartIndex() function returns 0, if the Expert Advisor is designed to work on all ticks, and in this case the analysis starts with the current bar. If the Expert Advisor is designed to work at open prices, StartIndex() returns 1 and the analysis starts with the last formed bar. By default StartIndex() returns 1 . which means that the Expert Advisor generated by the MQL5 Wizard will only run at the opening of a new bar and will ignore incoming ticks during formation of the current bar. How to activate this mode and how it can be used will be described later in the finishing stroke. The module is ready for use, so lets create a trading robot in the MQL5 Wizard based on this module. Checking an Expert Advisor in the Tester To test the efficiency of our module, lets generate an Expert Advisor based on it in the MQL5 Wizard and run it on the chart. The Inputs tab of the appeared start window contains the parameters of the MACross module. All other parameters have also been added by the MQL5 Wizard while generating the EA based on the selected money management module and position maintenance module (Trailing Stop). Thus, we only had to write a module of trading signals and received a ready solution. This is the main advantage of using the MQL5 Wizard Now lets test the trading robot in the MetaTrader 5 Strategy Tester. Lets try to run a quick optimization of key parameters. In these settings of input parameters, more than half a million of passes is required for full optimization. Therefore, we choose fast optimization (genetic algorithm) and additionally utilize MQL5 Cloud Network to accelerate the optimization. The optimization has been done in 10 minutes and we have got the results. As you can see, creating a trading robot in MQL5 and optimization of input parameters have taken much less time than would be required for writing the position management servicing logic, debugging and searching for the best algorithms. You can skip this item or go back to it later when you are completely comfortable with the technique of writing a module of trading signals. If you open the source code of the Expert Advisor generated by the MQL5 Wizard, you will find the global variable ExpertEveryTick with the false value. Based on this variable, the StartIndex() function returns its value. It communicates to the Expert Advisor the mode it should run in. If you set ExpertEveryTick true and compile the code, the trading robot will analyze each incoming tick, and thus make decisions on the values of the current incomplete bar. Do this only if you understand how it works. Not all trading systems are designed to work inside the bar. You can also add a keyword input for the ExpertEveryTick parameter, and then you will have a new input parameter of the Expert Advisor. which you can set at the EA startup on a chart or in the tester: And now its time to summarize what we have done. 6 Steps to Create a Module of Trading Signals If you have mastered MQL5, then you no longer need to write an Expert Advisor from scratch. Just create a module of trading signals and, based on this module, automatically generate a trading robot with the enabled trailing and trade volume management modules. And even if you are not familiar with OOP or do not want to delve much into the structure of trade classes, you can just go through 6 steps: Create a new class using the MQL5 Wizard in a separate folder MQL5/Include/MySignals/. Our module of trading signals will be stored there. Create a module handle that describes the parameters, their type and default values. Declare module parameters in the class and add methods for initialization in the constructor. Check the input parameters and do not forget to call ValidationSettings() of the CExpertSignal base class. Create indicator-objects and add a predefined initialization method InitIndicators(). Identify conditions of trading signals in the methods LongCondition() and ShortCondition(). Each step is simple and requires little skill in MQL5 programming. You only need to write your module once, following the instructions, and further verification of any trade idea will take no more than an hour, without tiring hours of coding and debugging. From Simple to Complex Remember that the trading strategy implemented by your trading robot created using the MQL5 Wizard, is as complex as the module of trading signals it uses. But before you start to build a complex trading system based on a set of rules for entry and exit, split it into several simple systems and check each one separately. Based on simple modules you can create complex trading strategies using the ready-made modules of trading signals, but this is a topic for another articleTrading Systems Coding Trading systems are simply sets of rules that traders use to determine their entries and exits from a position. El desarrollo y el uso de sistemas de negociación pueden ayudar a los comerciantes a lograr rendimientos consistentes mientras limitan el riesgo. En una situación ideal, los comerciantes deben sentirse como robots, ejecutar oficios sistemáticamente y sin emoción. Así que, tal vez usted se preguntó: Qué es detener a un robot de comercio de mi sistema La respuesta: Nada Este tutorial le presentará a las herramientas y técnicas que puede utilizar para crear su propio sistema de comercio automatizado. Cómo se crean sistemas automatizados de trading? Los sistemas automatizados de trading se crean convirtiendo sus reglas de sistemas de trading en código que su computadora puede entender. Su computadora entonces ejecuta esas reglas a través de su software comercial, que busca los oficios que se adhieren a sus reglas. Finalmente, los oficios se colocan automáticamente con su corredor. Este tutorial se centrará en las partes segunda y tercera de este proceso, donde sus reglas se convierten en un código que su software comercial puede comprender y utilizar. Qué software comercial soporta los sistemas de comercio automatizado Hay muchos programas comerciales que apoyan los sistemas de comercio automatizado. Algunos generarán y colocarán automáticamente oficios con su corredor. Otros encontrarán automáticamente operaciones que se ajusten a sus criterios, pero requieren que realice los pedidos con su corredor manualmente. Por otra parte, los programas de comercio completamente automáticos a menudo requieren que utilice corretajes específicos que soportan tales características que también puede tener que completar un formulario de autorización adicional. Ventajas y desventajas Sistemas de comercio automatizado tienen varios beneficios, pero también tienen sus desventajas. Después de todo, si alguien tuviera un sistema comercial que automáticamente ganara dinero todo el tiempo, él o ella tendría literalmente una máquina de hacer dinero Ventajas: Un sistema automatizado toma la emoción y el trabajo ocupado de la negociación, lo que le permite centrarse en mejorar Su estrategia y reglas de administración de dinero. 13 Una vez que se desarrolla un sistema rentable, no requiere ningún trabajo de su parte hasta que se rompa, o las condiciones del mercado exigen un cambio. Disadvantages: If the system is not properly coded and tested, large losses can occur very quickly. 13 A veces es imposible poner ciertas reglas en el código, lo que dificulta el desarrollo de un sistema de comercio automatizado. En este tutorial aprenderá a planificar y diseñar un sistema de comercio automatizado, cómo traducir este diseño en código que su computadora entienda, cómo probar su plan para asegurar un rendimiento óptimo y, finalmente, cómo poner su sistema en uso. Sistemas de Trading Codificación: Diseño del SistemaSuscríbete a las noticias que debes utilizar para obtener las últimas ideas y análisis Gracias por registrarte en Investopedia Insights - Noticias para usar. Los sistemas de trading automatizados minimizan las emociones, permiten una entrada de pedidos más rápida, conducen a una mayor coherencia y resuelven problemas de error piloto. Los operadores de sistemas dividen su tiempo entre el comercio, el desarrollo, el backtesting, la optimización y las pruebas directas, para crear sistemas comerciales viables y de alta probabilidad. Automated forex trading software scans the market for favorable trades based on your input. Obtenga más información sobre esta valiosa herramienta forex. Averigüe si tomar el camino menos viajado funcionará a su favor - o en contra de él. Al combinar un buen análisis con una implementación efectiva, puede mejorar dramáticamente sus ganancias en este mercado. Preguntas Frecuentes La depreciación puede usarse como un gasto deducible de impuestos para reducir los costos tributarios, reforzando el flujo de caja. Aprenda cómo Warren Buffett tuvo tanto éxito a través de su asistencia a múltiples escuelas de prestigio y sus experiencias en el mundo real. El Instituto CFA le permite a un individuo una cantidad ilimitada de intentos en cada examen. Aunque usted puede intentar el examen. Conozca los salarios promedio de los analistas de bolsa en los Estados Unidos y los diferentes factores que afectan los salarios y los niveles generales. Preguntas Frecuentes La depreciación puede usarse como un gasto deducible de impuestos para reducir los costos tributarios, reforzando el flujo de caja. Aprenda cómo Warren Buffett tuvo tanto éxito a través de su asistencia a múltiples escuelas de prestigio y sus experiencias en el mundo real. El Instituto CFA le permite a un individuo una cantidad ilimitada de intentos en cada examen. Aunque usted puede intentar el examen. Conozca los salarios promedio de los analistas de bolsa en los Estados Unidos y los diferentes factores que afectan los salarios y los niveles generales.

No comments:

Post a Comment