MetaTrader 4 - Experts Moving Average - experto para MetaTrader 4 El experto en media móvil para la formación de señales comerciales utiliza una media móvil. La apertura y el cierre de las posiciones se realizan cuando el promedio móvil satisface el precio en la barra recién formada (índice de barras igual a 1). El tamaño del lote se optimizará según un algoritmo especial. El asesor experto analiza la concurrencia de la media móvil y la tabla de precios de mercado. La comprobación se realiza mediante la función CheckForOpen (). Si la media móvil cumple con la barra de tal manera que la primera es superior al precio abierto pero inferior al precio cerrado, se abrirá la posición de COMPRA. Si la media móvil cumple con la barra de tal manera que la primera sea inferior al precio de apertura pero superior al precio de cierre, se abrirá la posición de venta. La gestión del dinero utilizada en el experto es muy simple, pero eficaz: el control sobre cada volumen de posición se realiza en función de los resultados de las transacciones anteriores. Este algoritmo es implementado por la función LotsOptimized (). El tamaño del lote básico se calcula sobre la base del riesgo máximo permitido: El parámetro MaximumRisk muestra el porcentaje de riesgo básico para cada transacción. Por lo general, posee un valor entre 0,01 (1) y 1 (100). Por ejemplo, si el margen libre (AccountFreeMargin) es igual a 20.500 y las reglas de administración de capital prescriben usar el riesgo de 2, el tamaño del lote básico hará 20500 0.02 / 1000 0.41. Es muy importante controlar la precisión del tamaño del lote y normalizar el resultado con los valores permitidos. Normalmente, se permiten lotes fraccionados con paso de 0,1. No se realizará una transacción con un volumen de 0,41. Para normalizar, la función NormalizeDouble () se utiliza con precisión hasta 1 carácter después del punto. Esto resulta en el lote básico de 0,4. El cálculo del lote básico sobre la base del margen libre permite aumentar los volúmenes de operación dependiendo del éxito comercial, es decir, el comercio con la reinversión. Éste es el mecanismo básico con la gestión obligatoria del capital para aumentar la eficacia de los intercambios. DecreaseFactor es la medida en que el tamaño del lote se reducirá después de un comercio no rentable. Los valores normales son 2,3,4,5. Si las transacciones precedentes no eran rentables, los volúmenes posteriores disminuirán por un factor de DecreaseFactor para esperar a través del período no rentable. Este es el principal factor en el algoritmo de gestión de capital. La idea es muy simple: si el comercio está aumentando con éxito, el experto trabaja con el lote básico de obtener el máximo beneficio. Después de la primera transacción no rentable, el experto reducirá la velocidad hasta que se realice una nueva transacción positiva. El algoritmo permite desactivar la reducción de velocidad, para ello, se tiene que especificar DecreaseFactor 0. El importe de las últimas transacciones no rentables sucesivas se calcula en el historial comercial. El lote básico se recalculará sobre esta base: Por lo tanto, el algoritmo permite reducir eficazmente el riesgo que se produce como resultado de una serie de transacciones no rentables. El tamaño del lote se comprueba obligatoriamente para el tamaño de lote mínimo permitido al final de la función porque Los cálculos realizados anteriormente pueden resultar en el lote 0: El experto está principalmente destinado a trabajar con el período diario, y en el modo de prueba - para hacer a precios cerrados. Se comercializará sólo en la apertura de una nueva barra, es por eso que los modos de cada modelo de garrapatas no son necesarios. Los resultados de las pruebas se representan en el informe. La Media Promedio Cross Expert Advisor La media móvil cruzada es una de las estrategias comerciales más populares. Utiliza dos o más medias móviles de diferentes períodos para determinar la dirección de la tendencia. Cuando la (s) media (s) más rápida (s) está por encima de la (s) media (s) móvil (es) más lenta, se abre una posición larga y viceversa para una posición corta. La media móvil se destaca en las tendencias largas y sostenidas como estrategia de negociación de mediano / largo plazo. Las estrategias basadas en la media móvil cruzada siempre han sido solicitados frecuentemente por nuestros clientes, y es por eso que ofrecemos el promedio de media móvil asesor experto. Ahora usted puede comprar este asesor experto popular para más de 50 años de antigüedad 45, el asesor de expertos de lujo del índice de media móvil ahora es sólo 19,95 características hasta 3 líneas de media móvil. Utilice dos promedios móviles, o agregue un tercio para filtrar tendencias a largo plazo. Tipos de media móvil. Sencillo . Exponencial. Suavizado o lineal ponderado. Datos de precios. Elija entre Cerrar, Abrir, Alto, Bajo, Mediano, Típico o Ponderado Cerrar. Cambio . Cambie las líneas del promedio móvil hacia delante o hacia atrás. Múltiples marcos temporales. Cada media móvil se puede establecer en cualquier período de tiempo de gráfico. Gestión del dinero: el tamaño del lote se calcula automáticamente para que el riesgo máximo por operación se limite a un porcentaje de su capital. Trailing Stop / Break Even Stop - Ajusta automáticamente la pérdida de stop como el comercio se mueve en beneficio. Establecer los niveles de beneficio mínimo, paso de arrastre en incrementos y más Daily Trade Timer - Limitar su comercio intradía a las horas que el mercado es más activo. Opcionalmente puede cerrar todas las órdenes abiertas al final del día. Manual Order Control - Coloque los pedidos manuales en su carta con un comentario comercial especificado, y el EA Cross EA rastreará la pérdida de parada y cerrar el pedido automáticamente en una cruz opuesta. Ejecutar una vez por barra o cada marca. Elija la frecuencia con la que desea comprobar las condiciones de apertura y cierre del pedido. Usted puede negociar en cada garrapata, o sólo en el cierre de cada barra. Close On Cross - Cierra la posición abierta actualmente en una cruz de media móvil en la dirección opuesta. Si está inhabilitado, los pedidos sólo se cerrarán en una pérdida de stop o manualmente. Robusto. Manejo completo de errores y notificación, reintento en requotes, y mucho más. Totalmente compatible con ECN y corredores de 5 dígitos. Alertas: elija entre alertas de audio, el cuadro de diálogo de alerta integrada, alertas por correo electrónico o notificaciones enviadas a su teléfono inteligente. Usted puede comprar la media móvil de Cross EA instantáneamente para sólo 19.95Simple Expert Advisor Problema 29. Crear un experto en comercio de asesoramiento. Argumentos Preliminares Antes de comenzar a programar un Asesor Experto en comercio, es necesario definir los principios generales de un programa futuro. No hay un programa estricto que crea reglas. Sin embargo, una vez que ha creado un programa, un programador por lo general sigue mejorando. Para poder entender fácilmente el programa en el futuro, debe crearse de acuerdo con un esquema bien pensado y fácil de entender (es especialmente importante si un programa va a ser mejorado por otro programador). El programa más conveniente es el que consiste en bloques funcionales, cada uno de los cuales es responsable de su parte de cálculos. Para crear un algoritmo de un asesor experto en comercio, vamos a analizar lo que un programa operativo debe hacer. Uno de los datos más importantes en la formación de órdenes comerciales es la información sobre los pedidos que ya existen en un terminal cliente. Algunas de las estrategias de negociación permiten un solo orden unidireccional. Generalmente, si una estrategia de negociación permite, varias órdenes pueden estar abiertas en un terminal al mismo tiempo, aunque su número debe ser razonablemente limitado. Cuando se utiliza cualquier estrategia, las decisiones comerciales deben tomarse teniendo en cuenta la situación actual. Antes de que se tome una decisión comercial en un programa, es necesario saber qué órdenes comerciales ya se han abierto o colocado. En primer lugar, un programa debe contener un bloque de órdenes de contabilidad que está entre los primeros en ejecutarse. Durante una ejecución de EA se deben tomar decisiones comerciales, cuya implementación conduce a la ejecución de operaciones comerciales. La parte del código responsable de la formación de órdenes de comercio está mejor escrita en un bloque separado. Un asesor experto puede formar una solicitud de comercio para abrir una nueva orden pendiente o de mercado, cerrar o modificar cualquiera de las órdenes existentes o no realizar ninguna acción. Una EA también debe calcular los precios de pedido en función del deseo de los usuarios. Las decisiones comerciales deben tomarse en un programa sobre la base de criterios comerciales. El éxito de todo el programa depende de la corrección de la detección de criterios comerciales en el programa. Al calcular los criterios comerciales, un programa puede (y debe) tener en cuenta toda la información que pueda ser útil. Por ejemplo, un Asesor experto puede analizar la combinación de valores de indicadores técnicos, el tiempo de los comunicados de prensa importantes, la hora actual, los valores de algunos niveles de precios, etc. Por conveniencia, la parte del programa responsable del cálculo de los criterios de negociación debe escribirse en un bloquear. Un Asesor Experto debe contener necesariamente un bloque de procesamiento de errores. El análisis de los errores que pueden producirse en la ejecución de la operación comercial permite, por un lado, repetir una solicitud comercial y, por otro lado, informar al usuario sobre una posible situación de conflicto. Estructura de un Asesor Experto Simple A continuación se muestra un esquema estructural de un Asesor Experto simple construido sobre la base de varios bloques funcionales, en cada bloque una cierta parte separada de los cálculos. En la etapa de desarrollo de EA siguiente todavía no hay código de programa. Al mismo tiempo, el algoritmo de un programa se forma en gran medida. Cómo se construirá la EA sobre las bases del esquema ofrecido puede ser fácilmente entendido simplemente mirando el esquema y orientándose sobre nombres de bloques y matrices de relaciones (control passing) entre ellos. Después del control de arranque del programa se pasa al bloque de procesamiento preliminar. En este bloque se pueden analizar algunos parámetros generales. Por ejemplo, si no hay suficientes barras en una ventana (barras necesarias para calcular parámetros de indicadores técnicos), una EA no podrá funcionar adecuadamente. En tal caso, una EA debe terminar la operación informando preliminarmente al usuario sobre ella e informando sobre el motivo de la terminación. Si no hay contraindicadores de carácter general, se pasa el control al bloque de contabilidad del pedido. En el bloque de órdenes de contabilidad se detecta el número y la calidad de los pedidos existentes en un terminal cliente para una seguridad (a la ventana de la que está conectada la EA). En este bloque deben eliminarse los pedidos de otros valores. Si una estrategia de negociación programada requiere el uso de sólo órdenes de mercado (y no utiliza órdenes pendientes) debe detectarse el hecho de la presencia de órdenes pendientes. Si una estrategia admite sólo una orden de mercado y hay realmente varias órdenes, este hecho también debe ser conocido. La tarea del bloque de contabilidad de órdenes (en este esquema) consiste en definir si la situación comercial actual corresponde a una esperada, es decir, aquella en la que la EA puede funcionar adecuadamente. Si la situación se corresponde, el control debe pasar al siguiente bloque para continuar la operación de EAs si no, la operación de EA debe ser terminada y este hecho debe ser reportado a un usuario. Si no hay órdenes en el terminal o el número y la calidad de las órdenes existentes corresponde a lo que se esperaba, el control se pasa al bloque de definir los criterios de negociación. En este bloque se calculan todos los criterios necesarios para tomar decisiones comerciales, es decir, los criterios de apertura, cierre y modificación de órdenes. El control adicional se pasa al bloque de órdenes de cierre. Es fácil entender por qué en el esquema ofrecido el bloque de órdenes de cierre se ejecuta antes que el bloque de órdenes de apertura. Siempre es más razonable procesar las primeras órdenes existentes (cerrar o modificar) y sólo después de eso abrir órdenes nuevas. Generalmente, es correcto estar guiado por el deseo de tener tan pocos pedidos como sea posible. Durante la ejecución de este bloque se deben cerrar todos los pedidos, para los que se ha activado el criterio de cierre. Después de que todas las órdenes necesarias han sido cerradas, el control se pasa a un bloque de nuevo cálculo de tamaño de órdenes. Hay un montón de algoritmos para calcular un volumen de pedido. La más simple de ellas es usar un tamaño de lote constante y fijo. Es conveniente utilizar este algoritmo en un programa para probar estrategias. Un método más popular de definir un tamaño de orden es establecer el número de lotes dependiendo de la cantidad de margen libre, por ejemplo 30-40 de la misma. Si el margen libre no es suficiente, el programa termina su operación informando al usuario sobre la razón. Después de definir el número de lotes para la apertura de nuevos pedidos, el control se pasa al bloque de apertura del pedido. Si alguno de los criterios calculados anteriormente señala la necesidad de abrir una orden de cierto tipo, se forma en este bloque una solicitud de negociación para abrir una orden. También hay un bloque de análisis de errores en un asesor experto. Si falla alguna operación comercial, el control (sólo en este caso) se pasa al bloque de procesamiento de errores. Si un error devuelto por un servidor o un terminal de cliente no es crucial, se hace un intento más para realizar una operación comercial. Si se devuelve un error crucial (por ejemplo, una cuenta se bloquea), un EA debe finalizar su operación. Recuerde que en MQL4 no hay posibilidad de que el programa termine una operación de EA en una ventana de seguridad (a diferencia de los scripts, vea Funciones especiales). Lo que se puede hacer de una manera programada es la terminación de start (). En un nuevo inicio de la función start () en una nueva marca el valor de una determinada bandera variable que prohíbe la negociación (en este caso habilitada como resultado de un error crítico) puede ser analizado y el control puede ser pasado para la terminación de la Operación de la función especial así la formación de la nueva petición del comercio no se permite. En el esquema ofrecido se analiza el valor del indicador en el bloque de procesamiento preliminar. Estrategia de negociación Los precios de mercado se están moviendo constantemente. El estado del mercado en cualquier momento puede caracterizarse condicionalmente como una tendencia - fuerte cambio de precio unidireccional (subida o bajada), o como un movimiento de precio plano - lateral con desviaciones débiles de una cierta media. Estas características del mercado son condicionales, porque no existen criterios claros, según los cuales se pueda identificar la tendencia o el plano. Por ejemplo, movimientos laterales largos con fuertes desviaciones que no se pueden rastrear ni a un plano ni a una tendencia. En general se supone que el mercado se encuentra principalmente en el estado de movimiento lateral y las tendencias suelen tener lugar 15-20 de tiempo. Todas las estrategias comerciales también se pueden dividir convencionalmente en dos grupos principales. El primer grupo contiene estrategias planas. La idea principal de estas estrategias es que después de una evidente desviación el precio debe volver a la posición anterior, es por eso que las órdenes se abren en la dirección contraria al último movimiento de precios. Las estrategias del segundo grupo son estrategias de tendencia, cuando los pedidos se abren en la misma dirección que el movimiento del precio del sal. Hay estrategias más complicadas (combinadas). Tales estrategias tienen en cuenta muchos factores diferentes que caracterizan el mercado como resultado de comercio se puede ejecutar tanto en plano y tendencia. No es difícil implementar el comercio de acuerdo con esta o aquella estrategia técnicamente - MQL4 contiene todos los medios necesarios para ello. El trabajo principal en la creación de una vez estrategia propia consiste en la búsqueda de criterios comerciales. Criterios de Negociación En este ejemplo trataremos de construir un Asesor Experto de tendencias, es decir, el que abrirá órdenes en la dirección de movimiento de precios. Por lo tanto, tenemos que encontrar entre varios indicadores técnicos los que detectan una tendencia de inicio. Uno de los métodos más simples de búsqueda de criterios comerciales se basa en el análisis de la combinación de MA con diferentes períodos de promedio. Higo. 111 y la fig. 112 muestran la posición de dos MA diferentes (con períodos de promedio 11 y 31) en diferentes partes del mercado. Los promedios con un pequeño período de promedio (líneas rojas) están más cerca de un gráfico de precios, twisty y movible. Los promedios móviles con mayor período de promediación (línea azul) son más inertes, tienen mayor retraso y están situados más lejos de los precios de mercado. Vamos a prestar atención a los lugares donde MA con diferentes períodos de promediación cruzar y tratar de decidir, si el hecho de MA cruzamiento se puede utilizar como un criterio de lectura. Higo. 111. Cruce de MA (11) y MA (31) cuando cambia la dirección del movimiento del precio. En la Fig. 111 vemos una parte del mercado en la que se justifican las órdenes de apertura en el sentido de movimiento de precios en el cruce MA. En el punto A la línea roja cruza la azul de abajo hacia arriba, después de que el precio de mercado continúa creciendo durante algún tiempo. El avance inverso del MA indica el cambio de dirección del movimiento del precio. Si abrimos una orden de Compra en el punto A y la cerramos en B, obtendremos un beneficio proporcional a la diferencia de los precios de A y B. Higo. 112. Cruce de MA (11) y MA (31) cuando cambia la dirección de movimiento del precio. Al mismo tiempo hay otros momentos en el mercado cuando se cruzan MA, pero esto no conduce a una subida o caída de precios aún más considerable (Fig. 112). Las órdenes abiertas en el cruce de MA en tales momentos darán lugar a pérdidas. Si Sell se abre en A y se cierra en B, dicha negociación traerá pérdidas. Lo mismo puede decirse de una orden de compra abierta en B y cerrada en C. El éxito de toda la estrategia implementada sobre la base del cruce de MA depende del número de piezas que se pueden caracterizar como tendencia y plana. En plano, a menudo MA crossing es un evento regular que interfiere con cualquier estrategia de tendencia. Numerosas señales falsas, por regla general, conducen a pérdidas. Esta es la razón por la que este cruce de signos de MA con diferentes períodos de promedio puede ser utilizado para la construcción de estrategias comerciales sólo en combinación con otros signos que demuestran una tendencia. En este ejemplo (para la construcción de un asesor experto simple) tendremos que rechazar el uso de este signo. Usaremos otra señal. Analizando visualmente el carácter de los cambios de precios en el mercado, podemos ver que una larga subida o caída de una dirección de precios a menudo aparece como resultado de un movimiento corto y fuerte. En otras palabras, si en un corto período se produjera un fuerte movimiento, podemos esperar su continuación en un período de mediano plazo. Higo. 113 muestra el período de mercado cuando un movimiento fuerte dio lugar a la continuación del cambio de precio en la misma dirección. Como el movimiento fuerte de cuota podemos utilizar la diferencia de MAs con diferentes períodos de promedio. Cuanto más fuerte sea el movimiento, mayor será el retraso de MA con un período promedio más grande de MA con un pequeño período de promedio. Además, incluso fuertes movimientos de precios discontinuos con retorno adicional no dan lugar a una gran diferencia entre MAs, es decir, no aparecen numerosas señales falsas. Por ejemplo, el salto de precios por 50 puntos con un retorno adicional (en el centro en la figura 113) implicó un aumento de la diferencia entre MAs sólo en 20 puntos. Al mismo tiempo, un movimiento realmente fuerte (que no suele acompañarse de una corrección considerable) en el punto A dio lugar a que la diferencia aumentara hasta 25-30 puntos. Si se abre el pedido de compra cuando se alcanza un cierto valor de diferencia entre MA, por ejemplo en A, lo más probable es que el pedido sea rentable cuando un precio alcanza un valor de orden de parada preestablecido. Utilice este valor como criterio de negociación en nuestro asesor experto. Número de órdenes En este ejemplo, analizamos un asesor experto que admite la presencia de una única orden de mercado, no se proporcionan órdenes pendientes. Este enfoque se justifica no sólo en este ejemplo, sino que puede servir de base para cualquier estrategia. Los pedidos pendientes usualmente se usan cuando un desarrollador tiene un criterio bastante confiable para pronosticar el cambio de precio futuro con alta probabilidad. Si no existe tal criterio, no hay necesidad de utilizar órdenes pendientes. La situación cuando varias órdenes opuestas para una seguridad están abiertas también no puede considerarse razonable. Se escribió anteriormente que desde el punto de vista económico se considera que los órdenes opuestos son insensatos, especialmente si los precios del pedido son iguales (ver Cierre y Supresión de Órdenes). En tal caso debemos cerrar un orden por otro y esperar una señal para abrir un orden de mercado en una determinada dirección. Relación de Criterios de Negociación Desde esta posición se hace evidente qué relaciones son posibles entre los criterios de negociación. Higo. 114 muestra tres variantes de correlación de criterios de negociación, cuando cada criterio es importante (válido). Las acciones (apertura y cierre de órdenes de mercado) se realizan en el sentido de las agujas del reloj en las siguientes imágenes. Higo. 114. Ordene la correlación de los criterios de apertura y cierre (a y b - correcta, c - incorrecta). La variante más popular de un criterio de negociación correctamente formado es la variante a. Después de abrirse una orden de mercado la compra se mantiene hasta el momento en que el criterio que requiere su cierre dispara. Después de esto se produce una pausa cuando no se abren órdenes. Además, se puede abrir una venta en el mercado. Las condiciones para cerrar una orden de venta (de acuerdo con los criterios correctamente formados) se producen antes, que las condiciones para abrir una orden de compra. Sin embargo, una orden de compra se puede abrir una vez más, si un criterio de negociación requiere esto. Pero de acuerdo con esta variante no se puede abrir una orden de mercado si hay un orden de mercado abierto en la dirección contraria. La correlación de criterios similar se encuentra en la variante b. La diferencia es que un criterio para abrir cualquier orden de mercado es al mismo tiempo un criterio para cerrar el orden opuesto. Esta variante como la variante a no permite varias órdenes abiertas en el terminal al mismo tiempo en una seguridad. La variante de correlación de criterios es incorrecta. De acuerdo con esta variante se permite la apertura de una orden de mercado cuando las órdenes contrarias no se cierran todavía, lo cual es insensato. Puede haber casos raros cuando esta variante está parcialmente justificada. La apertura de una orden opuesta a veces es aceptable para compensar las pérdidas que ocurren con pequeñas correcciones después de fuertes movimientos de precios. En tales casos se puede abrir un orden opuesto del mismo valor o menor que el existente y luego cerrarse cuando la corrección ha terminado. Tal táctica permite no interferir con el orden quotmainquot abierto en la dirección de la tendencia. En general, también son posibles varias órdenes de una dirección. Esto puede justificarse cuando un orden abierto anterior está protegido por una orden Stop y el criterio que apunta a la evolución de los precios en la misma dirección se activa de nuevo. Sin embargo, al crear una estrategia de este tipo, un desarrollador debe ser plenamente consciente de que en caso de un cambio brusco de movimiento de precios, las órdenes de stop colocadas pueden no ser ejecutadas por algunos corredores al primer toque de precio. Y la pérdida será proporcional al valor total de las órdenes de mercado unidireccionales. En nuestro ejemplo utilizamos la variante b de la correlación de criterios de negociación. Todas las órdenes de mercado abiertas están cerradas por una orden de stop o después de un criterio de apertura de una orden en sentido contrario desencadenantes (aquí criterio de cierre de compra coincide con el de apertura de venta y viceversa). Tamaño de las órdenes abiertas En cualquier estrategia de negociación los tamaños de la orden deben ser razonablemente limitados. En un caso simple, se utiliza un tamaño de pedido fijo en un asesor experto. Antes de que comience la operación EA, un usuario puede establecer cualquier tamaño de órdenes futuras y dejarlo sin cambios durante algún tiempo. Además, si el balance cambia, un usuario puede configurar un nuevo valor de números de lote de pedidos abiertos. Un tamaño de pedido demasiado pequeño proporciona más confianza en la operación ante el imprevisible cambio de mercado, pero el beneficio en caso de éxito no será tan grande. Si el tamaño del pedido es demasiado grande, se pueden obtener grandes ganancias, pero tal EA será demasiado arriesgada. Por lo general, el tamaño de las órdenes abiertas se establece de tal manera que los requisitos de margen no excedan de 2-35 por ciento del saldo o margen libre (si una estrategia permite sólo un orden abierto, el equilibrio y el margen libre en el momento antes de la apertura de la orden será igual). En este ejemplo se implementan ambas variantes. Un usuario puede elegir indicar directamente valores de órdenes o establecer el valor en porcentaje del margen libre. Detalles de programación Una tendencia simple Asesor experto tradingexpert. mq4 construido sobre la base de argumentos anteriores puede tener este aspecto: Describiendo variables Un criterio más en la estimación del programa es su legibilidad. Un programa se considera que está escrito correctamente, si puede ser leído fácilmente por otros programadores, es por eso que todas las partes del programa principal y los principales momentos que caracterizan la estrategia deben ser comentados. También es por eso que se recomienda declarar y comentar todas las variables al inicio del programa. En el bloque 1-2 se describen variables externas y globales. De acuerdo con las reglas, las variables externas y globales deben ser abiertas antes de su primer uso (vea Tipos de Variables), es por eso que se declaran en la parte de la cabeza del programa. Todas las variables locales de la función start () se recogen y se describen en la parte superior de la función (bloque 2-3) inmediatamente después de la cabecera de la función. Las reglas de declarar variables locales no lo requieren, pero tampoco lo prohíben. Si un programador se enfrenta a dificultades para entender el significado de una variable al leer el programa, puede referirse a la parte superior del programa y averiguar el significado y el tipo de cualquier variable. Es muy conveniente en la práctica de la programación. Bloque de tratamiento preliminar En este ejemplo, el preproceso consiste en dos partes (bloque 3-4). El programa termina la operación si no hay suficientes barras en una ventana de seguridad en tal caso es imposible detectar correctamente (en el bloque 5-6) los valores de las medias móviles necesarias para calcular los criterios. Además aquí se analiza el valor de la variable Trabajo. En la operación EA normal, el valor de la variable es siempre verdadero (se establece una vez durante la inicialización). Si se produce un error crítico en la operación del programa, se asigna false a esta variable y start () finaliza su operación. Este valor no cambiará en el futuro, es por eso que no se ejecuta el código siguiente. En tal caso, la operación del programa debe ser detenida y el motivo del error crítico debe ser detectado (si es necesario, se debe contactar a un centro de negociación). Una vez solucionada la situación, se puede iniciar de nuevo el programa, es decir, el EA se puede conectar a una ventana de seguridad. Órdenes de contabilidad El consejero experto descrito permite trabajar sólo con una orden de mercado. La tarea del bloque de contabilización de órdenes (bloque 4-5) es definir las características de un orden abierto, si lo hay. En el bucle que va a través de las órdenes para todo el mercado existente y las órdenes pendientes se comprueban, a saber de la primera (int i1) a la última (iampltOrdersTotal ()). En cada ciclo de iteración el siguiente orden es seleccionado por la función OrderSelect (). La selección se realiza desde una fuente de órdenes abiertas y pendientes (SELECTBYPOS). Si la selección se ejecuta con éxito (es decir, hay una orden más en el terminal), además este orden y la situación debe ser analizada: si el orden se abre para la seguridad, en la que la EA opera, si el orden es de mercado o pendiente También debe tenerse en cuenta al contar órdenes. En la línea: se eliminan todas las órdenes abiertas para otra seguridad. El operador continúa detiene la iteración y las características de tal orden no se procesan. Pero si se abre el pedido para la seguridad, a la ventana de la que se adjunta la EA, se analiza más a fondo. Si OrderType () devuelve un valor mayor que 1 (consulte Tipos de transacciones), la orden seleccionada es una pendiente. Sin embargo, en este Asesor experto gestionar órdenes pendientes no se proporciona. Significa que la ejecución de start () debe finalizar porque se produjo una situación de conflicto. En tal caso después de un mensaje sobre la operación start () la terminación start () la ejecución es detenida por el retorno del operador. Si el último cheque mostró que la orden analizada es una orden de mercado, se calcula y analiza el número total de pedidos para un valor. Para la primera de estas órdenes se definen todas las características necesarias. Si en la siguiente iteración el contador de órdenes (variable Total) encuentra la segunda orden de mercado, también se considera que la situación es conflictiva, ya que la EA no puede administrar más de una orden de mercado. En tal caso, la ejecución start () se detiene después de mostrar un mensaje correspondiente. Como resultado de la ejecución del bloque de contabilidad de pedido (si todas las comprobaciones tuvieron éxito) la variable Total conserva su valor cero si no hay órdenes de mercado o obtiene el valor 1 si existe una orden de mercado para nuestra seguridad. En este último caso, algunas variables establecidas en correspondencia con las características de orden (número, tipo, precio de apertura, niveles de parada y valor de pedido) también obtienen sus valores. Cálculo de los criterios de negociación En el ejemplo analizado, la definición de los criterios de negociación (bloque 5-6) se calcula sobre la base de la diferencia entre las medias móviles con diferentes períodos de promediación. De acuerdo con los criterios aceptados, un gráfico es dirigido al toro si el valor actual del MA con un período más pequeño es mayor que el valor del MA con un período mayor y la diferencia entre los valores es mayor que un cierto valor. En un movimiento de oso MA con período menor es menor que MA con un período mayor y la diferencia es también mayor que un cierto valor crítico. A los valores de comienzo de bloque de MAs con periodos de promedio PeriodMA1 y PeriodMA2 se calculan. El hecho de significación de cualquier criterio de negociación se expresa a través del valor de una variable correspondiente. Las variables OpnB y OpnS indican el criterio de activación para la apertura de las órdenes de compra y venta, las variables Cls y ClsS para el cierre. Por ejemplo, si un criterio para la apertura de Buy no se ha activado, el valor de OpnB sigue siendo falso (establecido en la inicialización de la variable) si se ha activado, OpnB obtiene el valor true. En este caso el criterio para cerrar Sell coincide con el de apertura Buy, el criterio de apertura Sell coincide con el de closing Buy. Los criterios de negociación aceptados en este ejemplo se usan únicamente con fines educativos y no deben considerarse como una guía cuando se cotiza en una cuenta real. Órdenes de Cierre Se escribió anteriormente que este Asesor Experto está destinado a la operación sólo con una orden de mercado abierta para una seguridad, a la que se adjunta la EA. Hasta el momento en que el control en el programa se pasa al bloque de cierre de pedido se sabe con certeza que en el momento actual no hay órdenes de seguridad, o sólo hay una orden de mercado. Es por eso que el código en el bloque de cierre de órdenes se escribe para que sólo una orden se puede cerrar con éxito. Este bloque se basa en el bucle infinito, mientras que el cuerpo del mismo consta de dos partes análogas: una para cerrar una orden de compra, otra para cerrar una orden de venta. Mientras que se utiliza aquí con el propósito de que en caso de un fracaso operación comercial podría repetirse una vez más. En la cabecera del primer operador si se calcula la condición para cerrar una orden de compra (las órdenes de venta se cierran de manera análoga). Si el tipo de un pedido abierto anterior corresponde a Buy (consulte Tipos de transacciones) y el signo para cerrar Buy es relevante, el control se pasa al cuerpo del operador si se forma una solicitud de cierre. Como precio de cierre de pedido en la función OrderClose () se indica el valor de una cotización a dos caras correspondiente al tipo de pedido (ver Requisitos y limitaciones en la realización de transacciones). Si una operación comercial se ejecuta correctamente, después de que se muestre un mensaje sobre el cierre del pedido, la corriente mientras la iteración se detiene y la ejecución del bloqueo de cierre de órdenes ha terminado. Pero si la operación falla, se llama a la función definida por el usuario para procesar errores FunError () (bloque 10-11). Procesamiento de errores Como un parámetro pasado en FunError () se utiliza el último código de error calculado por GetLastError (). Dependiendo del código de error FunError () devuelve 1 si el error no es crítico y la operación puede repetirse, y 0 si el error es crítico. Los errores críticos se dividen en dos tipos: aquellos, después de los cuales se puede continuar la ejecución de un programa (por ejemplo, un error común) y después de lo cual se debe detener la ejecución de cualquier operación comercial (por ejemplo, cuenta bloqueada). Si después de una operación comercial fracasada la función definida por el usuario devuelve 1, la corriente mientras la iteración termina y durante la siguiente iteración se hace otro intento de ejecutar la operación para cerrar la orden. Si la función devuelve 0, la ejecución start () actual se detiene. En el siguiente tick start () el terminal del cliente iniciará de nuevo y si se mantienen las condiciones para cerrar el pedido, se realizará otro intento de cerrar el pedido. Si durante el procesamiento de errores se descubre que la ejecución del programa adicional no tiene sentido (por ejemplo, el programa funciona en una versión de terminal antiguo) durante el próximo inicio, la ejecución de la función especial start () finalizará en el bloque de procesamiento preliminar cuando Analizando el valor de la variable Trabajo. Cálculo del monto de lotes para nuevas órdenes La cantidad de lotes se puede calcular de acuerdo con una configuración de usuario que sigue una de las dos variantes. La primera variante es un cierto valor constante establecido por un usuario. De acuerdo con la segunda variante, la cantidad de lotes se calcula sobre la base de una suma igual a un cierto porcentaje (fijado por un usuario) de un margen libre. Al comienzo del bloque de definición de la cantidad de lotes para nuevas órdenes (bloque 7-8) se calculan los valores necesarios de algunas variables - cantidad mínima permitida de lotes y paso de cambio de lote establecido por un corredor, margen libre y precio de Un lote para la seguridad. En este ejemplo se proporciona lo siguiente. Si un usuario ha establecido un cierto valor distinto de cero de la variable externa Lts, por ejemplo 0,5, se acepta como la cantidad de lotes Lts cuando se crea una petición de comercio para abrir una orden. Si se asigna 0 a Lts, el número de lotes Lts se define a partir de la variable Prots (porcentaje), margen libre y condiciones establecidas por un corredor. Después de calcular Lts, se realiza un chequeo. Si este valor es inferior al valor mínimo permitido, se acepta el valor mínimo permitido. Pero si el margen libre no es suficiente, después de un mensaje correspondiente la ejecución start () se termina. Apertura de órdenes El bloque de órdenes de apertura (bloque 8-9) como el tipo de órdenes de apertura es un bucle infinito mientras. En el encabezado del primer operador si se calculan las condiciones para abrir una orden de compra: si no hay pedidos para la seguridad (la variable Total es igual a 0) y el signo para abrir una orden de compra es relevante (OpnB es cierto), el control Se pasa a si el cuerpo del operador para abrir una orden. En tal caso, después de actualizar las tarifas se calculan los precios de los niveles de parada. Los valores de los niveles de parada son establecidos inicialmente por un usuario en las variables externas StopLoss y TakeProfit. En un caso general, un usuario puede establecer valores para estos parámetros más pequeños que un corredor lo permita. Además, un corredor puede cambiar la distancia mínima permitida en cualquier momento (es un caso a menudo en movimientos fuertes del mercado, por ejemplo, antes del lanzamiento de noticias importante). Es por eso que antes de cada orden los niveles de parada de apertura deben calcularse teniendo en cuenta los valores establecidos por un usuario y el valor mínimo permitido establecido por un corredor. Para calcular los niveles de parada, la función definida por el usuario NewStop () se utiliza como parámetro pasado, se utiliza el valor de nivel de parada establecido por un usuario. En NewStop () primero se calcula la distancia mínima permitida actual. Si el valor establecido por un usuario corresponde a los requisitos de un corredor, se devuelve este valor. Si es menor que el valor permitido, se utiliza el valor permitido por un intermediario. Los precios de las solicitudes de parada se calculan a partir de la cotización bilateral correspondiente (consulte Requisitos y limitaciones en la realización de transacciones). Una solicitud comercial para abrir una orden se forma utilizando la función OrderSend (). Para el cálculo del precio de apertura de pedidos y los precios de las solicitudes de parada se utilizan los valores de cotización de dos caras correspondientes al tipo de pedido. Si una operación comercial fue exitosa (es decir, un servidor devolvió el número de una orden abierta) después de que se muestre un mensaje sobre una apertura satisfactoria del pedido. Start () finaliza. Si no se abrió una orden y el terminal cliente devolvió un error, el error se procesa de acuerdo con el algoritmo descrito anteriormente. Algunas peculiaridades del código El código del asesor experto analizado está orientado a la implementación de una determinada estrategia. Tenga en cuenta que algunas líneas de programa contienen variables y cálculos que se cambiarían si se cambiaba la estrategia. Por ejemplo, de acuerdo con la estrategia aceptada, el Asesor experto se desarrolla para trabajar sólo con una orden. Esto permitió utilizar la variable Boleto tanto para la identificación de un número de orden de cierre (en bloque de cierre 6-7) como para la identificación de un éxito de ejecución de operación comercial al abrir una orden (en el bloque de apertura 8-9 ). En este caso, tal solución es aceptable. Sin embargo, si tomamos el código analizado como base para la implementación de otra estrategia (por ejemplo, permitir órdenes opuestas) tendremos que introducir una o varias variables para poder reconocer el número de pedidos abiertos e identificar el éxito de las operaciones comerciales. En otras modificaciones de la estrategia tendremos que cambiar las líneas de programa que contienen parte de las lógicas contenidas en la estrategia de origen. A saber, en el bloque de contabilidad de pedidos no tendremos que terminar la operación del programa si hay varios pedidos abiertos para una seguridad. Además, las condiciones para abrir y cerrar pedidos también cambiarán. This will entail the code changing in blocks of opening and closing orders. On the basis of this analysis we can easily conclude that the described simple Expert Advisor is not perfect. In a general case, for the implementation of order accounting one should use a universal function based on using data arrays and not containing logics of a certain strategy. The same can be said about the blocks of opening and closing orders. A more complete program must contain a main analytical function, all other user-defined functions must be subordinate to it. This analytical function must contain a program code, in which all conditions for the implementation of any strategy are analyzed all subordinate functions must perform limited actions. The function of accounting orders must only account orders, functions of opening and closing orders must only open and close orders, and the analytical function must quotthinkquot and manage all other functions, i. e. call them when needed. Sub-Systems are designed to add weight to the EA Core Strategy which will improve, significantly, the probabilities of a successful trade. Heres how sub-systems work: If a Buy Signal is generated from the Core System, the EA would look to the active Sub-System(s) to support the Buy Signal. Si todos los Sub-Sistemas son Bullish entonces la señal de compra sería ejecutada. In Sell Positions, all Sub-Systems would need to be Bearish to validate the Sell Trade. All 9 sub-systems are included with all of our EA Products - there is no additional costs for sub-systems. Sub-Systems can be easily switched on or off and you have full control over configuration/indicator settings. Promedios móviles (puede configurar la media móvil) - si el sistema central produce una señal de compra, el precio tendría que estar por encima de la media móvil para validar el comercio. Lo contrario es cierto para las señales de venta. Spike Detection (especifica el tamaño de la espiga y el número de velas anteriores para comprobar los picos) - si el sistema central produce una señal de compra, tendría que haber un pico alcista en el número x anterior de velas para validar el comercio (Siendo x el valor especificado). Lo contrario es cierto para las señales de venta. Color de la vela anterior (especifique el tamaño de la vela aceptado y el número de velas anteriores para comprobar) - si el sistema central produce una señal de compra, tendría que haber una vela verde que cumpla con sus criterios para validar el comercio. Lo contrario es cierto para las señales de venta. SAR parabólico (puede configurar ajustes pSAR) - si el sistema central produce una señal de compra, el precio tendría que estar por encima del punto pSAR (alcista) para validar el comercio. Lo contrario es cierto para las señales de venta. Bulls amp Bears Power (puede configurar Bulls amp Bears Power) - si el sistema central produce una señal de compra, el indicador tendría que estar favoreciendo a los toros para validar el comercio. Lo contrario es cierto para las señales de venta. Los restantes 4 subsistemas, RSI. MACD. Momentum. Los estocásticos están codificados para detectar la tendencia subyacente alcista / bajista que hacemos mediante la regresión lineal. Puede configurar cada una de las configuraciones del indicador y el número de periodos a verificar para determinar el estado de la tendencia subyacente. Como antes, si el sistema central produce una señal de compra, los indicadores que habilitó tendrían que tener tendencias subyacentes para validar el comercio. The opposite is true for sell trades. Elija entre una gama de estrategias de Stop / Loss. Puede aplicar el Stop / Loss estático y las ganancias de la toma, las paradas de arrastre, el parámetro High / Low Stop / Loss (posición de venta Stop / Loss automáticamente ajustada a la anterior Candle Low y Buy Position Stop / Loss automáticamente ajustada a la anterior Candle High) Parada / Pérdida donde los precios de Stop / Loss se ajustan automáticamente en función de los precios de Tendencia de la media móvil. You can also instruct this Expert Advisor to automatically close all positions if a specified Cash or Pips target has been met. Usted tiene control completo sobre todas estas estrategias y su configuración. Elija entre una selección de estrategias de administración de dinero. Se puede aplicar un tamaño de lote estático o puede optar por Cerrar parcialmente lotes si se ha alcanzado un objetivo de pips específico. You can also utilise a Risk Percentage of Account Balance or Account Equity on each trade placed or choose the Dynamic/Performance based Lot Size which looks at trade performance from the previous 8 trades taken and will allocate a low Lot Size during Winning Extremes and allocate a higher Lot Size during Losing Extremes. También está disponible Aumentos / Disminuciones en el Tamaño del Lote basado en el comercio anterior - cuando el EA gana, el Tamaño del Lote es incrementado por el valor especificado lo contrario es cierto cuando el comercio anterior pierde. Our Expert Advisor product range has been rigorously tested with over 25 Forex Brokers and are Compatible with All Versions of MetaTrader, All Chart Timeframes amp All Instruments included within your MetaTrader Platform ( Forex, Silver, Gold, Indices etc ). Todos los productos de Expert Advisor vienen con actualizaciones gratuitas de tiempo de vida, soporte en línea y telefónico junto con un manual que describe, con gran detalle, cómo usar su EA recién comprada. Más importante aún, usted tiene control completo sobre toda su funcionalidad. El asesor experto en promedios móviles está disponible para descargar con una reducción masiva 50 en el precio. You can purchase this Expert Advisor today for just pound19.99 (Price before reduction pound39.99) To proceed, simply click on the Download button below (right). Si necesita información adicional sobre este EA, o cualquiera de nuestra gama de productos, no dude en ponerse en contacto con un miembro del equipo que estará encantado de ayudarle. Todos los pagos de EA MegaStore son manejados de forma segura por Paypal. EA MegaStore are verified Business Users ofCreate your own Expert Advisors with My EA Builder The Moving Average EA is the simplest EA. You can create it with My EA Builder in a couple of minutes. The MA EA follows these rules: - Buy when the fast (or short) period moving average is above the slow (or long) period moving average. - Sell if the opposite condition is true. In the image from MT4, the green line is the fast moving average. The red line is the slow moving average. To start creating the EA with My EA Builder, click on EA set up, then drag the Max Number of Open Positions block and drop it in the center panel: The Max Number of Open Positions allows you to control the number of opened positions per pair. If you set it to 1, the EA will only open one position per pair. Click on the block and set it to 1. Drag and drop the Every Bar Do This block into the center panel. Expert Advisors are executed every time there is a new price update or quote (or every tick). If you want your EA to be executed every bar, you need to add the EA logic inside the Every Bar Do This block. Blocks that are not inside the Every Bar Do This block are executed every tick (or price update) The red X image is the suggestion feature it shows a list of possible blocks that can be included inside the Every Bar Do This block. You can add blocks from the left panel or using the suggestion feature. Click on the red X and select the ifelse block from the Trading Logic option. The ifelse block is used to evaluate trading conditions. If the condition is true, the blocks under then will be executed. If the condition is false, the blocks under else will be executed. A basic trading condition is made comparing blocks. You can use Technical Indicators, numbers, price, and volume in the comparison. Using the suggestion feature click on the first comparison block. Use the suggestion feature to add the Moving Average Indicator. Bars Ago is identifies the bar used to get the Moving Average value. Bars Ago equals to 1 means Get the Moving Average value from one bar before the current bar. Bars Ago equals to 0 means Get the Moving Average value from the current bar. Add another Moving Average block to complete the trading condition. This time use the left panel, click on Indicators and search for the Moving Average Indicator. Drag and drop the MA Indicator into the right input of the comparison block. Set the MA period to 18, and Bars Ago to 1. Using the suggestion feature under then, select the Buy block from the Trade option. Then follow the same procedure to add the Sell icon under else. Set the pair, lot size, take profit, stop loss, and trailing stops if any. Stops are set using pips so 100 means 100 pips. In plain English, the EA logic in the image can be read like this: Run the EA once per bar. If Moving Average with period 9 is higher than Moving Average with period 18 then Buy 0.1 lots, with a take profit of 100 pips, a stop loss and trailing stops of 50 pips. But if the condition is false (Moving Average with period 9 is not higher than Moving Average with period 18) Sell 0.1 lots. The same Expert Advisor can be built using two trading conditions: Please note that the EA does not have any blocks to close positions. If you are not hedging a new Buy order closes all existing short positions before it is executed. A new Sell order closes all existing long positions before it is executed. If you hedge, you need to use the Close long and Close short blocks. The Simple MA EA is not an MA Crossover EA, it is a simple Expert Advisor that uses a simple condition. An MA Crossover uses complex trading conditions. Please see the section Complex Trading Conditions to learn how to create crossovers. GENERATING THE EA FOR METATRADER After you finish your EA, click on the MQL4 icon. A new window opens showing the EA Code. You can also generate the EA Code using the View Code option in the MQL Code menu. In the Displaying code window you have three options: - Save as, so you can save the EA code as an mq4 file. You then need to compile the EA on your own to create the ex4 file (open the EA code file with MetaEditor and use the compile option or hit F5) - Copy to Clipboard, so you can use the Paste option in any window application. - Create the Expert Advisor for MetaTrader, this option saves the EA code (mq4 file) and the compiled EA (ex4 file). MetaTrader uses the compiled EA to trade. Keep in mind this option works if you set up the MetaTrader directory and the MetaTrader Expert folder.
Opciones de FX Acerca de Opciones de FX Obtenga exposición a los movimientos de las tasas en algunas de las monedas globales más negociadas. Aplicar las mismas estrategias comerciales y de cobertura que utiliza para las opciones de acciones e índices, incluidos los diferenciales con hasta diez patas. ISE FX Las opciones se liquidan en efectivo en dólares de los EE. UU., ejercicio de estilo europeo y se pueden negociar directamente desde su cuenta de corretaje existente. La negociación en Opciones de FX abre a las 7:30 am (hora de Nueva York) y cierra a las 4:15 p. m. especificaciones del producto PRECIOS DE LOS PUNTOS Los precios al contado se basan en los tipos de cambio reportados por SIX. Las tasas se escalan usando modificadores, como se muestra a continuación, por lo que el valor subyacente refleja un nivel de precios similar al de una acción o índice. Índice de velocidad subyacente x modificador de velocidad Esta tabla resume el modificador de velocidad para cada par. Para ver la...
Comments
Post a Comment