Monday, 21 November 2016

Código De Muestra Promedio Móvil


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 la negociación. 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 están representados en el informe. Sé que esto es alcanzable con el impulso como por: Pero realmente me gustaría evitar el uso de impulso. He googled y no he encontrado ningún ejemplo adecuado o legible. Básicamente, quiero seguir el promedio móvil de una corriente en curso de una corriente de números de punto flotante utilizando los números 1000 más recientes como una muestra de datos. Cuál es la manera más fácil de lograr esto que experimenté con el uso de una matriz circular, media móvil exponencial y una media móvil más simple y encontró que los resultados de la matriz circular se adapta a mis necesidades mejor. Si sus necesidades son simples, puede intentar usar una media móvil exponencial. Puesto simplemente, usted hace una variable del acumulador, y como su código mira cada muestra, el código actualiza el acumulador con el nuevo valor. Usted escoge un alfa constante que está entre 0 y 1, y calcule esto: Usted apenas necesita encontrar un valor del alfa donde el efecto de una muestra dada dura solamente cerca de 1000 muestras. Hmm, no estoy realmente seguro de que esto es adecuado para usted, ahora que he puesto aquí. El problema es que 1000 es una ventana bastante larga para un promedio móvil exponencial No estoy seguro de que haya un alpha que se extendería el promedio en los últimos 1000 números, sin subflujo en el cálculo de punto flotante. Pero si usted quisiera un promedio más pequeño, como 30 números o tan, esto es una manera muy fácil y rápida de hacerla. Respondió 12 de junio 12 en 4:44 1 en su puesto. El promedio móvil exponencial puede permitir que el alfa sea variable. Así, esto permite que se utilice para calcular promedios de base de tiempo (por ejemplo, bytes por segundo). Si el tiempo transcurrido desde la última actualización del acumulador es de más de 1 segundo, deje que alfa sea 1.0. De lo contrario, puede permitir que alpha be (usecs desde la última actualización / 1000000). Ndash jxh 12 de junio a las 6:21 Básicamente, quiero seguir el promedio móvil de una corriente en curso de una corriente de números de punto flotante usando los números 1000 más recientes como una muestra de datos. Tenga en cuenta que el siguiente actualiza el total como elementos añadidos / reemplazados, evitando costosos recorridos O (N) para calcular la suma - necesaria para el promedio - a la demanda. Total se hace un parámetro diferente de T a soporte, p. Usando un largo largo cuando totalizan 1000 long s, un int para char s, o un doble a total float s. Esto es un poco defectuoso en que numsamples podría ir más allá de INTMAX - si te importa que podría utilizar un unsigned mucho tiempo. O utilice un miembro de datos de bool extra para grabar cuando el contenedor se rellena primero mientras cicla numsamples alrededor de la matriz (mejor entonces cambia el nombre de algo inocuo como pos). Respondió el 12 de Junio ​​12 a las 5:19 se supone que el operador quotvoid (T sample) quot es realmente operador quotvoid (T sample) quot. Ndash oPless Jun 8 14 at 11:52 oPless ahhh. bien descrito. En realidad quería que fuera para ser operador vacío () (T muestra), pero por supuesto, usted podría utilizar cualquier notación que te gustaba. Se arreglará, gracias. El código de ejemplo en la pestaña Código completo ilustra cómo calcular el promedio móvil de una variable a través de un conjunto de datos completo, sobre las últimas N observaciones en un conjunto de datos o sobre las últimas N observaciones dentro Un grupo BY. Estos ejemplos de archivos y ejemplos de código son proporcionados por SAS Institute Inc. como es sin garantía de ningún tipo, ya sea expresa o implícita, incluyendo pero no limitado a las garantías implícitas de comerciabilidad y aptitud para un propósito en particular. Los recipientes reconocen y aceptan que SAS Institute no será responsable de los daños y perjuicios derivados de su uso de este material. Además, el SAS Institute no proporcionará soporte para los materiales aquí contenidos. Estos ejemplos de archivos y ejemplos de código son proporcionados por SAS Institute Inc. como es sin garantía de ningún tipo, ya sea expresa o implícita, incluyendo pero no limitado a las garantías implícitas de comerciabilidad y aptitud para un propósito en particular. Los recipientes reconocen y aceptan que SAS Institute no será responsable de los daños y perjuicios derivados de su uso de este material. Además, el SAS Institute no proporcionará soporte para los materiales aquí contenidos. Calcular el promedio móvil de una variable a través de un conjunto completo de datos, sobre las últimas N observaciones en un conjunto de datos, o sobre las últimas N observaciones dentro de un grupo BY.

No comments:

Post a Comment