Bollinger Bands Source Code


MetaTrader 4 - Indicadores Bollinger Bands, BB - indicador para MetaTrader 4 Descripción: Bollinger Bands Indicador Técnico (BB) es similar a los sobres. La única diferencia es que las bandas de Envelopes se trazan a una distancia fija () lejos de la media móvil, mientras que las Bandas de Bollinger se trazan un cierto número de desviaciones estándar lejos de ella. La desviación estándar es una medida de la volatilidad, por lo tanto Bollinger Bands se ajustan a las condiciones del mercado. Cuando los mercados se vuelven más volátiles, las bandas se ensanchan y se contraen durante períodos menos volátiles. Las bandas de Bollinger normalmente se trazan en el gráfico de precios, pero también se pueden agregar al gráfico de indicadores (Indicadores Personalizados). Al igual que en el caso de los sobres, la interpretación de las bandas de Bollinger se basa en el hecho de que los precios tienden a permanecer entre la parte superior y la línea de fondo de las bandas. Una característica distintiva del indicador Bollinger Band es su anchura variable debido a la volatilidad de los precios. En períodos de cambios de precios considerables (es decir, de alta volatilidad), las bandas se ensanchan dejando mucho espacio a los precios para moverse. Durante los períodos de statu quo, o los períodos de baja volatilidad, la banda mantiene los precios dentro de sus límites. Los siguientes rasgos son particulares a la venda de Bollinger: los cambios abruptos en precios tienden para suceder después de que la venda se contraiga debido a la disminución de la volatilidad. Si los precios se rompen a través de la banda superior, es de esperar una continuación de la tendencia actual. Si los piques y huecos fuera de la banda son seguidos por picas y huecos dentro de la banda, puede ocurrir un retroceso de la tendencia. El movimiento de precios que ha comenzado desde una de las líneas de bandas suele llegar a la opuesta. La última observación es útil para la previsión de guías de precios. Cálculo: Las bandas de Bollinger están formadas por tres líneas. La línea media (ML) es una media móvil habitual. ML SUM CLOSE, N / N La línea superior, TL, es la misma que la línea media un cierto número de desviaciones estándar (D) más altas que el ML. TL ML (DStdDev) La línea inferior (BL) es la línea media desplazada hacia abajo por el mismo número de desviaciones estándar. BL ML (DStdDev) N es el número de períodos utilizados en el cálculo SMA Promedio móvil simple StdDev significa Desviación estándar. Se recomienda utilizar el promedio móvil simple de 20 períodos como la línea media, y trazar las líneas superior e inferior de dos desviaciones estándar de distancia de la misma. Además, los promedios móviles de menos de 10 períodos son de poco efecto. Indicador Técnico Descripción La descripción completa de Bollinger BandsBB está disponible en el Análisis Técnico: Bollinger Bands A continuación puede ver mi método C para calcular Bollinger Bands para cada punto (media móvil, banda ascendente, banda descendente). Como se puede ver este método utiliza 2 para bucles para calcular la desviación estándar en movimiento utilizando el promedio móvil. Se utilizó para contener un bucle adicional para calcular el promedio móvil durante los últimos n períodos. Éste que podría eliminar añadiendo el nuevo valor de punto a totalaverage al principio del bucle y eliminando el valor de punto i - n al final del bucle. Mi pregunta ahora es básicamente: ¿Puedo quitar el lazo interno restante de una manera similar que me las arreglé con la media móvil preguntó Jan 31 13 a las 21:45 La respuesta es sí, se puede. A mediados de los años 80 desarrollé tal algoritmo (probablemente no original) en FORTRAN para una aplicación de monitoreo y control de procesos. Desafortunadamente, eso fue hace más de 25 años y no recuerdo las fórmulas exactas, pero la técnica era una extensión de la de los promedios móviles, con cálculos de segundo orden en lugar de los lineales. Después de mirar a su código algunos, creo que puedo suss cómo lo hice en ese entonces. Observe cómo su bucle interno está haciendo una suma de cuadrados: de la misma manera que su promedio debe haber tenido originalmente una suma de valores Las únicas dos diferencias son el orden (su poder 2 en lugar de 1) y que está restando el promedio Cada valor antes de cuadrarlo. Ahora que puede parecer inseparable, pero de hecho pueden ser separados: Ahora el primer término es sólo una suma de cuadrados, que maneja que de la misma manera que usted hace la suma de los valores para el promedio. El último término (k2n) es sólo el promedio cuadrado veces el período. Puesto que usted divide el resultado por el período de todos modos, usted puede apenas agregar el nuevo cuadrado medio sin el lazo adicional. Finalmente, en el segundo término (SUM (-2vi) k), puesto que SUM (vi) kn total puedes cambiarlo en esto: o simplemente -2k2n. Que es -2 veces la media cuadrada, una vez que el período (n) se divide de nuevo. Así que la fórmula combinada final es: (asegúrese de comprobar la validez de esto, ya que estoy derivando de la parte superior de mi cabeza) Y la incorporación en su código debe verse algo así: El problema con los enfoques que calculan la suma de los cuadrados Es que ella y el cuadrado de sumas pueden llegar a ser bastante grandes, y el cálculo de su diferencia puede introducir un error muy grande. Así que vamos a pensar en algo mejor. Para saber por qué esto es necesario, vea el artículo de Wikipedia sobre Algoritmos para calcular la varianza y John Cook sobre la explicación teórica de los resultados numéricos) Primero, en lugar de calcular el stddev permite centrarse en la varianza. Una vez que tenemos la varianza, stddev es sólo la raíz cuadrada de la varianza. Suponga que los datos están en una matriz llamada x rodando una ventana de tamaño n por uno se puede pensar en como la eliminación del valor de x0 y la adición del valor de xn. Permite denotar los promedios de x0..xn-1 y x1..xn by y respectivamente. La diferencia entre las varianzas de x0..xn-1 y x1..xn es, después de anular algunos términos y aplicar (ab) (ab) (ab): Por lo tanto, la varianza es perturbada por algo que no requiere que usted mantenga la Suma de cuadrados, lo que es mejor para la precisión numérica. Puede calcular la media y la varianza una vez al principio con un algoritmo apropiado (método de Welfords). Después de eso, cada vez que tenga que reemplazar un valor en la ventana x0 por otro xn, actualiza el promedio y la varianza como esto: Gracias por esto. Lo usé como base de una implementación en C para el CLR. Descubrí que, en la práctica, puede actualizar tal que newVar es un número negativo muy pequeño, y el sqrt falla. Introduje un if para limitar el valor a cero para este caso. No idea, pero estable. Esto ocurrió cuando cada valor en mi ventana tenía el mismo valor (usé un tamaño de ventana de 20 y el valor en cuestión era 0.5, en caso de que alguien quiera intentar reproducir esto.) Ndash Drew Noakes Jul 26 13 at 15:25 Ive Utilizó commons-math (y contribuyó a esa biblioteca) para algo muy similar a esto. Su código abierto, portar a C debería ser fácil como pastel comprado en la tienda (has intentado hacer un pastel desde cero). Compruébelo: commons. apache. org/math/api-3.1.1/index. html. Tienen una clase StandardDeviation. Ir a la ciudad respondió Jan 31 13 at 21:48 You39re bienvenida Lo siento, no tenía la respuesta que usted está buscando. Definitivamente no quería sugerir el portado de toda la biblioteca. Sólo el código mínimo necesario, que debería ser unos pocos cientos de líneas o algo así. Tenga en cuenta que no tengo ni idea de las restricciones legales / de copyright que tiene apache en ese código, por lo que debe comprobarlo. En caso de perseguirlo, aquí está el enlace. Así que la variación FastMath ndash Jason Jan 31 13 at 22:36 La información más importante ya se ha dado arriba --- pero quizás esto es todavía de interés general. Una pequeña biblioteca de Java para calcular el promedio móvil y la desviación estándar está disponible aquí: github / tools4j / meanvar La implementación se basa en una variante del método de Welfords mencionado anteriormente. Métodos para eliminar y reemplazar los valores se han derivado que se puede utilizar para mover el valor windows. Bollinger Bands0174 (BB) Bandas Bollinger Indicador Técnico (BB) es similar a los sobres. La única diferencia es que las bandas de Envelopes se trazan a una distancia fija () lejos de la media móvil. Mientras que las bandas de Bollinger se trazan un cierto número de desviaciones estándar lejos de ella. La desviación estándar es una medida de la volatilidad, por lo tanto Bollinger Bands se ajustan a las condiciones del mercado. Cuando los mercados se vuelven más volátiles, las bandas se ensanchan y se contraen durante períodos menos volátiles. Las bandas de Bollinger normalmente se trazan en el gráfico de precios, pero también se pueden agregar al gráfico de indicadores (Indicadores Personalizados). Al igual que en el caso de los sobres. La interpretación de las bandas de Bollinger se basa en el hecho de que los precios tienden a permanecer entre la parte superior y la línea inferior de las bandas. Una característica distintiva del indicador Bollinger Band es su anchura variable debido a la volatilidad de los precios. En períodos de cambios de precios considerables (es decir, de alta volatilidad), las bandas se ensanchan dejando mucho espacio a los precios para moverse. Durante los períodos de statu quo, o los períodos de baja volatilidad, la banda mantiene los precios dentro de sus límites. Los siguientes rasgos son particulares a la venda de Bollinger: los cambios abruptos en precios tienden para suceder después de que la venda se contraiga debido a la disminución de la volatilidad. Si los precios se rompen a través de la banda superior, es de esperar una continuación de la tendencia actual. Si los piques y huecos fuera de la banda son seguidos por picas y huecos dentro de la banda, puede ocurrir un retroceso de la tendencia. El movimiento de precios que ha comenzado desde una de las líneas de bandas suele llegar a la opuesta. La última observación es útil para la previsión de guías de precios. Cálculo: Las bandas de Bollinger están formadas por tres líneas. La línea media (ML) es una media móvil habitual. La línea superior, TL, es la misma que la línea media un cierto número de desviaciones estándar (D) más altas que el ML. La línea inferior (BL) es la línea media desplazada hacia abajo por el mismo número de desviaciones estándar. Donde: N es el número de períodos utilizados en el cálculo SMA Promedio móvil simple StdDev significa Desviación estándar. Se recomienda utilizar la media móvil simple de 20 períodos como la línea media, y trazar las líneas superior e inferior dos desviaciones estándar de distancia de la misma. Además, los promedios móviles de menos de 10 períodos son de poco efecto. Fuente Código Fuente MQL4 completa de Bandas de Bollinger está disponible en el Código Base: Bandas de Bollinger Advertencia: Todos los derechos sobre estos materiales están reservados por MetaQuotes Software Corp. Está prohibida la reproducción o reimpresión de estos materiales en todo o en parte.

Comments

Popular Posts