Sunday, 5 November 2017

Write Your Own Trading System


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 independientemente 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 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 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 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 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. 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 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 de estos materiales están reservados por MQL5 Ltd. Copia o reimpresión de estos materiales en su totalidad o en parte está prohibido. Sistemas e indicadores personalizados Tanto ApexTrader como MultiCharts tienen muchas maneras de aprovechar su avanzada tecnología y utilizar indicadores personalizados O sistemas de negociación para analizar los datos de futuros en tiempo real y producir indicadores o señales comerciales para que usted siga o se ejecute automáticamente para su cuenta de futuros. Personalizar indicadores Puede personalizar fácilmente la configuración y los parámetros de los indicadores estándar incluidos gratuitamente con nuestras plataformas de negociación. Cada plataforma viene con más de 100 indicadores pre-construidos de los cuales puede afinar la configuración y los parámetros para personalizar a su gusto. Estrategias de importación o de escritura También puede programar su propia estrategia desde cero, ya que ambas plataformas permiten a los usuarios importar sistemas o indicadores de un tercero o puede desarrollar y volver a probar los suyos. Los operadores pueden programar usando TradeStations EasyLanguage, NinjaScript o C para crear sus propias estrategias. Comercio de Excel ApexTrader permite a los comerciantes la posibilidad de operar desde Microsoft Excel con DDE. Dynamic Data Exchange (DDE) permite a las aplicaciones de Windows compartir datos, por ejemplo, una celda de Excel se puede vincular a un valor o punto de datos en ApexTrader y cuando el valor o punto de datos cambia, se actualiza automáticamente en la hoja de cálculo de Excel. Haga clic aquí para obtener una guía del usuario de esta tecnología. API Los programadores avanzados pueden escribir en el API de ApexTrader utilizando C o el protocolo FIX o en CQGs API usando cualquier lenguaje de programación que soporte la tecnología de automatización COM como C, C, MatLab, Microsoft Excel VBA y Visual Basic 6.0. Póngase en contacto con nosotros si tiene alguna pregunta sobre estos servicios. El comercio en línea tiene un riesgo inherente debido a la respuesta del sistema y tiempos de acceso que pueden variar debido a las condiciones del mercado, el rendimiento del sistema, el volumen y otros factores. Un inversionista debe entender estos y riesgos adicionales antes de negociar. Las opciones implican riesgo y no son adecuadas para todos los inversores. Los futuros, las opciones sobre futuros y las transacciones minoristas de divisas en moneda extranjera implican un riesgo sustancial y no son apropiados para todos los inversores. Por favor lea Declaración de Divulgación de Riesgos para Futuros y Opciones antes de solicitar una cuenta. Los márgenes bajos son una espada de doble filo, ya que los márgenes más bajos significan que usted tiene mayor apalancamiento y por lo tanto un mayor riesgo. Todas las comisiones citadas no incluyen tarifas de cambio y NFA a menos que se indique lo contrario. Apex no cobra por los datos de futuros, pero a partir del 1 de enero de 2015 la CME cobra 1-15 por mes, dependiendo del tipo de datos que necesite. MetaTrader 5 - Ejemplos Cree su propio robot comercial 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 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 es necesario 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. First, declare the InitIndicators() method in the class and paste its draft: So there is nothing complicated, we declare the method and then simply create the method body, as we have done for the ValidationSettings() method. Above all, do not forget to insert the class name and the operator. in the function definition. We have a draft, which we can insert into a code to create moving averages. Lets do this properly - for each indicator we create a separate function in the class, which returns true if successful. The function can have any name, but let it reflect its purpose, so lets call the functions CreateFastMA() and CreateSlowMA(). Thats all, we only need to write code that generates the MA indicators and somehow integrates the handles of these indicators into the trading module, so that the module can use the values of these indicators. That is why a pointer to a variable of type CIndicators is passed as a parameter. The following is written in Documentation about it: The CIndicators is a class for collecting instances of timeseries and technical indicators classes. The CIndicators class provides creation of instanced of technical indicator classes, their storage and management (data synchronization, handle and memory management). This means that we must create our indicators and place them in this collection. Since only indicators of the CIndicator form and its children can be stored in the collection, we should use this fact. We will use CiCustom. which is the above mentioned child. For each moving average we declare an object of type CiCustom in the private part of the class: Of course, you can create your own indicator class, which will be derived from CIndicator. and implement all the necessary methods for use with the MQL5 Wizard. But in this case we want to show how you can use any custom indicator in the module of trading signals using 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. Developing and using trading systems can help traders attain consistent returns while limiting risk. In an ideal situation, traders should feel like robots, executing trades systematically and without emotion. So, perhaps youve asked yourself: Whats to stop a robot from trading my system The answer: Nothing This tutorial will introduce you to the tools and techniques that you can use to create your own automated trading system. ¿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 Sometimes it is impossible to put certain rules into code, which makes it difficult to develop an automated trading system. 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. Al combinar un buen análisis con una implementación efectiva, puede mejorar dramáticamente sus ganancias en este mercado. Learn to add structure to your trading methods with these six important steps. Most brokers will provide you with trade records, but it039s also important to keep track on your own. Software has made day trading quick and automatic--all the more reason to be as painstaking as possible when choosing the right one for your needs. Investopedia explica: La interconexión global de los sistemas de pagos de los Estados Unidos hace posibles las transferencias comerciales y financieras. 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. Learn about average stock market analyst salaries in the U. S. and different factors that affect salaries and overall levels. HELPING FUTURES TRADERS SINCE 1997 Futures Trading Systems / Futures Trading API If you have found a futures trading system on your own, or are looking to get your strategy implemented, we can help. We recommend the Rithmic API interface for systems, programmers, high frequency trading, and algorithmic futures traders. You can connect your trading system to Rithmics API or we can help you with renting a server near the exchange to achieve low latency execution. Rithmic API offers: A fully managed, high performance trade execution and technology platform. A set of standards-based APIs. A comprehensive order management system (OMS). 500 millisecond or lower order submission. Access to non-throttled, real-time and historical market data for embedding data and analytics within your own system. What is the Rithmic API Rithmic API is a collection of C and software libraries and interface definitions that allows programmers to incorporate Rithmic API into their proprietary software. Rithmic API provides its callers with a normalized view of market data, reference data and order and execution reports across all supported exchanges. Rithmic API also provides latency information about the market data and trade reports it receives so that an algorithmic trading program incorporating Rithmic API may take immediate action if such latency exceeds its own thresholds. System developers and API writers interested in futures trading execution can choose to incorporate standards based REST and C APIs as well as Rithmics C and R API, into their proprietary software or systems. For execution-only capabilities, a Financial Information eXchange (FIX) 4.2 compliant interface is also available. Traders who integrate these Application Programming Interfaces (APIs) are then able to take advantage of what is believed by many to be the industrys fastest and most reliable market data and order routing infrastructure, providing access to the futures markets. Additionally, Rithmic API has second speeds, enabling a algorithmic trading program to make its own latency calculations on which it may take appropriate action. System Trading Emotional decision making is often a traders worst enemy. System trading removes this emotional element from trading. In fact, many Commodity Trading Advisors (CTAs) follow proprietary trading systems. A trading system eliminates gut feelings, second-guessing, whims, uninformed decision making and other emotions which many times are responsible for traders losses. An added benefit of trading a system is that it eliminates the anxiety, time and effort of formulating a trade. How do systems work Trading systems provide discipline to overcome the fear and greed that paralyze traders and prevent them from making proper decisions. Systems remove the pressure of making specific buy/sell decisions on a trade-by-trade basis. Each order placed is governed by a predetermined set of rules that does not deviate based on anything other than market action. Finally, a system will include specific money management parameters and the mechanical placement of these orders ensures those rules are being followed. One must realize that it is still possible to lose money trading any system, and past performance is not indicative of future results. Examples of different systems include: Index trading systems, Currency trading systems, and Trend following systems. Many systems require constant monitoring where a trader must be glued to a trading terminal. Designing a trading system and writing to an API can eliminate most of the work associated with trading a system. Whats next If you are looking to write to an API or if you have your own trading system that you are looking to implement, give us a call. You can reach us at 312-920-0212 or 800-840-5617.

No comments:

Post a Comment