MetaTrader 5 - Indicadores La clase para dibujar Moving Average utilizando el indicador de buffer de anillo para MetaTrader 5 La clase CMAOnRingBuffer está diseñada para el cálculo de Promedios Móviles (Promedio Móvil) usando el algoritmo del buffer de anillo. Archivo de la clase CMAOnRingBuffer. mqh debe colocarse en la carpeta IncOnRingBuffer que debe establecerse en MQL5Include. Se adjuntan a la descripción dos archivos con los ejemplos utilizados por la clase de esta carpeta. Archivo con la clase de la memoria tampón de anillo también debe estar en esta carpeta. Para obtener los datos calculados del indicador desde el búfer de anillo es posible a partir de la matriz habitual. Por ejemplo: Tenga en cuenta que la indexación en el búfer de anillo es la misma que en una serie de tiempo. El indicador calcula el archivo TestMAOnArrayRB. mq5 en base a la serie temporal de precios. Se demuestra la aplicación del método MainOnArray () El archivo TestMAOnValueRB. mq5 demuestra el uso del método MainOnValue (). Al principio se calcula y dibuja el indicador MA. Luego, sobre la base del amortiguador de anillo de este indicador, se calcula un indicador más. El resultado del trabajo del TestMAOnArrayRB. mq5 con el tamaño del búfer de anillo de 256 elementos El resultado del trabajo del TestMAOnValueRB. mq5 con el tamaño del búfer de anillo de 256 elementosMetaTrader 5 - Indicadores La clase para dibujar MACD usando el Indicador de búfer de anillo para MetaTrader 5 La clase CMACDOnRingBuffer está diseñada para calcular el indicador técnico Convergencia / Divergencia de Media Móvil (Convergencia / Divergencia de Media Móvil) usando el algoritmo del búfer de anillo. Archivo de la clase CMACDOnRingBuffer. mqh debe colocarse en la carpeta IncOnRingBuffer que debe establecerse en MQL5Include. Se adjuntan a la descripción dos archivos con los ejemplos utilizados por la clase de esta carpeta. El archivo con la clase del búfer de anillo y la clase de Promedio móvil también debe estar en esta carpeta. Para obtener los datos calculados del indicador desde el búfer de anillo es posible a partir de la matriz habitual. Por ejemplo: Tenga en cuenta que la indexación en el búfer de anillo es la misma que en la serie de tiempo. El archivo TestMACDOnArrayRB. mq5 calcula el indicador basado en la serie temporal de precios. La aplicación de método MainOnArray () se demuestra El archivo TestMACDOnValueRB. mq5 demuestra el uso del método MainOnValue (). Al principio se calcula y dibuja el indicador MACD. A continuación, sobre la base de la memoria intermedia de anillo de este indicador, se dibuja un indicador MACD más. El resultado del trabajo de la TestMACDOnArrayRB. mq5 con el tamaño de la memoria intermedia de anillo de 256 elementos el resultado de la labor de la TestMACDOnValueRB. mq5 con el tamaño de la memoria intermedia de anillo de 256 elementsI saben esto es alcanzable con el impulso como: 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. Ndash Tony D Jun 8 14 at 14:27
No comments:
Post a Comment